STC8H8K64U——定时器T0(LED灯闪烁)

LED灯闪烁

使用定时器实现延时实现LED灯闪烁,定时 5ms,count 计数50定时 250ms

#include 

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; 
	}
}

你可能感兴趣的:(STC8H8K64U——打狗棍,单片机,嵌入式硬件,51单片机)