新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 如何實(shí)現(xiàn)定時(shí)器與中斷來(lái)點(diǎn)亮二極管

如何實(shí)現(xiàn)定時(shí)器與中斷來(lái)點(diǎn)亮二極管

作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò) 收藏
什么是定時(shí)器,什么是中斷,這些簡(jiǎn)單的概念,在此就不多說(shuō)了,百度一下就有很多資料了。
下面是個(gè)人使用定時(shí)器與中斷來(lái)實(shí)現(xiàn) 點(diǎn)亮二極管
#include
sbit LED=P2^0; //點(diǎn)亮一個(gè)二極管
unsigned char i=0;
void main()
{
TMOD=0x01; // TMOD寄存器高4位設(shè)置T1,低4位設(shè)置T0。設(shè)置T0定時(shí)器工作模式
EA=1; // 允許打開(kāi)全局中斷變量EA
ET0=1; //允許打開(kāi)定時(shí)器T0中斷
TR0=1; //設(shè)置TCON寄存器: 啟動(dòng)定時(shí)器T0
TH0=(65536-50000)/256; //50ms毫秒發(fā)生一次中斷溢出,初始化TH0
TL0=(65536-50000)%256;
LED=0; //點(diǎn)亮二極管
while(1)
{
if(i==20) //20次50ms 等于1秒鐘 即 1秒鐘二極管就點(diǎn)亮或熄滅
{
LED=~LED; //二極管狀態(tài)取反
i=0;
}
}
}
void TimerLED() interrupt 1 using 1 // 中斷源T0定時(shí)器,使用第1組寄存器工作組存儲(chǔ)中斷程序
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
i=i+1;
}
只要了解原理,就非常簡(jiǎn)單了。 記?。簩W(xué)習(xí)單片機(jī),就是為了以后學(xué)習(xí)ARM更容易,更快速的學(xué)習(xí)。


評(píng)論


技術(shù)專區(qū)

關(guān)閉