/* 名称:定时器控制单只LED
说明:LED在定时器的中断例程控制下不断闪烁。
*/
#includereg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitLED=P0^0;
ucharT_Count=0;
//主程序
voidmain()
{
TMOD=0x00;
//定时器0工作方式0
TH0=(8192-5000)/32;//5ms定时
TL0=(8192-5000)%32;
IE=0x82; //允许T0中断
TR0=1;
while(1);
}
//T0中断函数
voidLED_Flash()interrupt1
{
TH0=(8192-5000)/32;//恢复初值
TL0=(8192-5000)%32;
if(++T_Count==100)//0.5s开关一次LED
{
LED=~LED;
T_Count=0;
}
}
扩展阅读:INT0及INT1中断计数程序