单片机中没有while循环为什么二极管灯还是会闪烁的循环亮?

#include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit p0_1=P0^0; void delay(); void main() { p0_1=0; delay(); p0_1=1; delay(); } void delay() { uint x,y; for(x=100;x>0;x--) for(y=500;y>0;y--); }

第1个回答  2012-11-19
main 主函数本身就是默认全局循环的,按照你目前的程序,就是 P0_1=0 和P0_1=1在交替。所以才会闪烁。
第2个回答  2012-11-19
主函数要循环执行的,得加while(1);让程序一直循环等待!相当于程序停止
第3个回答  2012-11-19
主函数中结束时加一个死循环便可以了,即
void main()
{
p0_1=0;
delay();
p0_1=1;
delay();
while(1);
}本回答被提问者和网友采纳
第4个回答  2012-11-19
楼上说的对...
相似回答
大家正在搜