51單片機中斷設置
1、TCON寄存器
與中斷有關(guān)的是低四位。
1)IT0和 IT1——外中斷請求觸發(fā)標志位:
0——為低電平觸發(fā);
1——為下降沿觸發(fā)
可由軟件置位和清除
2)IE0 和 IE1——外部中斷請求標志位
1——表示有中斷請求,CPU要響應中斷請求,跳向中斷服務程序,按優(yōu)先級處理中斷程序,跳入中斷服務程序時,由硬件清0;
0——表示沒有中斷請求。
復位值TCON都為0。
SCON為串口控制寄存器,詳見串口。
2、中斷允許寄存器IE,可以位尋址,復位為0:
各位為1時允許相應位的中斷,為0時禁止響應中斷。EA是總中斷開關(guān)。
注意: 單片機響應外部中斷后,會自動將外部中斷標志位清0,。但由于外部中斷請求觸發(fā)方式的特點,在使用外部中斷中要避免重復請求問題。
外部中斷0編程步奏;
1、設置外部中斷請求允許位,設置IE寄存器中的EA EX0位;
2、選擇合適的外部中斷請求方式,即設置TCON中的IT0 (或者IT1);
3、編寫中斷服務函數(shù)。
實例:
main()
{
IT0 = 1; //設置外中斷0為下降沿觸發(fā)
EX0 = 1; //開放外部中斷0
EA = 1; //開總中斷
while (1)
;
}
void ext_interrupt(void) interrupt 0
{
delay(5);
if (button0 == 0) {
led = !led;
}
}