中斷是用于單片機和外部設備之間的通信。在本文中,英銳恩單片機工程師將講解如何在8051單片機中使用中斷,以及8051單片機中斷的IE寄存器配置。
一、8051單片機中斷類型
8051單片機可以識別六種不同類型的事件,這些事件要求單片機暫時停止執行當前程序并騰出時間執行特殊代碼。8051單片機中存在的中斷源是:
1.重置中斷;
2.Timer0溢出中斷TF0;
3.Timer1溢出中斷TF1;
4.外部硬件中斷INT0;
5.外部硬件中斷INT1;
6.串行通訊中斷(RI / TI)。
定時器和串行中斷是由單片機內部產生的,而外部中斷是在外部接口設備或開關連接到單片機時產生的。這些外部中斷可以邊沿觸發或電平觸發。
二、8051單片機中斷服務
為單片機內部的每個中斷分配了一個固定的存儲區。在中斷向量表包含了每一個中斷的存儲位置的起始地址。發生中斷時,單片機將程序計數器的內容傳輸到堆棧中。然后,它跳轉到由中斷向量表 (IVT)指定的存儲位置。程序員在該存儲區上寫入的代碼開始執行。該代碼稱為中斷服務例程(ISR)或中斷處理程序。
三、8051單片機中斷表
重置中斷:激活復位引腳后,程序執行流程跳至從0000H存儲位置執行代碼。通常不使用。也稱為加電復位。
2.定時器中斷: 8051單片機中有兩個定時器(T0和T1),它們負責定時器中斷。定時器中斷通知單片機相應的定時器已完成計數。中斷向量表中的存儲器位置000BH和001BH分別屬于Timer0和Timer1。
3.外部中斷:有兩個外部中斷(INT0和INT1)服務于外部設備。端口3中的引腳號12和13用于外部硬件中斷。這兩個中斷均為低電平有效。外部中斷通知單片機外部設備需要其常規服務。中斷向量表中的存儲器位置0003H和0013H分別屬于INT0和INT1。
4.串行中斷:此中斷用于串行通信。它有一個屬于接收和發送的中斷。啟用后,它將通知單片機是否已接收或發送字節。中斷向量表的地址0023H屬于該中斷。
四、8051單片機的IE寄存器
寄存器配置(用于中斷選擇):現在我們必須指定必須處理哪些中斷的單片機。通過配置特殊功能寄存器中的某個位(稱為中斷使能(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。
以上就是英銳恩單片機開發工程師分享的8051單片機外部中斷和IE寄存器配置。英銳恩專注單片機應用方案設計與開發,提供8位單片機、16位單片機、32位單片機、運放芯片和模擬開關。