冒泡社区安卓5.1多开版:keil编程

来源:百度文库 编辑:高校问答 时间:2024/04/26 07:36:58
//延时程序控制发光二极管的两灭时间
//控制单片机I/O端口电平的高低

#include<reg51.h>
#define uint unsigned int

sbit gate1=P2^0; //定义P2.0口
sbit gate2=P2^1;
sbit gate3=P2^2;
sbit gate4=P2^3;

void a(void)
{
uint i,j;
while(1)
{
for(i=1000;i>0;i--)
for(j=1000;j>0;j--) //双重循环,延时约1秒
{}
gate1=!gate1; //P.0口取反,控制小灯的亮灭
gate2=!gate2;
gate3=!gate3;
gate4=!gate4;
}
}

这是在书上的一个程序,里面有个空{},是别人加入的,谁告诉我这个空{}的存在或者没有有什么不同?

显然是有区别的。
如果没有{},那么就变成了:
for(j=1000;j>0;j--)
gate1=!gate1;
这两句构成一个循环,即反复操作gate1=!gate1一千次
显然,这不是源程序作者的意图
作者是想达到延时效果,所以用了一个空循环
其实,还可以写成这样
for(j=1000;j>0;j--);