![]() |
baiyun1234 發表于 2019-10-11 13:11 謝謝,非常感謝 |
baiyun1234 發表于 2019-10-11 13:59 謝謝了 |
buzzerflag=1;// 后面是g,不是h.寫錯了。![]() 上面的兩個地方 |
在你的main之前加上一句這個: void delayms(uint); |
//注釋:你這個 “BUZCOM=Bin(00001001); //打開”我不知道哪一位是控制buzzer的,你自己改,我下面的是 根據你的copy的。 // 我自己寫的延時,晶振11.0592 ,這個延時是1ms,你的晶振是多少,你自己定. //你的代碼頂部加一個: #define uint unsigned int(如果有就算了) void beep_on() { unsigned char i; unsigned char time_cnt; unsigned char beep_cnt,p; bit buzzerflag; if(temperature>29) buzzerflah=1; while(buzzerflag) { for(i=3;i>0;i--) { delayms(100); BUZCOM=Bin(00001001); //打開 delayms(100); BUZCON=Bin(00001000); //close } delayms(500); if(temperature<=29) { BUZCON=Bin(00001000) //close delayms(20); buzzerflah=0; } } } //delayms void delayms(uint time) { uint i,j; for( i=0;i<time;i++) for(j=0;j<112;j++); } |
for循環寫成死循環,不然響幾次后就不響了 |
我加了 IF延時 也沒有作用 |