LED灯闪烁
使用定时器实现延时实现LED灯闪烁,定时 5ms,count 计数50定时 250ms
#include <STC8H.H>
sbit LED = P2^0;
unsigned char count = 50; //定时250ms
void Timer0Init(void) //5毫秒@24.000MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器16位重装载模式,系统时钟计数
TL0 = 0xF0; //设置定时初始值
TH0 = 0xD8; //设置定时初始值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
}
void main(void)
{
/*P2.0准双向口模式*/
P2M0 = 0x00;
P2M1 &= ~(0x01);
/*定时器T0初始化*/
Timer0Init();
EA = 1; //总中断允许
ET0 = 1; //定时器T0中断允许
LED = 0;
while(1);
}
void Timer0() interrupt 1
{
count--;
if(count == 0)
{
count = 50;
LED = !LED;
}
}