用INT0中斷控制LED閃爍方式
用單片機P1腳控制8個LED燈閃爍,按下K1鍵換另一各閃爍方式。
K1鍵一端連着INT0 (P3^2),一端連着地
原來的閃爍方式
void main() { while(1) { P1=0xaa; Delay500ms(); P1=0x55; Delay500ms(); } }
新的閃爍方式放在中斷函數中
//用新閃爍方式閃爍5次后,返回主函數,用原方式斷續閃爍
void int_0() interrupt 0 //中斷號為0,表示用INT0中斷 { unsigned int i=0; while(i<5) { P1=0xf0; Delay500ms(); P1=0x0f; Delay500ms(); i++; } }
因為是用INT0,所以中斷號是0 即interrupt 0
要用到中斷INT0,
要把總中斷開關打開,即EA=1
再把INT0中斷開關打開,即EX0=1;
因為INT0腳 (P3^2)通過K1按鍵連着地,所以觸發方式選擇低電平,即IT0=0
把以上三個條件寫入主函數
void main() { EA=1; EX0=1; IT0=0; while(1) { P1=0xaa; Delay500ms(); P1=0x55; Delay500ms(); } }
用外部中斷和兩個寄存器有關
IE寄存器:
TCON寄存器: