下载贤集网APP入驻自媒体
我想要做一个定时器流水灯的程序,就是每隔500Ms,LED灯就会左移一次,如果按下独立按键K1,那么LED灯就会右移一次。可不知道为什么,我敲完程序后,单片机确实实现了流水灯,但是不知道为什么流动得特别快(不是500Ms流动一次的那种),然后我换成了1秒钟流动一次,结果流水灯的速度还是不变。这是哪里错了啊? 这是我的主函数程序: #include#include "Key.h" #include "Timer0.h" #include unsigned char KeyNum,LEDMode; void main() { P2=0xFE; Timer0_Init(); while(1) { KeyNum=Key(); if(KeyNum) { if(KeyNum==1) { LEDMode++; if(LEDMode>=2){LEDMode=0;} } } } } void Timer0_Routine() interrupt 1 { static unsigned int T0Count; TL0 = 0xCD; TH0 = 0xD4; T0Count++; if(T0Count>=500); { T0Count=0; if(LEDMode==0) { P2=_crol_(P2,1); } if(LEDMode==1) { P2=_cror_(P2,1); } } } 这些是其它模块的函数:对了,我的单片机晶振是11.0592的,用的定时器0,定时器时钟是1T。(我试过改成12T,但是不知道为什么LED灯直接全亮了,LED灯根本没有流动,而且蜂鸣器一直响,不知道为什么) 感谢各位大佬的帮助,谢谢!