一个很单片机c程序,关于流水灯的。电路图在下面,代码也在下面。
代码是:
#include<reg52.h>
#include<absacc.h>
sbit LED_BIT = P1 ^ 6;
void my_delay(unsigned int n)
{
unsigned int i,j;
while(n--)
{
for(i = 128; i > 0; i --)
for(j = 10; j > 0; j--);
}
}
void main(void)
{
LED_BIT = 1;
P0 = 0x01;
LED_BIT = 0;
my_delay(100);
LED_BIT = 1;
P0 = 0x04;
LED_BIT = 0;
my_delay(100);
LED_BIT = 1;
P0 = 0x10;
my_delay(100);
}
我的问题是:程序编译没有报任何错误,然后下载到单片机上面,但是在单片机上面显示的结果却不是我想象中的那样子的。在我的主函数里面没有加入循环,只是亮第一个、第三个、五个灯,但是在单片机上面的流水灯第一个、第三个、五个灯在循环着亮着。这是为什么啊??
[解决办法]
跟我上次犯的毛病一样,在你的程序的最后加一行while(1){}空语句进行等待,要不然你的单片机加电后执行完成你的程序后它无事可做,会继续循环执行你的语句的。