标题: 低电平点亮LED P2.6 P2.2两LED循环闪烁,简单程序当while(0);才能循环,为什么? [打印本页]

作者: king@    时间: 2016-9-29 13:14
标题: 低电平点亮LED P2.6 P2.2两LED循环闪烁,简单程序当while(0);才能循环,为什么?
#include"reg52.h"
int        i;                         
//主函数
void main(void)
{  
        P2 = 0xbf;          //点亮P2.6
           for(i=0;i<30000;i++);
        P2 = 0Xfb;        //点亮P2.2
        for(i=0;i<30000;i++);
        while(0);             
}

//while(0); 直到型循环,是不是可以解释当它为真的时候循环,当它为假的时候退出循环。


作者: CHEN.T    时间: 2016-9-29 14:22
你这个程序不具备循环的功能    更改如下

void main(void)
{
    while(1)
{        
  P2 = 0xbf;          //点亮P2.6            
  for(i=0;i<30000;i++);         
  P2 = 0Xfb;        //点亮P2.2         
  for(i=0;i<30000;i++);   
}               
}
作者: 淡然若梦    时间: 2016-9-29 15:40
为真的时候整个程序都处在while(1)中了
作者: zhujiales    时间: 2016-9-29 17:00
所谓的while(1);循环语句,其实就是扫描语句,单片机进入程序有中断和扫描之分,其实一般理解的while就是扫描,满足条件就执行
作者: king@    时间: 2016-9-29 17:01
CHEN.T 发表于 2016-9-29 14:22
你这个程序不具备循环的功能    更改如下

void main(void)

你这个程序我之前试过是满足循环要求的,但是我这个我同样也满足循环电亮要求,我也是试过把我这个改为while(1);的现象是P2.6先亮在熄灭,然后P2.2亮不熄灭。
作者: shuisheng60    时间: 2019-2-3 20:14
楼生应该自己试试,说多了你不试试也白搭




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1