單片機的中斷原理及應用_第1頁
單片機的中斷原理及應用_第2頁
單片機的中斷原理及應用_第3頁
單片機的中斷原理及應用_第4頁
單片機的中斷原理及應用_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第五章:蛋盤機的中斷原理第五章:蛋盤機的中斷原理及應用及應用d第五章:單片機的中斷原理及應用中斷概念的出現(xiàn),是計算機系統(tǒng)結構設計中的重大中斷概念的出現(xiàn),是計算機系統(tǒng)結構設計中的重大變革。中斷技術實質上是一種資源共享技術。變革。中斷技術實質上是一種資源共享技術。單片微機的中斷系統(tǒng)包括它的硬件和軟件編程。單片微機的中斷系統(tǒng)包括它的硬件和軟件編程。 中斷系統(tǒng)的幾個概念:中斷系統(tǒng)的幾個概念: 中斷:中斷:程序執(zhí)行過程中,允許外部或內部事件通過硬件打斷程序執(zhí)行過程中,允許外部或內部事件通過硬件打斷程序的執(zhí)行,使其轉向為處理外部或內部事件的中斷服務程程序的執(zhí)行,使其轉向為處理外部或內部事件的中斷服務程序中

2、去;完成中斷服務程序后,序中去;完成中斷服務程序后,CPU繼續(xù)原來被打斷的程序,繼續(xù)原來被打斷的程序,這樣的過程稱為中斷響應過程,如圖這樣的過程稱為中斷響應過程,如圖51所示。所示。 中斷源:中斷源:能產生中斷的外部和內部事件。能產生中斷的外部和內部事件。 中斷優(yōu)先級:中斷優(yōu)先級:5.1 中斷系統(tǒng)概述中斷系統(tǒng)概述 當有幾個中斷源同時申請中斷時,或者當有幾個中斷源同時申請中斷時,或者CPU正在處理某中斷源正在處理某中斷源服務程序時,又有另一中斷源申請中斷,那么服務程序時,又有另一中斷源申請中斷,那么CPU必須要確定必須要確定優(yōu)先去處理誰的能力,稱為中斷優(yōu)先級。優(yōu)先去處理誰的能力,稱為中斷優(yōu)先級。

3、 中斷嵌套:中斷嵌套:優(yōu)先級高的事件可以中斷優(yōu)先級高的事件可以中斷CPU正在處理的低級的中斷服正在處理的低級的中斷服務程序,待完成了高級中斷服務程序之后,再繼續(xù)被打斷的低務程序,待完成了高級中斷服務程序之后,再繼續(xù)被打斷的低級中斷服務程序。這是中斷嵌套問題。級中斷服務程序。這是中斷嵌套問題。 單片微機的中斷系統(tǒng)需要解決的問題單片微機的中斷系統(tǒng)需要解決的問題單片微機的中斷系統(tǒng)需要解決的問題主要有三點,即:單片微機的中斷系統(tǒng)需要解決的問題主要有三點,即: 當單片微機內部或外部有中斷申請時,當單片微機內部或外部有中斷申請時,CPU能及時響能及時響應中斷,停下正在執(zhí)行的任務,轉去處理中斷服務子程序,中

4、應中斷,停下正在執(zhí)行的任務,轉去處理中斷服務子程序,中斷服務處理后能回到原斷點處繼續(xù)處理原先的任務;斷服務處理后能回到原斷點處繼續(xù)處理原先的任務; 當有多個中斷源同時申請中斷時,應能先響應優(yōu)先級高當有多個中斷源同時申請中斷時,應能先響應優(yōu)先級高的中斷源,實現(xiàn)中斷優(yōu)先級的控制;的中斷源,實現(xiàn)中斷優(yōu)先級的控制; 當低優(yōu)先級中斷源正在享用中斷服務時,若這時優(yōu)先級當低優(yōu)先級中斷源正在享用中斷服務時,若這時優(yōu)先級比它高的中斷源也申請中斷,要求能停下低優(yōu)先級中斷源的服務比它高的中斷源也申請中斷,要求能停下低優(yōu)先級中斷源的服務程序轉去執(zhí)行更高優(yōu)先級中斷源的服務程序,實現(xiàn)中斷嵌套,并程序轉去執(zhí)行更高優(yōu)先級中斷

5、源的服務程序,實現(xiàn)中斷嵌套,并能逐級正確返回原斷點處。能逐級正確返回原斷點處。 實現(xiàn)實現(xiàn)CPU與外部設備的速度配合與外部設備的速度配合 由于應用系統(tǒng)的許多外部設備速度較慢,可以通過中斷的方由于應用系統(tǒng)的許多外部設備速度較慢,可以通過中斷的方法來協(xié)調快速法來協(xié)調快速CPU與慢速外部設備之間的工作。與慢速外部設備之間的工作。 實現(xiàn)實時控制實現(xiàn)實時控制在單片微機中,依靠中斷技術能實現(xiàn)實時控制。實時控制要在單片微機中,依靠中斷技術能實現(xiàn)實時控制。實時控制要求計算機能及時完成被控對象隨機提出的分析和計算任務。在自動求計算機能及時完成被控對象隨機提出的分析和計算任務。在自動控制系統(tǒng)中,要求各控制參量隨機地

6、在任何時刻可向計算機發(fā)出請控制系統(tǒng)中,要求各控制參量隨機地在任何時刻可向計算機發(fā)出請求,求,CPUCPU必須作出快速響應、及時處理。必須作出快速響應、及時處理。 計算機發(fā)出請求,計算機發(fā)出請求,CPUCPU必須作出快速響應、及時處理。必須作出快速響應、及時處理。 實現(xiàn)故障的及時發(fā)現(xiàn)及處理實現(xiàn)故障的及時發(fā)現(xiàn)及處理單片微機應用中由于外界的干擾、硬件或軟件設計中存單片微機應用中由于外界的干擾、硬件或軟件設計中存在問題等因素,在實際運行中會出現(xiàn)硬件故障、運算錯誤、程在問題等因素,在實際運行中會出現(xiàn)硬件故障、運算錯誤、程序運行故障等,有了中斷技術,計算機就能及時發(fā)現(xiàn)故障并自序運行故障等,有了中斷技術,計

7、算機就能及時發(fā)現(xiàn)故障并自動處理。動處理。 實現(xiàn)人機聯(lián)系實現(xiàn)人機聯(lián)系比如通過鍵盤向單片微機發(fā)出中斷請求,可以實時干預比如通過鍵盤向單片微機發(fā)出中斷請求,可以實時干預計算機的工作。計算機的工作。80C5180C51的中斷系統(tǒng)包括中斷源、中斷允許寄存器的中斷系統(tǒng)包括中斷源、中斷允許寄存器IEIE、中、中斷優(yōu)先級寄存器斷優(yōu)先級寄存器IPIP、中斷矢量等。、中斷矢量等。在在80C5180C51中,只有兩級中斷優(yōu)先級。圖中,只有兩級中斷優(yōu)先級。圖5252是是80C5180C51的中的中斷系統(tǒng)結構示意圖。斷系統(tǒng)結構示意圖。5.2 80C51 5.2 80C51 的中斷系統(tǒng)的中斷系統(tǒng) 80C51 1中有五個中

8、斷源;中有五個中斷源;80C5280C52中增加了一個中斷源中增加了一個中斷源定時定時器計數器器計數器T2T2,即有六個中斷源。每一個中斷源都能被程控為高優(yōu),即有六個中斷源。每一個中斷源都能被程控為高優(yōu)先級或低優(yōu)先級。先級或低優(yōu)先級。80C5180C51五個中斷源中包括二個外部中斷源和三個五個中斷源中包括二個外部中斷源和三個內部中斷源。內部中斷源。二個外部中斷源二個外部中斷源INT0INT0和和INT1INT1,外部設備的中斷請求信號、掉,外部設備的中斷請求信號、掉電等故障信號都可以從電等故障信號都可以從INT0INT0或或INT1INT1引腳輸入。引腳輸入。三個內部中斷源為定時器三個內部中斷

9、源為定時器/ /計數器計數器T0T0和和T1T1的定時的定時/ /計數謚出中計數謚出中斷源和串行口發(fā)送或接收中斷源。斷源和串行口發(fā)送或接收中斷源。80C5180C51的五個中斷源可以分為三類,即:的五個中斷源可以分為三類,即:1. 1. 外部中斷外部中斷外部中斷是由外部信號引起的,共有二個外部中斷,它們外部中斷是由外部信號引起的,共有二個外部中斷,它們的中斷請求信號分別從引腳的中斷請求信號分別從引腳INT0 (P3.2) INT0 (P3.2) 和和INT1 (P3.3) INT1 (P3.3) 上引入。上引入。外部中斷請求有二種信號觸發(fā)方式,即電平有效方式和跳外部中斷請求有二種信號觸發(fā)方式,

10、即電平有效方式和跳變有效方式,可通過設置有關控制位進行定義。變有效方式,可通過設置有關控制位進行定義。當設定為電平有效方式時,若當設定為電平有效方式時,若INT0INT0或或INT1INT1引腳上采樣到有引腳上采樣到有效的低電平,則向效的低電平,則向CPUCPU提出中斷請求;當設定為跳變有效方式時,提出中斷請求;當設定為跳變有效方式時,若若INT0INT0或或INT1INT1引腳上采樣到有效負跳變,則向引腳上采樣到有效負跳變,則向CPUCPU提出中斷請求。提出中斷請求。 定時中斷定時中斷定時中斷是為滿足定時或計數的需要而設置的。當計數定時中斷是為滿足定時或計數的需要而設置的。當計數器發(fā)生計數溢

11、出時,表明設定的定時時間到或計數值已滿,這器發(fā)生計數溢出時,表明設定的定時時間到或計數值已滿,這時可以向時可以向CPUCPU申請中斷。由于定時器申請中斷。由于定時器/ /計數器在單片微機芯片內計數器在單片微機芯片內部,所以定時中斷屬于內部中斷。部,所以定時中斷屬于內部中斷。80C5180C51有二個二個源,即:有二個二個源,即: TF0 TF0(P3P34 4)T0T0溢出中斷。溢出中斷。 TF1 TF1(P3P35 5)T1T1溢出中斷。溢出中斷。 串行中斷串行中斷串行中斷是為串行數據傳送的需要而設置的。每當串行串行中斷是為串行數據傳送的需要而設置的。每當串行口發(fā)送或接收一組串行數據時,就產

12、生一個中斷請求??诎l(fā)送或接收一組串行數據時,就產生一個中斷請求。RXRX,TXTX串行中斷。串行中斷。當當CPUCPU響應中斷時,由硬件直接產生一個固定的地址,即響應中斷時,由硬件直接產生一個固定的地址,即矢量地址,由矢量地址指出每個中斷源設備的中斷服務程序的矢量地址,由矢量地址指出每個中斷源設備的中斷服務程序的入口,這種方法通常稱為矢量中斷。很顯然,每個中斷源分別入口,這種方法通常稱為矢量中斷。很顯然,每個中斷源分別有自已的中斷服務程序,而每個中斷服務程序又有自已的矢量有自已的中斷服務程序,而每個中斷服務程序又有自已的矢量地址。當地址。當CPUCPU識別出某個中斷源時,由硬件直接給出一個與該

13、中識別出某個中斷源時,由硬件直接給出一個與該中斷源相對應的矢量地址,從而轉入各自中斷服務程序。中斷矢斷源相對應的矢量地址,從而轉入各自中斷服務程序。中斷矢量地址見表量地址見表5 51 1。 INT0,INT1,T0 INT0,INT1,T0 及及 T1T1的中斷標志存放在的中斷標志存放在 TCONTCON(定時器計(定時器計數器控制)寄存器中;串行口的中斷標志存放在數器控制)寄存器中;串行口的中斷標志存放在 SCONSCON(串行口控(串行口控制)寄存器中。制)寄存器中。 定時器計數器控制寄存器定時器計數器控制寄存器TCONTCON字節(jié)地址為字節(jié)地址為88H88H,其格式如下,其格式如下:IT

14、1IT1(TCONTCON2 2)、)、IT0IT0(TCONTCON0 0)分別為)分別為T0T0、T1T1的中斷申請的中斷申請觸發(fā)方式控制位。觸發(fā)方式控制位。5.3 5.3 中斷的控制中斷的控制TF1TF1(TCONTCON7 7)T1T1計數溢出,由硬件置位,響應中斷時由硬計數溢出,由硬件置位,響應中斷時由硬件復位。不用中斷時用軟件清件復位。不用中斷時用軟件清0 0。 TF0TF0(TCONTCON5 5)T0T0計數溢出,由硬件置位,響應中斷時由硬計數溢出,由硬件置位,響應中斷時由硬件復位。不用中斷時用軟件清件復位。不用中斷時用軟件清0 0。IE1IE1(TCONTCON3 3)IE1

15、IE11 1時,外部中斷時,外部中斷1 1向向CPUCPU申請中斷。申請中斷。IE0IE0(TCONTCONl l)IE0IE01 1時,外部中斷時,外部中斷0 0向向CPUCPU申請中斷。申請中斷。串行口控制寄存器串行口控制寄存器SCONSCON字節(jié)地址為字節(jié)地址為98H98H,其格式如下:,其格式如下:低二位鎖存接收中斷源低二位鎖存接收中斷源RIRI和發(fā)送中斷源和發(fā)送中斷源TITI。 TITI(SCONSCON1 1):串行口發(fā)送中斷源。):串行口發(fā)送中斷源。發(fā)送完一幀,由硬件置位。響應中斷后,必須用軟件清發(fā)送完一幀,由硬件置位。響應中斷后,必須用軟件清 0 0。RIRI(SCONSCON

16、0 0):串行口接收中斷源。):串行口接收中斷源。接收完一幀,由硬件置位。響應中斷后,必須用軟件清接收完一幀,由硬件置位。響應中斷后,必須用軟件清0 0。中斷允許和禁止由中斷允許寄存器中斷允許和禁止由中斷允許寄存器IEIE控制??刂?。中斷允許寄存器中斷允許寄存器IEIE的字節(jié)地址為的字節(jié)地址為A8HA8H,其格式如下:,其格式如下:IEIE寄存器中各位設置:為寄存器中各位設置:為0 0時,禁止中斷;為時,禁止中斷;為 1 1時,允許中斷。時,允許中斷。系統(tǒng)復位后系統(tǒng)復位后IEIE寄存器中各位均為寄存器中各位均為0 0,即此時禁止所有中斷。,即此時禁止所有中斷。與中斷有關的控制位共與中斷有關的控

17、制位共6 6位,即:位,即: EX0(IE0 0)外部中斷外部中斷0 0中斷允許位。中斷允許位。 ET0(IE1 1)定時器計數器定時器計數器T0T0中斷允許位。中斷允許位。 EX1(IE2 2)外部中斷外部中斷1 1中斷允許位。中斷允許位。 ET1(IE3 3)一)一定時器計數器定時器計數器T1T1中斷允許位。中斷允許位。 ES(IE4 4)串行口中斷允許位。串行口中斷允許位。 EA(IE7 7)CPU中斷允許位。當中斷允許位。當EA1 1,允許,允許所有中斷開放,總允許后,各中斷的允許或禁止由各中斷源的所有中斷開放,總允許后,各中斷的允許或禁止由各中斷源的中斷允許控制位進行設置;當中斷允許

18、控制位進行設置;當EA0 0時,屏蔽所有中斷。時,屏蔽所有中斷。80C5180C51通過中斷允許控制寄存器對中斷的允許通過中斷允許控制寄存器對中斷的允許( (開放開放) ) 。實行二級控制,即以實行二級控制,即以EAEA位作為總控制位,以各中斷源的位作為總控制位,以各中斷源的中斷允許位作為分控制位。只有當總控制位中斷允許位作為分控制位。只有當總控制位EAEA有效時,即開放有效時,即開放中斷系統(tǒng),這時各分控制位才能對相應中斷源分別進行開放或中斷系統(tǒng),這時各分控制位才能對相應中斷源分別進行開放或禁止。禁止。在在80C5180C51中有高、低兩個中斷優(yōu)先級,通過中斷優(yōu)先級中有高、低兩個中斷優(yōu)先級,通

19、過中斷優(yōu)先級寄存器寄存器IP來設定。來設定。中斷優(yōu)先級寄存器中斷優(yōu)先級寄存器IP的字節(jié)地址為的字節(jié)地址為B8HB8H,其格式如下:,其格式如下:IPIP寄存器中各位設置:為寄存器中各位設置:為0 0時,為低中斷優(yōu)先級;為時,為低中斷優(yōu)先級;為1 1時,時,設為高中斷優(yōu)先級。設為高中斷優(yōu)先級。級級系統(tǒng)復位后系統(tǒng)復位后IPIP寄存器中各位均為寄存器中各位均為0 0,即此時全部設定為低,即此時全部設定為低中斷優(yōu)先級。中斷優(yōu)先級。中斷優(yōu)先級控制,除了中斷優(yōu)先級控制寄存器之外,還中斷優(yōu)先級控制,除了中斷優(yōu)先級控制寄存器之外,還有二個不可尋址的優(yōu)先級狀態(tài)觸發(fā)器,其中一個用于指示某一有二個不可尋址的優(yōu)先級狀

20、態(tài)觸發(fā)器,其中一個用于指示某一高優(yōu)先級中斷正在進行服務,而屏蔽其它高優(yōu)先級中斷;另一高優(yōu)先級中斷正在進行服務,而屏蔽其它高優(yōu)先級中斷;另一個用于指示某一低優(yōu)先級中斷正在進行服務,從而屏蔽其它低個用于指示某一低優(yōu)先級中斷正在進行服務,從而屏蔽其它低優(yōu)先級中斷,但不能屏蔽高優(yōu)先級中斷。優(yōu)先級中斷,但不能屏蔽高優(yōu)先級中斷。 在中斷執(zhí)行過程中,高中斷優(yōu)先級可以中斷低中斷優(yōu)先在中斷執(zhí)行過程中,高中斷優(yōu)先級可以中斷低中斷優(yōu)先級的中斷過程。但是若在中斷服務程序中,關掉所有中斷級的中斷過程。但是若在中斷服務程序中,關掉所有中斷(CLR EA)或關掉部分中斷時除外。)或關掉部分中斷時除外。當當CPU同時接收到二

21、個不同優(yōu)先級的中斷請求時,先響同時接收到二個不同優(yōu)先級的中斷請求時,先響應高優(yōu)先級的中斷,如果應高優(yōu)先級的中斷,如果CPUCPU同時接收到的是幾個同一優(yōu)先級的同時接收到的是幾個同一優(yōu)先級的中斷請求時,則由內部的硬件查詢序列確定它們的優(yōu)先服務次中斷請求時,則由內部的硬件查詢序列確定它們的優(yōu)先服務次序,即在同一優(yōu)先級內有一個由內部查詢序列確定的笫二個優(yōu)序,即在同一優(yōu)先級內有一個由內部查詢序列確定的笫二個優(yōu)先級結構。其排列如下:先級結構。其排列如下: 中斷源中斷源中斷優(yōu)先級中斷優(yōu)先級 外部中斷外部中斷0 0最高最高 定時器定時器T0T0中斷中斷 外部中斷外部中斷1 1 定時器定時器T1T1中斷中斷

22、串行口中斷串行口中斷 定時器定時器T2T2中斷中斷最低最低80C5180C51是一個二級中斷系統(tǒng)。但是通過軟件可以模仿第三是一個二級中斷系統(tǒng)。但是通過軟件可以模仿第三優(yōu)先級。優(yōu)先級。利用利用80C5180C51芯片內硬件可以為一些需要多于二個優(yōu)先級的芯片內硬件可以為一些需要多于二個優(yōu)先級的應用提供服務。只要編寫一段比較簡單的程序產生模擬的笫三應用提供服務。只要編寫一段比較簡單的程序產生模擬的笫三優(yōu)先級。優(yōu)先級。首先,把高于優(yōu)先級首先,把高于優(yōu)先級1 1的中斷在的中斷在IPIP寄存器中指定為優(yōu)先級寄存器中指定為優(yōu)先級1 1,假,假定優(yōu)先級定優(yōu)先級1 1的中斷是可被優(yōu)先級的中斷是可被優(yōu)先級2 2的

23、中斷所中斷,則優(yōu)先級的中斷所中斷,則優(yōu)先級1 1的中的中斷服務子程序如下:斷服務子程序如下:PUSH IEMOV IE,MASKACALL LABEL( (執(zhí)行服務子程序執(zhí)行服務子程序) )POP IERETLABEL:RETI只要任何一個優(yōu)先級中斷只要任何一個優(yōu)先級中斷1 1被響應,中斷允許寄存器被響應,中斷允許寄存器IEIE就就被重新定義以至禁止所有除優(yōu)先級被重新定義以至禁止所有除優(yōu)先級2 2之外的中斷。那么,對之外的中斷。那么,對LABEL的調用執(zhí)行了中斷返回指令的調用執(zhí)行了中斷返回指令RETI,它對正在進行中的優(yōu),它對正在進行中的優(yōu)先級先級1 1的中斷觸發(fā)器清零。這時,任何已被允許的優(yōu)

24、先級的中斷觸發(fā)器清零。這時,任何已被允許的優(yōu)先級1 1的中斷的中斷可以被服務,但沒有被允許的中斷優(yōu)先級可以被服務,但沒有被允許的中斷優(yōu)先級1 1的中斷就不能再被允的中斷就不能再被允許,而只能允許中斷優(yōu)先級許,而只能允許中斷優(yōu)先級2 2的中斷。的中斷。把把IE退棧,恢復原來的允許字節(jié),然后用子程序返回指退棧,恢復原來的允許字節(jié),然后用子程序返回指令令RET完成服務子程序完成服務子程序( (不能采用不能采用RETI指令指令) )。 INT0,INT1 INT0,INT1的中斷觸發(fā)方式有兩種:電平觸發(fā)方式,低電平有的中斷觸發(fā)方式有兩種:電平觸發(fā)方式,低電平有效;跳變觸發(fā)方式,電平發(fā)生由高到低的跳變時

25、觸發(fā)。效;跳變觸發(fā)方式,電平發(fā)生由高到低的跳變時觸發(fā)。 這兩種觸發(fā)方式可由設置這兩種觸發(fā)方式可由設置TCONTCON寄存器中的寄存器中的IT1IT1(TCONTCON2 2)、)、 IT0IT0(TCONTCON0 0)中斷申請觸發(fā)方式控制位來選擇:)中斷申請觸發(fā)方式控制位來選擇: 設置設置IT1IT1、IT0IT00 0,選擇電平觸發(fā)方式;,選擇電平觸發(fā)方式; 設置設置IT1IT1、IT0IT0l l,選擇跳變觸發(fā)方式,即當,選擇跳變觸發(fā)方式,即當INT0,INT1INT0,INT1引腳檢引腳檢測到前一個機器周期為高電平、后一個機器周期為低電平時,則測到前一個機器周期為高電平、后一個機器周期

26、為低電平時,則置位置位IE0IE0、IE1IE1且向且向CPUCPU申請中斷。申請中斷。 由于由于CPUCPU每個機器周期采樣每個機器周期采樣INT0,INT1INT0,INT1引腳信號一次,為確保引腳信號一次,為確保中斷請求被采樣到中斷請求被采樣到, ,外部中斷源送外部中斷源送INT0,INT1INT0,INT1引腳的中斷請求信號應引腳的中斷請求信號應至少保持一個機器周期。至少保持一個機器周期。如果是跳變觸發(fā)方式,外部中斷源送如果是跳變觸發(fā)方式,外部中斷源送INT0,INT1INT0,INT1引腳的中斷引腳的中斷請求信號高、低電平應至少各保持一個機器周期,才能確保請求信號高、低電平應至少各保

27、持一個機器周期,才能確保CPUCPU采采集到電平的跳變。集到電平的跳變。如果是電平觸發(fā)方式,則外部中斷源送如果是電平觸發(fā)方式,則外部中斷源送INT0,INT1INT0,INT1引腳請求引腳請求中斷的低電平有效信號,應一直保持到中斷的低電平有效信號,應一直保持到CPUCPU響應中斷為止。響應中斷為止。CPUCPU響應中斷請求,轉向中斷服務程序執(zhí)行,在其執(zhí)行中響應中斷請求,轉向中斷服務程序執(zhí)行,在其執(zhí)行中斷返回指令(斷返回指令(RETIRETI)之前,中斷請求信號必須撤除,否則將會)之前,中斷請求信號必須撤除,否則將會再一次引起中斷而出錯。再一次引起中斷而出錯。 中斷請求撤除的方式有三種,即:中斷

28、請求撤除的方式有三種,即: 1 1 由單片微機內部硬件自動復位。由單片微機內部硬件自動復位。對于定時器計數器對于定時器計數器T0T0、T1 T1 的溢出中斷和采用跳變觸發(fā)的溢出中斷和采用跳變觸發(fā)方式的外部中斷請求,在方式的外部中斷請求,在CPUCPU響應中斷后,由內部硬件自動清除。響應中斷后,由內部硬件自動清除。中斷標志中斷標志TF0TF0和和TF1TF1、IE0IE0和和IE1IE1,而自動撤除中斷請求。,而自動撤除中斷請求。( (硬件置硬件置位,硬件清除位,硬件清除) ) 2 2應用軟件清除相應標志。應用軟件清除相應標志。對于串行接收發(fā)送中斷請求和對于串行接收發(fā)送中斷請求和80C5280C

29、52中的定時器計數中的定時器計數器器T2T2的溢出和捕獲中斷請求,在的溢出和捕獲中斷請求,在CPUCPU響應中斷后,必須在中斷服響應中斷后,必須在中斷服務程序中應用軟件清除務程序中應用軟件清除RIRI、TITI、TF2TF2和和 EXF2EXF2這些中斷標志,才這些中斷標志,才能撤除中斷。能撤除中斷。( (硬件置位,軟件清除硬件置位,軟件清除) ) 。3 3采用外加采用外加 硬件結合軟件清除中斷請求。硬件結合軟件清除中斷請求。對于采用電平觸發(fā)方式的外部中斷請求,中斷標志的撤對于采用電平觸發(fā)方式的外部中斷請求,中斷標志的撤消是自動的,但中斷請求信號的低電平可能繼續(xù)存在,在以后消是自動的,但中斷請

30、求信號的低電平可能繼續(xù)存在,在以后機器周期采樣時又會把已清機器周期采樣時又會把已清“0”0”的的IE0IE0、IE1IE1標志重新置標志重新置“1”1”,再次申請中斷。為保證在再次申請中斷。為保證在CPUCPU響應中斷后、執(zhí)行返回指令前,撤響應中斷后、執(zhí)行返回指令前,撤除中斷請求,必須考慮另外的措施,保證在中斷響應后把中斷除中斷請求,必須考慮另外的措施,保證在中斷響應后把中斷請求信號從低電平強制改變?yōu)楦唠娖?。可在系統(tǒng)中加入如圖請求信號從低電平強制改變?yōu)楦唠娖?。可在系統(tǒng)中加入如圖5-3 5-3 所示電路。所示電路。從圖從圖5-3 5-3 中可看到,用中可看到,用D D觸發(fā)器鎖存外部中斷請求低電平

31、,并通過觸發(fā)器鎖存外部中斷請求低電平,并通過觸發(fā)器輸出端觸發(fā)器輸出端Q Q送或,所以送或,所以D D觸發(fā)器對外部中斷請求沒有影響。但觸發(fā)器對外部中斷請求沒有影響。但在中斷響應后,為了撤消低電平引起的中斷請求,可利用在中斷響應后,為了撤消低電平引起的中斷請求,可利用D D觸發(fā)器觸發(fā)器的直接置位端的直接置位端SDSD來實現(xiàn)。采用來實現(xiàn)。采用80C5180C51的一根的一根I/OI/O口線來控制口線來控制SDSD端。端。只要在只要在SDSD端輸入一個負脈沖即可使端輸入一個負脈沖即可使D D觸發(fā)器置觸發(fā)器置“1”1”,從而撤消了,從而撤消了低電平的中斷請求信號。低電平的中斷請求信號。( (硬件置位,硬

32、、軟件結合清除硬件置位,硬、軟件結合清除) ) 。所需負脈沖可以通過在中斷服務程序中增加以下二條指令所需負脈沖可以通過在中斷服務程序中增加以下二條指令得到:得到:ANL P1,#0FEH ;Q置置1(SD為直接置位端,低電平有效為直接置位端,低電平有效)ORL P1,#01H ;SD無效無效 使使P1.0輸出一個負脈沖,其持續(xù)時間輸出一個負脈沖,其持續(xù)時間為二個機器周期,足以使為二個機器周期,足以使D D觸發(fā)器置位,撤除低電平中斷請求。第二條指令是必要的,否則觸發(fā)器置位,撤除低電平中斷請求。第二條指令是必要的,否則D D觸發(fā)器的觸發(fā)器的Q Q端始終輸出端始終輸出“1”1”,無法再接受外部中斷請

33、求。,無法再接受外部中斷請求。從中斷請求發(fā)生直到被響應去執(zhí)行中斷服務程序,這是從中斷請求發(fā)生直到被響應去執(zhí)行中斷服務程序,這是一個很復雜的過程。而整個過程均在一個很復雜的過程。而整個過程均在CPUCPU的控制下有規(guī)律的進行。的控制下有規(guī)律的進行。中斷響應過程的時序如圖中斷響應過程的時序如圖5 54 4所示。所示。 中斷采樣中斷采樣中斷采樣是針對外部中斷請求信號進行的,而內部中斷中斷采樣是針對外部中斷請求信號進行的,而內部中斷請求都發(fā)生在芯片內部,可以直接置位請求都發(fā)生在芯片內部,可以直接置位TCONTCON或或SCONSCON中的中斷請中的中斷請求標志。在每個機器周期的求標志。在每個機器周期的

34、S5P2(S5P2(笫五狀態(tài)的第二節(jié)拍笫五狀態(tài)的第二節(jié)拍) )期間,期間,各中斷標志采樣相應的中斷源,并置入相應標志。各中斷標志采樣相應的中斷源,并置入相應標志。5.4 5.4 中斷響應過程和響應時間中斷響應過程和響應時間 中斷查詢中斷查詢 若查詢到某中斷標志為若查詢到某中斷標志為1,則按優(yōu)先級的高低進行處理,則按優(yōu)先級的高低進行處理,即響應中斷。即響應中斷。80C51的中斷請求都匯集在的中斷請求都匯集在TCON和和SCON二個特殊功二個特殊功能寄存器中。而能寄存器中。而CPU則在下一機器周期的則在下一機器周期的S6期間按優(yōu)先級的期間按優(yōu)先級的順序查詢各中斷標志。先查詢高級中斷,再查詢低級中斷

35、。同順序查詢各中斷標志。先查詢高級中斷,再查詢低級中斷。同級中斷按內部中斷優(yōu)先級序列查詢。如果查詢到有中斷標志位級中斷按內部中斷優(yōu)先級序列查詢。如果查詢到有中斷標志位為為“1” ,則表明有中斷請求發(fā)生,接著從相鄰的下一個機器,則表明有中斷請求發(fā)生,接著從相鄰的下一個機器周期的周期的S1狀態(tài)開始進行中斷響應。狀態(tài)開始進行中斷響應。由于中斷請求是隨機發(fā)生的,由于中斷請求是隨機發(fā)生的,CPU無法預先得知,因此無法預先得知,因此中斷查詢要在指令執(zhí)行的每個機器周期中不停地重復執(zhí)行。中斷查詢要在指令執(zhí)行的每個機器周期中不停地重復執(zhí)行。 中斷響應中斷響應 響應中斷后,由硬件自動生成長調用指令響應中斷后,由硬

36、件自動生成長調用指令“LCALL”, 其格式為其格式為LCALL addr16,而,而addr16就是各中斷源的中斷矢量就是各中斷源的中斷矢量地址地址(參見表參見表5-1)。先將程序計數器先將程序計數器PC的內容壓入堆棧進行保護,先低位的內容壓入堆棧進行保護,先低位地址,后高位地址,同時堆棧指針地址,后高位地址,同時堆棧指針SP加加2。將對應中斷源的中斷矢量地址裝入程序計數器將對應中斷源的中斷矢量地址裝入程序計數器PC,去,去執(zhí)行中斷服務程序。由于各中斷矢量區(qū)僅執(zhí)行中斷服務程序。由于各中斷矢量區(qū)僅8個字節(jié),通常是在個字節(jié),通常是在中斷矢量區(qū)中安排一條無條件轉移指令,使程序執(zhí)行轉向在其中斷矢量區(qū)

37、中安排一條無條件轉移指令,使程序執(zhí)行轉向在其它地址中存放的中斷服務程序。它地址中存放的中斷服務程序。中斷服務程序由中斷矢量地址開始執(zhí)行,直至遇到中斷服務程序由中斷矢量地址開始執(zhí)行,直至遇到RETI指令為止。指令為止。 執(zhí)行中斷返回指令執(zhí)行中斷返回指令RETI,一是撤銷中斷申請,一是撤銷中斷申請,彈出斷點地址進入彈出斷點地址進入PC,先彈出高位地址,后彈出低位地址,先彈出高位地址,后彈出低位地址,同時堆棧指針同時堆棧指針SP減減2,恢復原程序的斷點地址執(zhí)行;二是恢復,恢復原程序的斷點地址執(zhí)行;二是恢復中斷觸發(fā)器原先狀態(tài)。中斷觸發(fā)器原先狀態(tài)。中斷響應是有條件的,在接受中斷申請時,如遇下列情中斷響應

38、是有條件的,在接受中斷申請時,如遇下列情況之一時,硬件生成的長調用指令況之一時,硬件生成的長調用指令“LCALL”將被封鎖:將被封鎖: CPU正在執(zhí)行同級或高一級的中斷服務程序中。因為當一個正在執(zhí)行同級或高一級的中斷服務程序中。因為當一個中斷被響應時,其對應的中斷優(yōu)先級觸發(fā)器被置中斷被響應時,其對應的中斷優(yōu)先級觸發(fā)器被置“1”,封鎖了同,封鎖了同級和低級中斷;級和低級中斷;查詢中斷請求的機器周期不是執(zhí)行當前指令的最后一個周期。查詢中斷請求的機器周期不是執(zhí)行當前指令的最后一個周期。目的在于使當前指令執(zhí)行完畢后,才能進行中斷響應,以確保當目的在于使當前指令執(zhí)行完畢后,才能進行中斷響應,以確保當前指

39、令的完整執(zhí)行;前指令的完整執(zhí)行;當前正在執(zhí)行當前正在執(zhí)行RETI指令或執(zhí)行對指令或執(zhí)行對IE、IP的讀寫操作指令。的讀寫操作指令。80C51中斷系統(tǒng)的特性規(guī)定,在執(zhí)行完這些指令之后,必須再繼中斷系統(tǒng)的特性規(guī)定,在執(zhí)行完這些指令之后,必須再繼續(xù)執(zhí)行一條指令,然后才能響應中斷。續(xù)執(zhí)行一條指令,然后才能響應中斷。可以看出,中斷的執(zhí)行過程與調用子程序有許多相似點,比如:可以看出,中斷的執(zhí)行過程與調用子程序有許多相似點,比如: 都是中斷當前正在執(zhí)行的程序,轉去執(zhí)行子程序或中斷都是中斷當前正在執(zhí)行的程序,轉去執(zhí)行子程序或中斷服務程序。服務程序。 都是由硬件自動地把斷點地址壓入堆棧,然后通過軟件都是由硬件自

40、動地把斷點地址壓入堆棧,然后通過軟件完成現(xiàn)場保護。完成現(xiàn)場保護。 執(zhí)行完子程序或中斷服務程序后,都要通過軟件完成執(zhí)行完子程序或中斷服務程序后,都要通過軟件完成現(xiàn)場恢復,并通過執(zhí)行返回指令,重新返回到斷點處,繼續(xù)往現(xiàn)場恢復,并通過執(zhí)行返回指令,重新返回到斷點處,繼續(xù)往下執(zhí)行程序。下執(zhí)行程序。 二者都可以實現(xiàn)嵌套,如中斷嵌套和子程序嵌套。二者都可以實現(xiàn)嵌套,如中斷嵌套和子程序嵌套。但是中斷的執(zhí)行與調用子程序也有一些大的差別,比如:但是中斷的執(zhí)行與調用子程序也有一些大的差別,比如: 中斷請求信號可以由外部設備發(fā)出,是隨機的,比如中斷請求信號可以由外部設備發(fā)出,是隨機的,比如故障產生的中斷請求,比如按

41、鍵中斷等;子程序調用卻是由軟故障產生的中斷請求,比如按鍵中斷等;子程序調用卻是由軟件編排好的。件編排好的。 中斷響應后由固定的矢量地址轉入中斷服務程序,而中斷響應后由固定的矢量地址轉入中斷服務程序,而子程序地址由軟件設定。子程序地址由軟件設定。 中斷響應是受控的,其響應時間會受一些因素影響;中斷響應是受控的,其響應時間會受一些因素影響;子程序響應時間是固定的。子程序響應時間是固定的。 當單片微機應用于實時控制系統(tǒng)時,往往非常在意中斷的當單片微機應用于實時控制系統(tǒng)時,往往非常在意中斷的響應時間,比如出現(xiàn)故障后,響應時間,比如出現(xiàn)故障后,CPU在多長時間里能夠響應和處理。在多長時間里能夠響應和處理

42、。一般來說,在單級中斷系統(tǒng)中,中斷的響應時間最短為一般來說,在單級中斷系統(tǒng)中,中斷的響應時間最短為3個個機器周期,最長為機器周期,最長為8個機器周期。個機器周期。當中斷請求標志位查詢占當中斷請求標志位查詢占1個機器周期,而這個機器周期個機器周期,而這個機器周期又恰好是指令的最后一個機器周期,在這個機器周期結束后,又恰好是指令的最后一個機器周期,在這個機器周期結束后,CPU即響應中斷,產生硬件長調用即響應中斷,產生硬件長調用LCALL指令,執(zhí)行這條長調指令,執(zhí)行這條長調用指令需要用指令需要2個機器周期,這樣,中斷響應時間為個機器周期,這樣,中斷響應時間為3個機器周期。個機器周期。中斷響應時間最長

43、為中斷響應時間最長為8個機器周期。如果個機器周期。如果CPU正在執(zhí)行的正在執(zhí)行的是是RETI指令或訪問指令或訪問IP、IE指令,則等待時間不會多于指令,則等待時間不會多于2個機器個機器周期,而中斷系統(tǒng)規(guī)定把這幾條指令執(zhí)行完必須再繼續(xù)執(zhí)行一周期,而中斷系統(tǒng)規(guī)定把這幾條指令執(zhí)行完必須再繼續(xù)執(zhí)行一條指令后才能響應中斷,如這條指令恰好是條指令后才能響應中斷,如這條指令恰好是4個機器周期長的指個機器周期長的指令令(比如乘法指令比如乘法指令MUL或除法指令或除法指令DIV) ,再加上執(zhí)行長調用指,再加上執(zhí)行長調用指令令LCALL所需所需2個機器周期,總共需要個機器周期,總共需要8個機器周期。個機器周期。如

44、果中斷請求被前面所列三個條件之一所阻止,不能產如果中斷請求被前面所列三個條件之一所阻止,不能產生硬件長調用生硬件長調用LCALL指令,那么所需的響應時間就更長些。如指令,那么所需的響應時間就更長些。如果正在處理同級或優(yōu)先級更高的中斷,那么中斷響應的時間還果正在處理同級或優(yōu)先級更高的中斷,那么中斷響應的時間還需取決于處理中的中斷服務程序的執(zhí)行時間。需取決于處理中的中斷服務程序的執(zhí)行時間。在在80C51系列單片微機中,一般只有兩個外部中斷請求系列單片微機中,一般只有兩個外部中斷請求輸入端輸入端INT0,INT1 。當某個系統(tǒng)需要多個外部中斷源時,可以。當某個系統(tǒng)需要多個外部中斷源時,可以通過增加通

45、過增加“OC門門” 結合軟件來擴展;當定時器結合軟件來擴展;當定時器/計數器在系統(tǒng)計數器在系統(tǒng)中有空余時,也可以通過對計數器計數長度的巧妙設置,使定中有空余時,也可以通過對計數器計數長度的巧妙設置,使定時器時器/計數器的外部輸入腳計數器的外部輸入腳(TO或或T1) 成為外部中斷請求輸入端。成為外部中斷請求輸入端。5.5 外部中斷源的擴展外部中斷源的擴展引入芯片本身的外部中斷請求輸入端(引入芯片本身的外部中斷請求輸入端(INT0、INT1)就)就可很方便地擴展多個外部中斷源。圖可很方便地擴展多個外部中斷源。圖55 就是占用一個就是占用一個80C51的的 INT0(或(或INT1)擴展)擴展4個外

46、部中斷源的電路。個外部中斷源的電路。4個擴展外部中斷源中有一個或幾個出現(xiàn)高電平,反相器個擴展外部中斷源中有一個或幾個出現(xiàn)高電平,反相器輸出為輸出為0,引起,引起INT0低電平觸發(fā)中斷,所以這些中斷源都是電低電平觸發(fā)中斷,所以這些中斷源都是電平觸發(fā)方式。當滿足外部中斷請求條件時,則平觸發(fā)方式。當滿足外部中斷請求條件時,則CPU響應中斷,響應中斷,轉入轉入0003H單元開始執(zhí)行中斷服務程序。單元開始執(zhí)行中斷服務程序。在中斷服務程序中,由軟件設定的順序查詢外中斷哪一在中斷服務程序中,由軟件設定的順序查詢外中斷哪一位是高電平,然后進入該中斷處理程序。查詢的順序就是外部位是高電平,然后進入該中斷處理程序

47、。查詢的順序就是外部擴展中斷源的中斷優(yōu)先級順序。外部中斷源查詢的流程圖示于擴展中斷源的中斷優(yōu)先級順序。外部中斷源查詢的流程圖示于圖圖56。INT0的中斷服務程序如下:的中斷服務程序如下:PINTO:PUSH PSW ;保護現(xiàn)場;保護現(xiàn)場 PUSH ACC JB P1.0, LOOP1 ;轉向中斷服務程序;轉向中斷服務程序1 JB P1.l,LOOP2 ;轉向中斷服務程序;轉向中斷服務程序2 JB P1.2,LOOP3 ;轉向中斷服務程序;轉向中斷服務程序3 JB P1.3,LOOP4 ;轉向中斷服務程序;轉向中斷服務程序4INTEND:POP ACC ;恢復現(xiàn)場;恢復現(xiàn)場 POP PSW RE

48、TILOOP1:;中斷服務程序;中斷服務程序1 AJMP INTENDLOOP2:;中斷服務程序;中斷服務程序2 AJMP INTENDLOOP3:;中斷服務程序;中斷服務程序3 AJMP INTENDLOOP4:;中斷服務程序;中斷服務程序4 AJMP INTEND從程序中可以看出,這里定義的擴展外中斷源從程序中可以看出,這里定義的擴展外中斷源1的優(yōu)先級最高,的優(yōu)先級最高,擴展外中斷源擴展外中斷源4的優(yōu)先級最低,所以查詢的順序從的優(yōu)先級最低,所以查詢的順序從P1.0開始。開始。 利用利用T0或或T1的外部事件輸入引腳的外部事件輸入引腳T0、T1作為邊沿觸發(fā)作為邊沿觸發(fā)的外部中斷源。這時應設置

49、定時器的外部中斷源。這時應設置定時器/計數器為計數器方式,而計計數器為計數器方式,而計數常數為滿刻度值。外部輸入的脈沖在負跳變時有效,計數器數常數為滿刻度值。外部輸入的脈沖在負跳變時有效,計數器加加1后即溢出,向后即溢出,向CPU申請中斷。申請中斷。如果以如果以T0、T1的計數脈沖輸入作為外部中斷請求輸入,的計數脈沖輸入作為外部中斷請求輸入,T0、T1的中斷矢量用做第三、笫四個擴展的外部中斷矢量,的中斷矢量用做第三、笫四個擴展的外部中斷矢量,T0、T1的中斷服務程序入口地址作為擴展的外部中斷服務入口地址,的中斷服務程序入口地址作為擴展的外部中斷服務入口地址,即實現(xiàn)了外部中斷的擴展。即實現(xiàn)了外部

50、中斷的擴展。當當T2用做波特率發(fā)生器時,若用做波特率發(fā)生器時,若EXEN2置置1,則,則T2EX端的端的信號產生負跳變時,信號產生負跳變時,EXF2將置將置1,但不會發(fā)生重裝載或捕獲操,但不會發(fā)生重裝載或捕獲操作。這時,作。這時,T2EX可以作為一個附加的外部中斷源。可以作為一個附加的外部中斷源。 例例 把外部中斷請求信號把外部中斷請求信號2連到連到T1引腳上,引腳上,T1設為方式設為方式2,即,即8位自動重裝載方式,時間常數設為滿刻度值位自動重裝載方式,時間常數設為滿刻度值FFH外部中斷的服務程序入口地址存放在外部中斷的服務程序入口地址存放在T1的中斷矢量區(qū)中。其初始的中斷矢量區(qū)中。其初始化

51、程序段如下:化程序段如下:ORG0000HAJMP MAINORG001BH;T1中斷矢量用作外部中斷中斷矢量用作外部中斷2;的中斷矢量;的中斷矢量LJMP INT2ORG0030HMAIN:MOVTMOD,#60H ;設;設T1計數器方式計數器方式2MOVTL1,#0FFH;置;置T1計數常數計數常數MOVTH1,#0FFHSETB EA;開中斷;開中斷SETB ET1;允許計數器;允許計數器1中斷中斷SETB TR1;啟動計數;啟動計數-INT2: -;外部中斷;外部中斷2服務程序服務程序80C51的中斷系統(tǒng)中,允許用戶單步運行程序,這樣用的中斷系統(tǒng)中,允許用戶單步運行程序,這樣用戶可以很

52、方便的進行程序調試。一般是設置一個單步鍵戶可以很方便的進行程序調試。一般是設置一個單步鍵(STEP) ,用以產生脈沖,按一次用以產生脈沖,按一次STEP鍵就執(zhí)行一條指令,通過檢查結果鍵就執(zhí)行一條指令,通過檢查結果來檢查每條指令執(zhí)行的正確與否。來檢查每條指令執(zhí)行的正確與否。80C51中斷結構有一個重要特性,即執(zhí)行中斷返回指令中斷結構有一個重要特性,即執(zhí)行中斷返回指令RETI后,必須至少執(zhí)行一條其它指令后,才能響應新的中斷。后,必須至少執(zhí)行一條其它指令后,才能響應新的中斷。典型方法是使用外部中斷,并將其設為電平觸發(fā)方式。典型方法是使用外部中斷,并將其設為電平觸發(fā)方式。硬件上,把按鍵產生的脈沖連到硬

53、件上,把按鍵產生的脈沖連到 INT0(P3.2)引腳,作為引腳,作為外部中斷外部中斷0的中斷請求信號,并把電路設計為不按鍵時為低電平,的中斷請求信號,并把電路設計為不按鍵時為低電平,按一次鍵產生一個正脈沖。按一次鍵產生一個正脈沖。5.6 80C51的單步操作的單步操作 軟件上,需編制外部中斷軟件上,需編制外部中斷0的中斷服務程序,在中斷服務程序的的中斷服務程序,在中斷服務程序的末尾為末尾為 JNB P3.2,$;INT0 =0 ,則等待,則等待JB P3.2,$;INT0=1 ,則等待,則等待RETI;中斷返回;中斷返回在沒有按鍵時,在沒有按鍵時,INT0=0 ,中斷請求有效,響應中斷后,中斷

54、請求有效,響應中斷后執(zhí)行中斷服務程序,在執(zhí)行到執(zhí)行中斷服務程序,在執(zhí)行到JNB P3.2,$指令時等待。當按指令時等待。當按下單步鍵后產生一個正脈沖,執(zhí)行中斷返回,再執(zhí)行一條指令下單步鍵后產生一個正脈沖,執(zhí)行中斷返回,再執(zhí)行一條指令后,后, 由于已為低電平,所以單片微機再次響應中斷,并進入中由于已為低電平,所以單片微機再次響應中斷,并進入中斷服務程序等待。從而實現(xiàn)了按一次鍵執(zhí)行一條指令的功能。斷服務程序等待。從而實現(xiàn)了按一次鍵執(zhí)行一條指令的功能。 80C51單片微機中,共有單片微機中,共有5個中斷源,由個中斷源,由4個特殊功能寄存?zhèn)€特殊功能寄存器器TCON、SCON、IE和和IP進行管理和控制

55、。對于進行管理和控制。對于80C5280C32單片微機,增加了一個單片微機,增加了一個16位的定時器計數器位的定時器計數器T2中斷請求。中斷請求。 在在80C51單片微機中,需要用軟件對以下單片微機中,需要用軟件對以下5個內容進行設置:個內容進行設置: 中斷服務程序入口地址的設定。中斷服務程序入口地址的設定。 某一中斷源中斷請求的允許與禁止。某一中斷源中斷請求的允許與禁止。 對于外部中斷請求,還需進行觸發(fā)方式的設定。對于外部中斷請求,還需進行觸發(fā)方式的設定。 各中斷源優(yōu)先級別的設定。各中斷源優(yōu)先級別的設定。 CPU開中斷與關中斷。開中斷與關中斷。 5.7 中斷服務程序的設計中斷服務程序的設計

56、中斷程序一般包含中斷控制程序和中斷服務程序兩部分。中斷程序一般包含中斷控制程序和中斷服務程序兩部分。 中斷控制程序即中斷初始化程序,一般不獨立編寫,而是包中斷控制程序即中斷初始化程序,一般不獨立編寫,而是包含在主程序中,根據上述的含在主程序中,根據上述的5點通過編寫幾條指令來實現(xiàn)。點通過編寫幾條指令來實現(xiàn)。例例 試編寫設置外部中斷試編寫設置外部中斷INT0和串行接口中斷為高優(yōu)先級,和串行接口中斷為高優(yōu)先級,外部中斷外部中斷INT1為低優(yōu)先級。屏蔽為低優(yōu)先級。屏蔽T0 和和T1中斷請求的初始化程中斷請求的初始化程序段。序段。 根據題目要求,只要能將中斷請求優(yōu)先級寄存器根據題目要求,只要能將中斷請

57、求優(yōu)先級寄存器IP的第的第0、4位置位置“l(fā)”。其余位置。其余位置“0”,將中斷請求允許寄存器的第,將中斷請求允許寄存器的第0、2、4、7位置位置“l(fā)”,其余位置,其余位置“0”就可以了。就可以了。編程如下:編程如下:ORG 0000HSJMP MAINORG 0003HLJMP INT0INT;設外部中斷中斷矢量;設外部中斷中斷矢量ORG 0013HLJMP INT1INT;設外部中斷中斷矢量;設外部中斷中斷矢量ORG 0023HLJMP SIOINT;設串行口中斷矢量;設串行口中斷矢量ORG 0030HMAIN:MOV IP,#00010001B ;設外部中斷;設外部中斷INT0和和 ;串行口中斷為高優(yōu)先級;串行口中斷為高優(yōu)先級MOV IE#10010101B;允許;允許INT0、INT1、;串行口中斷,開;串行口中斷,開CPU中斷中斷 中斷服務程序是一種為中斷源的特定事態(tài)要求服務的獨立中斷服務程序是一種為中斷源的特定事態(tài)要求服務的獨立程序段,以中斷返回

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論