單片機(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;// 打開(kāi)總中斷開(kāi)關(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為中斷號(hào)频祝,外部中斷0的終端號(hào)為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