16 外部中斷

單片機(jī)STC89C52學(xué)習(xí)——16 外部中斷

匯總:00 單片機(jī)STC89C52學(xué)習(xí)
參考教程:普中科技

接上篇:15 中斷系統(tǒng)

2 程序:外部中斷——外部中斷0和1,控制按鍵改變LED

2.1 外部中斷0的中斷函數(shù)中,獨(dú)立按鍵K3控制LED燈D1的狀態(tài)翻轉(zhuǎn)

#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;

sbit led1 = P2^0;// D0
sbit k3 = P3^2;// K3

void delay(u16 i)
{
    while(i --);
}

void int0Init()
{
    EA = 1;// 打開總中斷開關(guān)
    EX0 = 1;// 允許外部中斷0
    IT0 = 1;// 設(shè)置外部中斷的觸發(fā)方式:0低電平,1下降沿
}

void main()
{
    int0Init();// 外部中斷0的初始化,使?jié)M足條件
    while (1);// 坐等觸發(fā)
}

// 獨(dú)立按鍵K3為P32,P32為int0外部中斷0。故按下K3時(shí)會(huì)產(chǎn)生下降沿,觸發(fā)外部中斷0
void int0() interrupt 0// int0()為函數(shù)名,自??;interrupt 0為中斷號,外部中斷0的終端號為0
{
    delay(1000);// 消抖,延時(shí)10ms
    if (k3 == 0)
    {
        led1 = ~led1;
    }
}

效果:按下K3后D1狀態(tài)翻轉(zhuǎn)

2.2 外部中斷1的中斷函數(shù)中,獨(dú)立按鍵K4控制LED燈D1的狀態(tài)翻轉(zhuǎn)

只需要改:

k3 -> k4
EX0 -> EX1
IT0 -> IT1
interrupt 0 -> interrupt 2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容