目錄
配置流程
1.在IE寄存器中開啟總中斷通道和需要的某中斷通道
2.在TCON寄存器開啟所用中斷的觸發方式?
3.使用中斷函數完成中斷
4.若需要中斷嵌套則在IP寄存器中配置
5.若需要使用串口的中斷,則配置SCON寄存器
6.代碼示例
配置流程
1.在IE寄存器中開啟總中斷通道和需要的某中斷通道
置1為開啟
2.在TCON寄存器開啟所用中斷的觸發方式?
置1為開啟
沒有加粗的內容在普通的中斷配置流程中可以忽略
3.使用中斷函數完成中斷
關鍵字:interrupt
void Function() interrupt n
{}
n是中斷號,取值范圍0~4,分別對應外部中斷0、定時器0、外部中斷1、定時器1、串口
4.若需要中斷嵌套則在IP寄存器中配置
置1為高優先級
雖然手冊上說在同優先級的情況下優先級的順序為外部中斷0、定時器0、外部中斷1、定時器1、串口,但是實踐中發現需要中斷嵌套的情況下如果不在IP寄存器中配置優先級,則沒有中斷嵌套的現象
5.若需要使用串口的中斷,則配置SCON寄存器
6.代碼示例
#include <REGX52.H>void main()
{EA = 1; //總中斷允許EX0 = 1; //外部中斷0允許EX1 = 1; //外部中斷1允許IT0 = 1; //外部中斷0觸發方式為下降沿IT1 = 1; //外部中斷1觸發方式為下降沿PX0 = 1; //外部中斷0優先級高PX1 = 0; //外部中斷1優先級低while(1){}
}void Int0(void) interrupt 0 //外部中斷0中斷號為0
{}void Int1(void) interrupt 2 //外部中斷1中斷號為2
{}