中斷是用于單片機和外部設備之間的通信。在本文中,英銳恩單片機工程師將講解如何在8051單片機中使用中斷,以及8051單片機中斷的IE寄存器配置。
一、8051單片機中斷類型
8051單片機可以識別六種不同類型的事件,這些事件要求單片機暫時停止執(zhí)行當前程序并騰出時間執(zhí)行特殊代碼。8051單片機中存在的中斷源是:
1.重置中斷;
2.Timer0溢出中斷TF0;
3.Timer1溢出中斷TF1;
4.外部硬件中斷INT0;
5.外部硬件中斷INT1;
6.串行通訊中斷(RI / TI)。
定時器和串行中斷是由單片機內(nèi)部產(chǎn)生的,而外部中斷是在外部接口設備或開關連接到單片機時產(chǎn)生的。這些外部中斷可以邊沿觸發(fā)或電平觸發(fā)。
二、8051單片機中斷服務
為單片機內(nèi)部的每個中斷分配了一個固定的存儲區(qū)。在中斷向量表包含了每一個中斷的存儲位置的起始地址。發(fā)生中斷時,單片機將程序計數(shù)器的內(nèi)容傳輸?shù)蕉褩V?。然后,它跳轉到由中斷向量表 (IVT)指定的存儲位置。程序員在該存儲區(qū)上寫入的代碼開始執(zhí)行。該代碼稱為中斷服務例程(ISR)或中斷處理程序。
三、8051單片機中斷表
重置中斷:激活復位引腳后,程序執(zhí)行流程跳至從0000H存儲位置執(zhí)行代碼。通常不使用。也稱為加電復位。
2.定時器中斷: 8051單片機中有兩個定時器(T0和T1),它們負責定時器中斷。定時器中斷通知單片機相應的定時器已完成計數(shù)。中斷向量表中的存儲器位置000BH和001BH分別屬于Timer0和Timer1。
3.外部中斷:有兩個外部中斷(INT0和INT1)服務于外部設備。端口3中的引腳號12和13用于外部硬件中斷。這兩個中斷均為低電平有效。外部中斷通知單片機外部設備需要其常規(guī)服務。中斷向量表中的存儲器位置0003H和0013H分別屬于INT0和INT1。
4.串行中斷:此中斷用于串行通信。它有一個屬于接收和發(fā)送的中斷。啟用后,它將通知單片機是否已接收或發(fā)送字節(jié)。中斷向量表的地址0023H屬于該中斷。
四、8051單片機的IE寄存器
寄存器配置(用于中斷選擇):現(xiàn)在我們必須指定必須處理哪些中斷的單片機。通過配置特殊功能寄存器中的某個位(稱為中斷使能(IE)寄存器),可以使用上述所有中斷。這些寄存器啟用或禁用各種可用的中斷。
EA-啟用中斷:必須將EA位設置為1才能啟用任何中斷。默認情況下,所有中斷都處于禁用模式。如果EA = 1啟用中斷,并且如果EA = 0禁用中斷ET2-Timer2中斷允許位:僅在8052中啟用或禁用Timer2溢出或捕獲中斷。在AT89C51中,只有兩個定時器,因此不使用ET2。
ES-串行端口中斷允許位:啟用或禁用串行端口中斷。
ET1-Timer1中斷使能位:如果ET0 = 1,則使能Timer1溢出中斷;如果ET0 = 0,則使能Timer1溢出中斷。
EX1-外部中斷INT1使能位:如果EX1 = 1,則使能INT1,如果EX1 = 0,則使能INT1。
ET0:Timer0中斷使能位: ET0 = 1,啟用Timer0溢出中斷ET0 = 0,禁用Timer0溢出中斷。
EX1:外部中斷INT0使能位 EX1 = 1,使能INT0 EX1 = 0,禁止INT0。
以上就是英銳恩單片機開發(fā)工程師分享的8051單片機外部中斷和IE寄存器配置。英銳恩專注單片機應用方案設計與開發(fā),提供8位單片機、16位單片機、32位單片機、運放芯片和模擬開關。