发布网友 发布时间:2023-04-03 19:48
共1个回答
热心网友 时间:2024-12-01 18:48
main ()\x0d\x0a{\x0d\x0a TMOD = 0x01;//使能T0定时器工作于16位定时/计数方式\x0d\x0a TH0 = 0x3C;//T0定时器50mS定时初值,此值按照12MHz频率计算出来的(假定是51单片机)\x0d\x0a TL0 = 0xC0;\x0d\x0a ET0 = 1;//允许定时器T0中断\x0d\x0a EA = 1;//开中断\x0d\x0a TR0 = 1;//定时器T0开始计数\x0d\x0a while(1);//在这里死循环,等待T0中断发生\x0d\x0a}\x0d\x0a \x0d\x0a Timer0_int() interrupt 1 //定时器T0中断函数,每中断1次50mS\x0d\x0a{\x0d\x0a static unsigned char i = 10;//定义1个用于中断次数计数的静态变量\x0d\x0a if(i)i--;//如果变量为真,减量计数\x0d\x0a else{ //中断次数达到10次,10 * 50mS = 0.5S \x0d\x0a LED = ~LED;//LED的状态取反(由亮变灭或由灭变亮)//LED用那根I/O自己定义\x0d\x0a i = 10;//为下1个0.5S的中断次数计数重新赋值\x0d\x0a }\x0d\x0a TH0 = 0x3C;//恢复定时器T0初值\x0d\x0a TL0 = 0xC0;\x0d\x0a}