單片機中斷INT0簡單小例子


 

用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寄存器:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM