<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51學(xué)習之定時(shí)器中斷

51學(xué)習之定時(shí)器中斷

作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò ) 收藏
定時(shí)器中斷可用兩種方式處理:查詢(xún)和進(jìn)入中斷處理。
1.查詢(xún)
void Init_T0 (void) 定時(shí)器初始化
{
TMOD = 0x01;
TH0 = (65536-65000) /256;
TL0 = (65536-65000) %6;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void Main() 主函數
{ Init_T0 ();
Speak1 =1;
if(TF0==1) 查詢(xún)中斷標志
{
Speak1=~Speak1;
//TH0 = (65536-65000) /256;
//TL0 = (65536-65000) %6;
TF0=0;
}
}
2.進(jìn)入中斷處理
void Init_T0 (void) 定時(shí)器初始化
{
TMOD = 0x01;
TH0 = (65536-65000) /256;
TL0 = (65536-65000) %6;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void Time0_Int() interrupt 1 中斷處理函數
{
Speak1=~Speak1;
//TH0 = (65536-65000) /256;
//TL0 = (65536-65000) %6;
}
void Main() 主函數
{
Init_T0 ();
Speak1 =1;
while(1); 等待中斷
}
對于查詢(xún)方式,一定要手動(dòng)清楚中斷標志。
上面2段程序,我屏蔽了,中斷時(shí)重新裝計數初值的語(yǔ)句,程序都可正常運行,所以我認為無(wú)論對于那種處理方式,重裝初值都不必要。
初始化時(shí),可定義輸出口的初始狀態(tài)。而在處理中斷時(shí),一定要用取反語(yǔ)句。手動(dòng)置0或1,程序不能正常運行。
對于方式2,開(kāi)始main中沒(méi)寫(xiě)最后的while(1),程序不正常運行。
上述定時(shí)最大為65535,約65ms.如果計時(shí)大于此,可在中斷中處理。
程序如下:
int a;
void Time0_Int() interrupt 1
{
if(a++==20)
{ a=0;
Speak1=~Speak1;
}
}
呵呵,在寫(xiě)上面這一小段時(shí),開(kāi)始沒(méi)寫(xiě)a=0,燈一直亮,后來(lái)參考下,發(fā)現不清0.a一直變大,程序只能執行一次。



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>