新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51學(xué)習(xí)之外部中斷

51學(xué)習(xí)之外部中斷

作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
學(xué)習(xí)外部中斷,因?yàn)椴涣私猓苯诱沉顺绦騺韴?zhí)行。
void ISR0_Key() interrupt 0 using 1
{
Speak1=~Speak1;
}
void ISR1_Key() interrupt 2 using 2
{
Speak2=~Speak2;
}
void Main()
{
EA=1; //全局中斷開
EX0=1; //外部中斷0開
EX1=1; //外部中斷1開
IT0=1; //邊沿觸發(fā),為0則為低電平觸發(fā)
IT1=0; //邊沿觸發(fā),為0則為低電平觸發(fā)
while(1);
}
執(zhí)行結(jié)果好像有點(diǎn)亂。不太了解,邊沿和電平觸發(fā)的區(qū)別。從網(wǎng)上看了,能理解,可實(shí)際執(zhí)行是不一樣的。
1、在第1次掃描到鍵盤按下時(shí),結(jié)果如前面我們說的一樣,不論是低電平觸發(fā)還是下降沿觸發(fā)結(jié)果都會(huì)觸發(fā)事件,這里觸發(fā)時(shí)即指示燈點(diǎn)亮。然后程序繼續(xù)運(yùn)行……
2、當(dāng)程序繼續(xù)運(yùn)行到第2次掃描鍵盤時(shí)按鍵還沒放開,結(jié)果就不一樣了。
低電平觸發(fā):觸發(fā)條件依然為低電平,觸發(fā)條件成立,那么執(zhí)行事件,指示燈狀態(tài)改變,此時(shí)指示燈由亮變滅;
下降沿觸發(fā):觸發(fā)條件依然為低電平,下降沿觸發(fā)條件不成立,那么不執(zhí)行事件,指示燈維持原來的亮的狀態(tài)。
呵呵,明天再研究吧!
還有就是中斷處理程序的一些問題。
中斷服務(wù)程序通過使用 interrupt 關(guān)鍵字和中斷號(hào)(0 到 31)來實(shí)現(xiàn)中斷服務(wù)程序處理的是哪一個(gè)中斷。
using 關(guān)鍵字用來指定中斷服務(wù)程序使用的寄存器組。用法是:using 后跟一個(gè)0 到3 的數(shù),對(duì)應(yīng)著 4 組工作寄存器。一旦指定工作寄存器組,默認(rèn)的工作寄存器組就不會(huì)被壓棧,這將節(jié)省 32 個(gè)處理周期,因?yàn)槿霔:统鰲6夹枰?2 個(gè)處理周期。

今天只試了進(jìn)入中斷這種方式。明天試下查詢的方式,應(yīng)該和定時(shí)器是一樣的。



關(guān)鍵詞: 51學(xué)習(xí)外部中

評(píng)論


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

關(guān)閉