把按键的while(1)循环部分去掉,单独弄一个按键函数。然后放在main函数的大循环里 |
大佬们,这个问题已经解决,问题竟然是key()函数中的while(1)后多加了一个分号,这种低级错误确实难防,我以后会勤加练习,全力避免这样的错误。由衷的感谢大佬的帮助,我会仔细阅读各位的回复。 |
兴安xa 发表于 2022-3-28 22:42 谢谢,我也找到自己的错误所在,问题就在于在while(1)后多加了一个分号,这种毛病不经意间~,由衷感谢你的教导。 |
lkc8210 发表于 2022-3-28 21:00 我自学的,老师们用的都是while(1)死循环。 而且,今天我分别测试了两个分装函数,发现是key()函数出的问题,于是便仔细检查每一句,最后发现是因为while(1)后面加了个分号,我已经狠狠掴了自己一个大鼻窦,希望我能记住这次教训,并由衷感谢您的留言。 |
改动一下,看看能跑起来不 #include<reg52.h> #define LED P2 typedef unsigned int u16; typedef unsigned char u8; sbit key=P3^1; void daley(u8 x) { u8 y; for(x;x>0;x--) { for(y=110;y>0;y--); } } void Leds() { u16 num; u16 LED_1; LED=0xff; { LED_1=0Xfe; LED=0Xfe; daley(100); for(num=7;num>0;num--) { LED_1=LED_1<<1|0X01; LED=LED_1; daley(100); } } } void KEY() { if(key==0) { daley(2); if(key==0) { Leds(); } while(!key); } } void main() { while(1) { KEY(); Leds(); } } |
谁教你在函数中用while(1)的? |