为什么主程序会无限循环

[复制链接]
 楼主| 2001myp 发表于 2009-5-7 08:36 | 显示全部楼层 |阅读模式
#include <REG51.H>
#define uint unsigned int
uint i;
/**************************************************/
void delay(uint k,n)                
{                            
  uint data l,i,j;                    
    for(l=0;l<k;l++)            
    {                        
      for(j=0;j<n;j++)
        {
          for(i=0;i<121;i++) 
          {;}
        }        
    }                        
}
/**************************************************/
void main(void)
{

   P0=0x00;
   delay(2,64);
   P0=0xff;
   delay(1,60);
           }

以上小程序应该我去测量后P0口输出一个高电平,但是现在示波器测量它却在不停的高低循环,为什么呢?高手指教
xuehongren 发表于 2009-5-7 09:23 | 显示全部楼层

呵呵 楼主的做法没试过

CPU执行完后下一步走哪呢 
一直走下去,直到走完。再怎么走 呵呵 。。。。。。。。
kengao55 发表于 2009-5-7 09:42 | 显示全部楼层

你这么写不规范

P0=0x00;
这种写法不对
应该是
temp = 0x00;
P0 = temp;
你试试
直接赋值是带输入的
computer00 发表于 2009-5-7 09:43 | 显示全部楼层
areshan 发表于 2009-5-7 10:49 | 显示全部楼层

main函数是不停循环的

主函数是不停循环执行的,用个while(1){P0=0xff},就可以让程序在while中循环。。。让P0产生高电平。。。。
 楼主| 2001myp 发表于 2009-5-7 11:21 | 显示全部楼层

谢谢各位指教

我回去研究下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

59

主题

210

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

59

主题

210

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部