利用定时器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;
//距离65535差1000,一次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输出
}
}
基本按照这个来改