51單片機各種中斷設置
外部中斷系統框圖:
這些(xiē)中斷請(qǐng)求源的中斷請(qǐng)求标志(zhì)位分别有(yǒu)特殊功能寄存器(qì)TCON和(hé)SCON的響應位鎖存
1、TCON寄存器(qì)
與中斷有(yǒu)關的是低(dī)四位。
1)IT0和(hé) IT1——外中斷請(qǐng)求觸發标志(zhì)位:
0——為(wèi)低(dī)電(diàn)平觸發;
1——為(wèi)下降沿觸發
可(kě)由軟件置位和(hé)清除
2)IE0 和(hé) IE1——外部中斷請(qǐng)求标志(zhì)位
1——表示有(yǒu)中斷請(qǐng)求,CPU要響應中斷請(qǐng)求,跳(tiào)向中斷服務程序,按優先級處理(lǐ)中斷程序,跳(tiào)入中斷服務程序時(shí),由硬件清0;
0——表示沒有(yǒu)中斷請(qǐng)求。
複位值TCON都為(wèi)0。
SCON為(wèi)串口控制(zhì)寄存器(qì),詳見串口。
2、中斷允許寄存器(qì)IE,可(kě)以位尋址,複位為(wèi)0:
各位為(wèi)1時(shí)允許相應位的中斷,為(wèi)0時(shí)禁止響應中斷。EA是總中斷開(kāi)關。
注意: 單片機響應外部中斷後,會(huì)自動将外部中斷标志(zhì)位清0,。但(dàn)由于外部中斷請(qǐng)求觸發方式的特點,在使用外部中斷中要避免重複請(qǐng)求問題。
外部中斷0編程步奏;
1、設置外部中斷請(qǐng)求允許位,設置IE寄存器(qì)中的EA EX0位;
2、選擇合适的外部中斷請(qǐng)求方式,即設置TCON中的IT0 (或者IT1);
3、編寫中斷服務函數(shù)。
實例:
main()
{
IT0 = 1; //設置外中斷0為(wèi)下降沿觸發
EX0 = 1; //開(kāi)放外部中斷0
EA = 1; //開(kāi)總中斷
while (1)
;
}
void ext_interrupt(void) interrupt 0
{
delay(5);
if (button0 == 0) {
led = !led;
}
}