如何實現定時器與中斷來點亮二極管
下面是個人使用定時器與中斷來實現 點亮二極管的
#include
sbit LED=P2^0; //點亮一個二極管
unsigned char i=0;
void main()
{
TMOD=0x01; // TMOD寄存器高4位設置T1,低4位設置T0。設置T0定時器工作模式
EA=1; // 允許打開全局中斷變量EA
ET0=1; //允許打開定時器T0中斷
TR0=1; //設置TCON寄存器: 啟動定時器T0
TH0=(65536-50000)/256; //50ms毫秒發(fā)生一次中斷溢出,初始化TH0
TL0=(65536-50000)%256;
LED=0; //點亮二極管
while(1)
{
if(i==20) //20次50ms 等于1秒鐘 即 1秒鐘二極管就點亮或熄滅
{
LED=~LED; //二極管狀態(tài)取反
i=0;
}
}
}
void TimerLED() interrupt 1 using 1 // 中斷源T0定時器,使用第1組寄存器工作組存儲中斷程序
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
i=i+1;
}
只要了解原理,就非常簡單了。 記?。簩W習單片機,就是為了以后學習ARM更容易,更快速的學習。
評論