中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

我想要做一个定时器流水灯的程序,就是每隔500Ms...

 邵66666

下载贤集网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灯根本没有流动,而且蜂鸣器一直响,不知道为什么)
感谢各位大佬的帮助,谢谢!

最新回复

还没有人回复哦,抢沙发吧~

发布回复

为您推荐

热门交流