何為中斷源?
中斷是指由于某種事件的發(fā)生(硬件或者軟件的),計算機暫停執(zhí)行當前的程序,轉(zhuǎn)而執(zhí)行另一程序,以處理發(fā)生的事件,處理完畢后又返回原程序繼續(xù)作業(yè)的過程。中斷是處理器一種工作狀態(tài)的描述。我們把引起中斷的原因,或者能夠發(fā)出中斷請求信號的來源統(tǒng)稱為中斷源。
通常中斷源有以下幾種:
(1)外部設(shè)備請求中斷。一般的外部設(shè)備(如鍵盤、打印機和A / D轉(zhuǎn)換器等)在完成自身的操作后,向CPU發(fā)出中斷請求,要求CPU為他服務(wù)。 由計算機硬件異常或故障引起的中斷,也稱為內(nèi)部異常中斷。
(2)故障強迫中斷。計算機在一些關(guān)鍵部位都設(shè)有故障自動檢測裝置。如運算溢出、存儲器讀出出錯、外部設(shè)備故障、電源掉電以及其他報警信號等,這些裝置的報警信號都能使CPU中斷,進行相應(yīng)的中斷處理。
(3)實時時鐘請求中斷。在控制中遇到定時檢測和控制,為此常采用一個外部時鐘電路(可編程)控制其時間間隔。需要定時時,CPU發(fā)出命令使時鐘電路開始工作,一旦到達規(guī)定時間,時鐘電路發(fā)出中斷請求,由CPU轉(zhuǎn)去完成檢測和控制工作。
(4)數(shù)據(jù)通道中斷。數(shù)據(jù)通道中斷也稱直接存儲器存取(DMA)操作中斷,如磁盤、磁帶機或CRT等直接與存儲器交換數(shù)據(jù)所要求的中斷。
(5)程序自愿中斷。CPU執(zhí)行了特殊指令(自陷指令)或由硬件電路引起的中斷是程序自愿中斷,是指當用戶調(diào)試程序時,程序自愿中斷檢查中間結(jié)果或?qū)ふ义e誤所在而采用的檢查手段,如斷點中斷和單步中斷等。
51單片機的5個中斷源:
1、INT0——外部中斷0,由P3.2端口引入,低電平或下降沿引起。默認優(yōu)先級最高
2、INT1——外部中斷1,由P3.3端口引入,低電平或下降沿引起。默認優(yōu)先級第二
3、T0——定時器/計數(shù)器0中斷,由T0計數(shù)器計滿回零引起。默認優(yōu)先級第三
4、T1——定時器/計數(shù)器1中斷,由T1計數(shù)器計滿回零引起。默認優(yōu)先級第四
5、T2——定時器/計數(shù)器2中斷,由T2計數(shù)器計滿回零引起。默認優(yōu)先級第五
8051中斷系統(tǒng)結(jié)構(gòu)及中斷控制:
8051單片機有五個中斷請求源,四個用于中斷控制的寄存器IE.IP.TCON和SCON,用于控制中斷的類型,中斷允許,中斷起停和各種中斷源的優(yōu)先級別。
五個中斷源有兩個優(yōu)先級,每個中斷源可以編程為高優(yōu)先級或低優(yōu)先級中斷,可以實現(xiàn)二級中斷服務(wù)程序嵌套。8051的中斷源包括:
INT0,INT1引腳輸入的外部中斷源
三個內(nèi)部的中斷源,即定時器T0的溢出中斷源,定時器T1的溢出中斷源和串行口的發(fā)送/接收中斷源。關(guān)于內(nèi)部中斷源我們以后再講,今天我們先學習外部中斷源。
從INT0,INT1引腳輸入的兩個外部中斷源和它們的觸發(fā)方式控制位鎖存在特殊功能寄存器TCON的低四位,其格式如下:
IE1,即TCON.3:
外部中斷INT1請求標志位。當CPU檢測到在INT1引腳上出現(xiàn)的外部中斷信號時,由硬件置位IE1=1,請求中斷。CPU執(zhí)行中斷服務(wù)程序后,IE1位被硬件自動清0.
IT1,即TCON.2:
外部中斷INT1請求類型,觸發(fā)方式控制位,由軟件來置1或清0,以控制外部中斷1的觸發(fā)類型。
IT1=0,外部中斷1被設(shè)置為電平觸發(fā)方式,當引腳INT1輸入低電平時,置位IE1,申請中斷。CPU在每個機器周期的S5P2期間采樣INT1的輸入電平,當采樣到低電平時,置IE1=1。采用電平觸發(fā)方式時,輸入到引腳INT1的外部中斷源必須保持電平有效,直到該直到程序被CPU響應(yīng)。同時,在該中斷服務(wù)程序執(zhí)行完之前,外部中斷源有效電平必須被撤銷,否則將產(chǎn)生,另一次中斷。
IT1=1,外部中斷1被設(shè)置為邊緣觸發(fā)方式,CPU在每個機器周期采樣引腳INT1的電平。如果相繼的兩次采樣中,一個周期采樣到引腳INT1為高電平,接著下一個周期采樣到引腳INT1為低電平,INE1由硬件自動清0.因為每個機器周期采樣一次外部中斷輸入電平,外部中斷源輸入的高電平和低電平時間必須保持12個振蕩周期以上,才能保證CPU檢測到負跳變信號,即下降沿。
IEO,即TCON.1:外部中斷請求標志位。IE0=1時,外部中斷0向CPU請求中斷,當CPU響應(yīng)外部中斷后,IE0由硬件清0。
ITO,即TCON.0:外部中斷0觸發(fā)方式控制位。IT0=0,外部中斷0被設(shè)置為邊沿觸發(fā)方式。IT0=1時,外部中斷0被設(shè)置為邊電平發(fā)方式。其功能和IT1類似。
中斷控制:除特殊功能寄存器TCON和SCON中某些位與中斷有關(guān)外,還有兩個特殊功能寄存器IE和IP專門用于中斷控制。
中斷允許IE:
8051單片機中,特殊功能寄存器IE位中斷允許寄存器,控制CPU對中斷源總的允許或禁止以及每個中斷源是否允許中斷。其格式為:
EA:中斷總允許位。EA=1,CPU允許中斷;EA=0,CPU禁止所有的中斷請求。
ES:串行中斷允許位。ES=1,允許串行口中斷;ES=0,禁止串行口中斷。
EX1:T0溢出中斷允許位。ET0=1,允許T0中斷;ET0=0,禁止T0中斷。
EX0::外部中斷允許位。EX0=1,允許外部中斷0中斷;EX0=0,禁止外部中斷0中斷。
8051系統(tǒng)復(fù)位后,IE中各位均被清0,即禁止所有中斷。
中斷優(yōu)先級設(shè)定寄存器IP。8051單片機具有兩個中斷優(yōu)先級,每個中斷源可編程為高優(yōu)先級中斷或低優(yōu)先級中斷,并可實現(xiàn)二級中斷嵌套。高優(yōu)先級中斷源可中斷正在執(zhí)行的低優(yōu)先級中斷服務(wù)程序;
同級或低優(yōu)先級的中斷源不能中斷正在執(zhí)行的中斷程序。為此,在8051中斷系統(tǒng)中,內(nèi)部有兩個優(yōu)先級狀態(tài)觸發(fā)器,它們分別指示出CPU是否在執(zhí)行高優(yōu)先級或低優(yōu)先級中斷服務(wù)程序,從而分別屏蔽所有的中斷申請和同一級的其他中斷源申請。
特殊功能寄存器IP為中斷優(yōu)先級寄存器。
各中斷源優(yōu)先級的控制位,用戶可用軟件設(shè)定。其格式如下
PS:串行中斷優(yōu)先控制位。PS=1,設(shè)定串行口為高優(yōu)先級中斷;PS=0,為低優(yōu)先級。
PT1:T1中斷優(yōu)先控制位。PT1=1,設(shè)定定時器T1為高優(yōu)先級中斷;PT=0,為低優(yōu)先級。
TX1:外部中斷1中斷優(yōu)先級別控制位。PX1=1設(shè)定外部中斷1為高優(yōu)先級中斷;PC1=0,為低優(yōu)先級。
PT1:T1中斷優(yōu)先控制位。PT1=1,設(shè)定定時器T1為高優(yōu)先級中斷;PT1=0,為低優(yōu)先級。
PT0:T0中斷優(yōu)先控制位。PT1=1,設(shè)定定時器T0為高優(yōu)先級中斷;PT0=0,為低優(yōu)先級。
PX0:外部中斷中斷優(yōu)先控制位。PX0=1,設(shè)定INT1為高優(yōu)先級。PX0=0,為低優(yōu)先級。
8051復(fù)位后,IP低五位全部清0,將所有中斷源設(shè)置為低優(yōu)級中斷。
如果幾個同優(yōu)先級的中斷源同時向CPU申請中斷,哪一個申請得到服務(wù),取決于它們在CPU內(nèi)部動登記排隊的序號。CPU通過內(nèi)部硬件查詢登記號,按自然優(yōu)先級決定優(yōu)先響應(yīng)哪個中斷請求。自然優(yōu)先級按從高到低的順序依次為:外中斷0,定時器0,外中斷1,定時器1,串行中斷。
評論