STC12C5A60S2外部中斷P3^2
- 2020 年 1 月 8 日
- 筆記
中斷函數略講:
interrupt 0 指明是外部中斷0;
interrupt 1 指明是定時器中斷0;
interrupt 2 指明是外部中斷1;
interrupt 3 指明是定時器中斷1;
interrupt 4 指明是串行口中斷;
using 0 是第0組寄存器;
using 1 是第1組寄存器;
using 2 是第2組寄存器;
using 3 是第3組寄存器;
using 0時設置 RS1=0,RS0 =0,用第0組寄存器,R0–R7的在數據存儲區里的實際地址是00H-07H。R0(00H)….R7(07H)
using 1時設置 RS1=0,RS0 =1,用第1組寄存器,R0–R7的在數據存儲區里的實際地址是00H-07H。R0(08H)….R7(0FH)
using 2時設置 RS1=1,RS0 =0,用第2組寄存器,R0–R7的在數據存儲區里的實際地址是08H-0FH。R0(10H)….R7(17H)
using 3時設置 RS1=1,RS0 =1,用第3組寄存器,R0–R7的在數據存儲區里的實際地址是00H-07H。R0(18H)….R7(1FH)
外部中斷P3^2,P3^3 的應用
按鍵一端接GND,一端接P3^2 按下,燈亮起
按鍵一端接GND,一端接P3^3 按下,燈熄滅
/* 工程創建MCU選取,Atmel 89C55 單片機:STC12C5A60S2 晶振:12M 功能:外部中斷P3^2,P3^3 的應用 連接說明:LED正極接VCC,負極接到 MCU的39腳P0^0 */ #include <REG51.h> // 可以使用通用的頭文件 //#include <STC12C5A60S2.H> 也可以使用STC12C5A60S2的頭文件, sbit LED=P0^0; // 39腳 //外部中斷初始化程序 void INT_init(void){ EA=1; //打開總中斷【定時器,ADC,串口,比較,計數,外部】等中斷類型 EX0=1;//允許外部中斷0 P3^2 IT0=1;//1下降沿觸發,0低電平觸發 EX1=1;//允許外部中斷1 P3^3 IT1=1;//1下降沿觸發,0低電平觸發 // 下降沿觸發要比低電平觸發要快 } //中斷程序,可以放在主程序前後都可以 void INT_1(void) interrupt 2 using 2{ LED=1;//關燈 } void INT_0(void) interrupt 0 using 2{ LED=0; //開燈 } void main (void) { INT_init();//外部中斷初始化程序 while (1) { } } // 按鍵一端接GND,一端接P3^2 按下,燈亮起 // 按鍵一端接GND,一端接P3^3 按下,燈熄滅