![]() |
發布時間: 2022-3-28 18:15
正文摘要:大佬們,小白學習遇到問題了,還請大佬不嫌麻煩,指點一二。 事情: 本想用獨立控制開關控制流水燈,但是,程序在protues上模擬卻沒有反應,而且,我不知道怎么線上調試程序,所以,一直無法發現錯誤在哪? 希望 ... |
把按鍵的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)的? |