单片机C语言设计程序

来源:百度知道 编辑:UC知道 时间:2024/07/05 23:04:22
#include<reg51.h>
#define yanshi unsigned int
#define lamp unsigned char
void delay(t)
{
yanshi i,j;
for (i=1;i<t;i++)
for(j=1;j<100;j++);
}
lamp a;
void main()
{
while(1)
{
a=0xFF;
while(a!=0x00)
{
P1=a;
delay(200);
a=a>>1;
}
P1=0x00;
delay(200);
}
}
程序中为什么lamp a;在void main()前面
急求,谢谢!!!!!!!1

lamp a是定义一个全局变量,该变量在定义行之后的源程序的任何一个地方都可以使用。
对于你这个程序,变量a只在mian函数中使用,其实完全可以把lamp a,这句放在main函数中的第一句,while(1)这句之前。

注意前面的:#define lamp unsigned char
所以 lamp a; 等效于 unsigned char a;
放在main前面,表明,这里定义了一个全局变量 a , 从定义位置到文件结束都有效。

如果程序其他地方没有使用lamp a,就可以写在void main()里面