c51单片机上定时器的有关问题

利用定时器1产生定时闹钟,使8个灯从低到高位依次点亮(下一个灯亮时前面的灯要熄灭),间隔时间0.5s,能够循环

#include <REGX52.H>
#include <INTRINS.H>

void TimerInit(){

TMOD = 0x01;
//TL0低8位,TH0高8位
TL0=64535%256+1;
TH0=64535/256;
//距离655351000,一次1us,1000次就是1ms

//TCON配置
TF0 = 0;        //清除TF0标志
TR0 = 1;        //定时器0开始计时

//中断配置
ET0=1; 
EA=1; 
PT0=0;

}

void main()
{
P2=0xfe;
TimerInit();

while(1)
{
    
}

}

void Timer_Routine() interrupt 1{
static unsigned int s = 0;

TL0=64535%256+1;
TH0=64535/256;
s++;

//500ms
if(s>=500){
    s=0;
    //循环左移
    P2=_crol_(P2,1);    //LED输出
}

}
基本按照这个来改

这篇文章:C51单片机定时器 也许有你想要的答案,你可以看看