第六章MCS-51單片機的中斷_第1頁
第六章MCS-51單片機的中斷_第2頁
第六章MCS-51單片機的中斷_第3頁
第六章MCS-51單片機的中斷_第4頁
第六章MCS-51單片機的中斷_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、思考兩個問題什么是中斷?為什么使用中斷?什么是中斷?CPUCPU暫時暫時中止其正在執(zhí)行的程序,轉去執(zhí)行請求中止其正在執(zhí)行的程序,轉去執(zhí)行請求中斷的那個外設或事件的服務程序,等處理完畢后中斷的那個外設或事件的服務程序,等處理完畢后再返回執(zhí)行原來中止的程序再返回執(zhí)行原來中止的程序, , 叫做中斷。叫做中斷。主程序主程序響應中斷請求響應中斷請求中斷服務程序中斷服務程序返回主程序返回主程序繼續(xù)執(zhí)行主程序繼續(xù)執(zhí)行主程序斷點斷點什么是中斷? 中斷嵌套流程 為什么要設置中斷?為什么要設置中斷? 提高提高CPUCPU工作效率工作效率 具有實時處理功能具有實時處理功能 具有故障處理功能具有故障處理功能 實現(xiàn)分時

2、操作實現(xiàn)分時操作中斷功能強弱是計算機性能優(yōu)劣的重要標志中斷功能強弱是計算機性能優(yōu)劣的重要標志中斷系統(tǒng)要解決的問題:中斷系統(tǒng)要解決的問題:CPU在不斷的指令執(zhí)行中,是如何檢測到隨機發(fā)生的中斷請求?在不斷的指令執(zhí)行中,是如何檢測到隨機發(fā)生的中斷請求?如何使中斷的雙方(如何使中斷的雙方(CPU方和中斷源方)均能人為控制,允許中斷或禁止中斷。方和中斷源方)均能人為控制,允許中斷或禁止中斷。由于中斷產生的由于中斷產生的隨機性隨機性,不可能在程序中放置調用子程序指令或轉移指令,那,不可能在程序中放置調用子程序指令或轉移指令,那么如何實現(xiàn)正確的轉移,以便為該中斷源服務呢?么如何實現(xiàn)正確的轉移,以便為該中斷源

3、服務呢?中斷源有多個,而中斷源有多個,而CPU只有一個,當有多個中斷源同時有中斷請求時,用戶怎只有一個,當有多個中斷源同時有中斷請求時,用戶怎么控制么控制CPU按照自己的需要排列響應次序?按照自己的需要排列響應次序?中斷服務完畢,如何正確的返回到斷點處繼續(xù)執(zhí)行后序指令?中斷服務完畢,如何正確的返回到斷點處繼續(xù)執(zhí)行后序指令?MCSMCS5151的中斷系統(tǒng)的中斷系統(tǒng)MCS-51中斷系統(tǒng)中斷系統(tǒng)MCS-51中斷系統(tǒng)結構中斷系統(tǒng)結構MCS-51中斷處理過程中斷處理過程MCS-51中斷系統(tǒng)應用中斷系統(tǒng)應用 在在CPU和外設交換信息時,存在著和外設交換信息時,存在著快速快速CPU和和慢速外設慢速外設間的間

4、的矛盾,機器內部有時也可能出現(xiàn)矛盾,機器內部有時也可能出現(xiàn)突發(fā)事件突發(fā)事件,為此,計算機中,為此,計算機中通常采用中斷技術。通常采用中斷技術。中斷中斷 CPU和外設并行工作,當外設數據準備好和外設并行工作,當外設數據準備好( 或有某種突發(fā)事或有某種突發(fā)事件發(fā)生件發(fā)生)時向時向CPU提出請求,提出請求,CPU暫停正在執(zhí)行的程序轉而為暫停正在執(zhí)行的程序轉而為該外設服務該外設服務(或處或處 理緊急事件理緊急事件),處理完畢再,處理完畢再回到原斷點回到原斷點繼續(xù)繼續(xù)執(zhí)行原程序。執(zhí)行原程序。中斷源中斷源 引起中斷的原因引起中斷的原因,中斷申請的來源,中斷源可以是中斷申請的來源,中斷源可以是I/O設備、設

5、備、故障、時鐘、調試中人為設置故障、時鐘、調試中人為設置。中斷系統(tǒng)的基本結構 中斷優(yōu)先級中斷優(yōu)先級 當有多個中斷源同時當有多個中斷源同時 向向CPU申請中斷時,申請中斷時,CPU優(yōu)優(yōu)先響應最需緊急處理的中斷請求,處理完畢再響應先響應最需緊急處理的中斷請求,處理完畢再響應優(yōu)先級別較低的優(yōu)先級別較低的 ,這種,這種預先安排的響應次序預先安排的響應次序。 中斷的嵌套中斷的嵌套 在中斷系統(tǒng)中在中斷系統(tǒng)中,高優(yōu)先級的,高優(yōu)先級的 中斷請求能中斷正在中斷請求能中斷正在進行的較低級的中斷源處理進行的較低級的中斷源處理. MCS51系列單片機上集成有中斷系統(tǒng),從使用者的角度出發(fā),系列單片機上集成有中斷系統(tǒng),從

6、使用者的角度出發(fā),MCS51的的中斷系統(tǒng)就是一些中斷系統(tǒng)就是一些SFR,如,如IE、IP、TCON、SCON。 INT0定時器定時器1串行口串行口外設外設外設外設0INT10IE0IE1TF0TF1定時器定時器0TCONRITISCONEX0EX1ET0ET1ESIEEAPX001PX101PT001PT101PS01IP0003H000BH0013H001BH0023H0003H000BH0013H001BH0023HPC高高低低中斷源中斷源中斷系統(tǒng)結構圖MCS-51中斷源中斷源 MCS51單片機有單片機有5個中斷源。個中斷源。5個中斷源分為個中斷源分為2種:種:2個外中斷(由個外中斷(由P

7、3.2和和P3.3引入)引入)和和3個內中斷(個內中斷(T0、T1和串口)。和串口)。每個中斷源對應一個中斷標志位每個中斷源對應一個中斷標志位,當某個中斷源有,當某個中斷源有中中 斷請斷請求求時,相應的時,相應的中斷標志位置中斷標志位置1,各個中斷源的中斷標志位在各個中斷源的中斷標志位在TCON和和SCON中中。INT0定時器定時器1串行口串行口外設外設外設外設0INT10IE0IE1TF0TF1定時器定時器0TCONRITISCONEX0EX1ET0ET1ESIEEAPX001PX101PT001PT101PS01IP0003H000BH0013H001BH0023H0003H000BH00

8、13H001BH0023HPC高高低低中斷源中斷源 符號符號 名名 稱稱 中中 斷斷 引引 起起 原原 因因 中斷服務程中斷服務程序入口序入口INT0INT0 外部中斷外部中斷0 0 P3.2 P3.2引腳的低電平或下降沿信號引腳的低電平或下降沿信號 0003H0003HINT1INT1 外部中斷外部中斷1 1P3.3P3.3引腳的低電平或下降沿信號引腳的低電平或下降沿信號 0013H0013HT0T0定時器定時器0 0中中斷斷 定時計數器定時計數器0 0計數回零溢出計數回零溢出 000BH000BHT1T1定時器定時器1 1中中斷斷 定時計數器定時計數器1 1計數回零溢出計數回零溢出 001

9、BH001BHTI/RI TI/RI 串行口中斷串行口中斷 串行通信完成一幀數據發(fā)送或接收引起串行通信完成一幀數據發(fā)送或接收引起中斷中斷 0023H0023H 8XX51有有5個中斷源,個中斷源,3個在片內,個在片內,2個在片外,它們在程序存貯器中有固定個在片外,它們在程序存貯器中有固定的中斷入口地址,的中斷入口地址, 當當CPU響應中斷時,硬件自動形成這些地址,由此進入響應中斷時,硬件自動形成這些地址,由此進入中斷服務程序;中斷服務程序;5個中斷源有兩級中斷優(yōu)先級,可形式中斷嵌套個中斷源有兩級中斷優(yōu)先級,可形式中斷嵌套;一)一)中斷中斷請求標志寄存器請求標志寄存器TCON和和串行口控制寄存器

10、串行口控制寄存器SCON 1 1、MCS51單片機內部的中斷檢測電路檢測到有中斷請求后,將檢測結果存于TCON、SCON中;每個中斷源對應一個中斷標志位每個中斷源對應一個中斷標志位,當某個中斷源有中斷請求時,相應的中斷標志位置1,各個中斷源的中斷標志位在TCON和SCON中。TCONTCON:88H 88H 可以按字節(jié)操作,也可以按位操作。可以按字節(jié)操作,也可以按位操作。SCONSCON:98H 98H 可以按字節(jié)操作,也可以按位操作??梢园醋止?jié)操作,也可以按位操作。TF1TR1TF0TR0IE1 IT1 IE0 IT0TIRI中斷相關的寄存器中斷相關的寄存器其中:其中: TF1 定時器定時器

11、/計數器計數器1(T1)的溢出中斷標志。當)的溢出中斷標志。當T1從初值開始加從初值開始加1計數到計數滿,計數到計數滿,產生溢出時,由硬件使產生溢出時,由硬件使TF1置置“1”,并向并向CPU請求中斷請求中斷。直到。直到CPU響應中斷時由硬響應中斷時由硬件復位置件復位置0。 TF0 定時器定時器/計數器計數器0(T0)的溢出中斷標志。其作用同)的溢出中斷標志。其作用同TF1。 IE1 外中斷外中斷1中斷請求標志。如果中斷請求標志。如果IT1=1,則當外中斷,則當外中斷1引腳上的電平由引腳上的電平由1變變0時,時,IE1由硬件置位,由硬件置位,外中斷外中斷1請求中斷請求中斷。在。在CPU響應該中

12、斷時由硬件清響應該中斷時由硬件清0。 IT1 外部中斷外部中斷1觸發(fā)方式控制位。如果觸發(fā)方式控制位。如果IT1為為1,則外中斷,則外中斷1為下降沿觸發(fā)方式為下降沿觸發(fā)方式(CPU在每個機器周期的在每個機器周期的S5P2采樣采樣腳腳的輸入電平,如果在一個周期中采樣到高電平,的輸入電平,如果在一個周期中采樣到高電平,在下個周期中采樣到低電平,則硬件使在下個周期中采樣到低電平,則硬件使IE1置置1,向,向CPU請求中斷);如果請求中斷);如果IT1為為0,則外中斷則外中斷1為低電平觸發(fā)方式。為低電平觸發(fā)方式。此時外部中斷是通過檢測端的輸入電平(低電平)此時外部中斷是通過檢測端的輸入電平(低電平)來觸

13、發(fā)的。來觸發(fā)的。采用電平觸發(fā)時,輸入到的外部中斷源必須保持低電平有效采用電平觸發(fā)時,輸入到的外部中斷源必須保持低電平有效,直到該中直到該中斷被響應。同時在中斷返回前必須使電平變高,否則將會再次產生中斷。斷被響應。同時在中斷返回前必須使電平變高,否則將會再次產生中斷。 IE0 外中斷外中斷0中斷請求標志。如果中斷請求標志。如果IT0置置1,則當上的電平由,則當上的電平由1變變0時,時,IE0由硬件置位。由硬件置位。在在CPU把控制轉到中斷服務程序時由硬件使把控制轉到中斷服務程序時由硬件使IE0復位。復位。 IT0 外部中斷源外部中斷源0觸發(fā)方式控制位。其含義同觸發(fā)方式控制位。其含義同IT1。TF

14、1TF0IE1IT1IE0IT0TCON2 2、在每條指令結束時,在每條指令結束時,CPUCPU檢測各個中斷標志位,若中斷標志位置檢測各個中斷標志位,若中斷標志位置1 1,則認為有,則認為有中斷請求。中斷請求。3 3、外中斷有、外中斷有2 2種觸發(fā)方式:種觸發(fā)方式:低電平和下降沿低電平和下降沿,由,由TCONTCON中的中的ITIT0 0和和 ITIT1 1決定。決定。 當當IT0=1IT0=1,INT0INT0為脈沖方式,后沿負跳變有效;當為脈沖方式,后沿負跳變有效;當IT0=0IT0=0,低電平有效。此位,低電平有效。此位,可由軟件置可由軟件置1 1或清或清0 0。 當當IT1=1IT1=

15、1,INT1INT1為脈沖方式,后沿負跳變有效;當為脈沖方式,后沿負跳變有效;當IT1=0IT1=0,低電平有效。此位,低電平有效。此位可由軟件置可由軟件置1 1或清或清0 0。(3)TR0 和和 TR1 為定時器為定時器T0和和T1 工作啟動和停止控制。工作啟動和停止控制。 TF1 TR1TF0 TR0 IE1IT1 IE0IT0T1 請求請求有有/無無 T1工作工作啟啟/停停 T0 請求請求有有/無無 T0 工作工作啟啟/停停 INT1 請求請求有有/無無 INT1方式方式下沿下沿/ 低低電平電平 INT0請求請求有有/無無 INT0方式方式下沿下沿/低低電平電平 串行口控制寄存器串行口控

16、制寄存器SCON串行口控制寄存器SCON中的低2位用作串行口中斷標志,如下圖所示。 D7 D6 D5 D4 D3 D2 D1 D0其中: RI 串行口接收中斷標志。在串行口接收一個字符后,由內部硬件使接收中斷請求標志位RI置位,表示串行口接收器正向CPU請求中斷。注意,當CPU轉入串行口中斷服務程序入口時不復位RI,必須由用戶用軟件來使RI清0。 TI 串行口發(fā)送中斷標志。當串行口發(fā)送完一個字符后,由內部硬件使發(fā)送中斷標志TI置位,表示串行口正在向CPU請求中斷。當CPU響應中斷,轉向串行口中斷服務時,也不能硬件自動清零,必須由軟件來復位。TI RI 二)二)中斷開放與中斷允許控制寄存器中斷開

17、放與中斷允許控制寄存器 IE MCS-51單片機的5個中斷源,用戶都可以通過軟件方法來控制是否允許用戶都可以通過軟件方法來控制是否允許CPUCPU去去響應中斷響應中斷。CPU對中斷源的中斷允許或中斷禁止的控制是通過中斷允許控制寄存中斷允許控制寄存器器IE來實現(xiàn)的。 IEIE:A8H A8H 可以按字節(jié)操作,也可以按位操作??梢园醋止?jié)操作,也可以按位操作。 EA: 當EA=0時, 稱CPU關中斷。當EA=1時,稱CPU開中斷。 EX0:當EX0=0時,禁止INT0 申請中斷;當EX0=1時,允許INT0 申請中斷。 EX1:當EX1=0時,禁止INT1申請中斷;當EX1=1時,允許INT1申請中

18、斷。 ET0:當ET0=0時, 禁止T0中斷;當ET0=1時,允許T0中斷。 ET1:當ET1=0時, 禁止T1中斷;當ET1=1時,允許T1中斷。 ES: 當ES=0時, 禁止串行口中斷;當ES=1時,允許串行口中斷 EX0ET0EX1ET1ESEA中斷開放與中斷允許控制寄存器中斷開放與中斷允許控制寄存器 IE復位后復位后IE=00H,說明,說明CPU和各個中斷源都關中斷。和各個中斷源都關中斷。注意:注意:,因此,如果在轉入中斷服務處理程,因此,如果在轉入中斷服務處理程序后,如果想禁止更高級的中斷源的中斷申請,可以序后,如果想禁止更高級的中斷源的中斷申請,可以用軟件方式關閉中斷用軟件方式關閉

19、中斷。例如:例如:假定要開放外中斷假定要開放外中斷1 1和和T1T1的溢出中斷,屏蔽其他中斷,則對應的中斷允許的溢出中斷,屏蔽其他中斷,則對應的中斷允許控制寄存器內容應為控制寄存器內容應為10001100B10001100B,即中斷允許控制字為,即中斷允許控制字為8CH8CH。使用字節(jié)操作指令,可用一條指令使用字節(jié)操作指令,可用一條指令MOV IEMOV IE,8CH8CH完成。完成。使用位操作指令,則需三條指令使用位操作指令,則需三條指令SETB EX1SETB EX1;SETB ET1SETB ET1;SETB EASETB EA實現(xiàn)。實現(xiàn)。三)三) 中斷優(yōu)先級與中斷優(yōu)先級寄存器中斷優(yōu)先級

20、與中斷優(yōu)先級寄存器 IP MCS-51單片機的中斷系統(tǒng)對優(yōu)先級的控制比較簡單,只規(guī)定了兩個中斷優(yōu)先只規(guī)定了兩個中斷優(yōu)先級級,對于每一個中斷源均可編程為高優(yōu)先級中斷高優(yōu)先級中斷或低優(yōu)先級中斷低優(yōu)先級中斷,各中斷源的優(yōu)先級由中斷優(yōu)先級控制寄存器IP設定。 IP IP:B8H B8H 可以按字節(jié)操作,也可以按位操作??梢园醋止?jié)操作,也可以按位操作。 PX0 PX0:當PX0=0時,INT0 處于低級;當PX0=1時,INT0 處于高級。 PX1PX1:當PX1=0時,INT1 處于低級;當PX1=1時,INT1 處于高級。 PT0PT0:當PT0=0時,T0 處于低級;當PT0=1時,T0 處于高級

21、。 PT1PT1:當PT1=0時,T1 處于低級;當PT1=1時,T1處于高級 PSPS: 當PS=0時, 串行口處于低級;當PX0=1時,串行口處于高級。 PX0PT0PX1PT1PS 復位后復位后IP=00HIP=00H,說明,說明各個中斷源都處于低級。各個中斷源都處于低級。注意:注意:1 1、當五個中斷源在同一個優(yōu)先級的情況下INT0優(yōu)先權最高,串行口優(yōu)先權最低。在同一個優(yōu)先級中,對五個中斷源的優(yōu)先次序安排如下: INT0T0INT1T1 INT0T0INT1T1串口串口 (中斷優(yōu)先級從高到低)(中斷優(yōu)先級從高到低)2、對于外中斷來說,可以用軟件查詢法軟件查詢法和硬件排隊電路法硬件排隊電

22、路法確定優(yōu)先級。3、通過對IP寄存器的編程,可以把五個中斷源分別定義在兩個優(yōu)先級中,軟件可以隨時對IP的各位清0或置1。例如例如 某軟件中對寄存器IE、IP設置如下:MOV IE,10001111B MOV IP,00000110B 此時該系統(tǒng)中:CPU中斷允許;允許外部中斷0、外部中斷1、定時/計數器0、定時/計數器1發(fā)出的中斷申請。允許中斷源的中斷優(yōu)先次序為:定時/計數器0外部中斷1外部中斷0定時/計數器1。MCS-51中斷系統(tǒng)圖示自然優(yōu)先級矢量地址自然優(yōu)先級矢量地址高級中斷請求PCPC斷請求低級中SCON中斷標志IPPX01PT0110PX110PS100PT10IEEX0ET0EX1E

23、T1ESTCONIE0TF0IE1TF1TIRIRXTXT1IT1=1INT1IT1=0T0INT0IT0=1IT0=0源允許總允許優(yōu)先級硬件查詢EA 4.2.2 MCS-51中斷處理全過程中斷處理全過程 4.2.2 MCS-51中斷處理全過程中斷處理全過程1、中斷請求、中斷請求 MCS51單片機單片機內部的中斷檢測電路內部的中斷檢測電路檢測各個中斷源檢測各個中斷源,檢測到有中斷,檢測到有中斷申申請后,將相應的請后,將相應的中斷標志位置中斷標志位置1。 CPU在在時,檢測各個中斷標志位,若中斷標志位置時,檢測各個中斷標志位,若中斷標志位置1,則認,則認為有中斷請求。為有中斷請求。 CPU讀取讀

24、取IE和和IP的內容的內容,若中斷允許且滿足如下,若中斷允許且滿足如下條件條件,則在下一個機器,則在下一個機器周期進入中斷響應階段。周期進入中斷響應階段。 沒有同級或更高級的中斷正在執(zhí)行(否則必須等沒有同級或更高級的中斷正在執(zhí)行(否則必須等CPU為它們服務完之后,為它們服務完之后,才能響應新中斷請求。)才能響應新中斷請求。)執(zhí)行完的指令不是執(zhí)行完的指令不是RETI或訪問或訪問IE和和IP的指令(否則必須另外執(zhí)行一條指的指令(否則必須另外執(zhí)行一條指令后才能響應令后才能響應。) 當前執(zhí)行的指令已經執(zhí)行完。當前執(zhí)行的指令已經執(zhí)行完。 4.2.2 MCS-51中斷處理全過程中斷處理全過程2、中斷響應、

25、中斷響應 在中斷響應階段單片機做2件工作: 斷點地址壓棧。斷點地址壓棧。 根據不同的中斷源,將不同的固定地址送根據不同的中斷源,將不同的固定地址送PC,從而轉到不同的地方執(zhí)行程,從而轉到不同的地方執(zhí)行程序。序。 各個中斷源的入口地址是:各個中斷源的入口地址是:0003H、000BH、0013H、001BH、0023H。 INT0 T0 INT1 T1 串行口串行口3、中斷服務、中斷服務 CPU響應中斷后即轉至中斷服務程序的入口,執(zhí)行中斷服務程序。針對中斷源的具體要求進行不同處理,不同的中斷源其中斷處理內容可能不同。4、中斷返回、中斷返回 中斷服務(子)程序的最后一條指令是中斷服務(子)程序的最

26、后一條指令是RETI,RETI指令使程序返回被中斷指令使程序返回被中斷的(主)程序繼續(xù)執(zhí)行。的(主)程序繼續(xù)執(zhí)行。 CPU執(zhí)行該指令,一方面清除中斷響應時所置位的優(yōu)先級有效觸發(fā)器;另一方面從堆棧棧頂彈出斷點地址送入程序計數器從堆棧棧頂彈出斷點地址送入程序計數器PC,從而返回主程序。,從而返回主程序。對電平觸發(fā)的外部中斷,對電平觸發(fā)的外部中斷,CPU在響應中斷時也不會自動清在響應中斷時也不會自動清除中斷標志,因此,在除中斷標志,因此,在CPU響應中斷后應立即撤除響應中斷后應立即撤除INT1或或INT0的低電平信號的低電平信號。 對定時計數器對定時計數器T0、T1的溢出中斷,的溢出中斷,CPU響應

27、中斷后,硬響應中斷后,硬件自動清除中斷請求標志件自動清除中斷請求標志TF0和和TF1。 對邊沿觸發(fā)的外部中斷對邊沿觸發(fā)的外部中斷INT1和和INT0,CPU響應中斷后硬件自動清除中斷請求標志響應中斷后硬件自動清除中斷請求標志IE0和和IE1。 對于串行口中斷,對于串行口中斷,CPU響應中斷后,沒有用硬件清除中斷響應中斷后,沒有用硬件清除中斷請求標志請求標志TI、RI,即這些中斷標志,即這些中斷標志 不會自動清除不會自動清除,必須用軟件,必須用軟件清除,這是在編串行通信中斷服務中應該注意的。清除,這是在編串行通信中斷服務中應該注意的。5、中斷撤除、中斷撤除MCS-51中斷系統(tǒng)的初始化中斷系統(tǒng)的初

28、始化 MCS-51中斷系統(tǒng)功能,是可以通過上述特殊功能寄存器統(tǒng)一管理的,中斷系統(tǒng)初始化是指用戶對這些特殊功能寄存器中的各控制位進行賦值。中斷系統(tǒng)初始化中斷系統(tǒng)初始化中斷系統(tǒng)初始化步驟如下: 開相應中斷源的中斷; 設定所用中斷源的中斷優(yōu)先級; 若為外部中斷,則應規(guī)定低電平還是負邊沿的中斷觸發(fā)方式。MCS-51中斷系統(tǒng)的應用中斷系統(tǒng)的應用中斷系統(tǒng)初始化中斷系統(tǒng)初始化例: 請寫出為低電平觸發(fā)的中斷系統(tǒng)初始化程序。解:采用位操作指令 SETB EASETB EX1 ;開中斷SETB PX1 ;令為高優(yōu)先級CLR IT1 ;令為電平觸發(fā) 采用字節(jié)型指令MOV IE,#84H ;開中斷ORL IP,#04

29、H ;令為高優(yōu)先級ANL TCON,#0FBH ;令為電平觸發(fā)例1:若規(guī)定外部中斷0為電平觸發(fā)方式,高優(yōu)先級,試寫出有關的初始化程序。 解:一般可采用位操作指令來實現(xiàn): SETB EA ;開中斷 SETB EX0 ;允許外中斷0中斷 SETB PX0 ;外中斷0定為高優(yōu)先級CLR IT0 ;電平觸發(fā)中斷系統(tǒng)初始化中斷系統(tǒng)初始化外部中斷設定的步驟外部中斷設定的步驟: ORG 03H(13H) ( )外部中斷的起始地址 JMP EXT 中斷時跳至中斷子程序EXT MOV IE,#10000001BH 中斷使能 MOV IE,#10000100BH 中斷使能 MOV IP,#00000001BH 中

30、斷優(yōu)先 MOV IP,#00000100BH 中斷優(yōu)先 MOV TCON,#00000000B(設定 為電平觸發(fā)) MOV TCON,#00000001B(設定 為負邊沿觸發(fā)) MOV TCON,#00000000B(設定 為電平觸發(fā)) MOV TCON,#00000100B(設定 為負邊沿觸發(fā))0INT0INT0INT0INT0INT 1INT 1INT 1INT 1INT 1INT 中斷系統(tǒng)初始化中斷系統(tǒng)初始化TIMER0或或TIMER1的中斷請求的中斷請求 當計數溢出時會設定TFX=1,而對8051提出中斷請求。TIMER0或TIMER1中斷請求設定的步驟如下: 定中斷起始地址 ORG

31、0BH ;TIMER0 ORG 1BH ;TIMER1 定工作方式 MOV TMOD ,#XXXXXXXXB設定計數值 MOV THX,#XXXX MOV TLX,#XXXX設定中斷使能 MOV IE,#1000X0X0中斷的程序設計中斷的程序設計 用戶對中斷的控制和管理,實際是對用戶對中斷的控制和管理,實際是對4個與中斷有關的寄個與中斷有關的寄存器存器IE、TCON、IP、SCON進行控制進行控制 或管理或管理。這幾個寄存。這幾個寄存器在單片機復位時是清零的,因此必須根據需要對這幾個寄器在單片機復位時是清零的,因此必須根據需要對這幾個寄存器的有關存器的有關 位進行預置。在中斷程序的編制中應注

32、意:位進行預置。在中斷程序的編制中應注意:開中斷總控開關EA,置位中斷源的中斷允許位。對外部中斷INT0、INT1應選擇中斷觸發(fā)方式。編寫中斷服務程序,并注意用保護現(xiàn)場和恢復現(xiàn)場,以免中斷返回時,丟失原寄存器、累加器中的信息。多個中斷源中斷,應設定中斷優(yōu)先級,預置IP。 若要在執(zhí)行當前中斷程序時禁止更高優(yōu)先級中斷,可以采 用軟件關CPU中斷或禁止某中斷源中斷,在中斷返回前再開放中斷。C51中斷程序的編制 C51C51使用戶能編寫高效的中斷服務程序,編譯器在規(guī)定的中斷源的矢使用戶能編寫高效的中斷服務程序,編譯器在規(guī)定的中斷源的矢量地址中放入無條件轉移指令,使量地址中放入無條件轉移指令,使CPUC

33、PU響應中斷后自動地從矢量地址跳轉響應中斷后自動地從矢量地址跳轉到中斷服務程序的實際地址,而無需用戶去安排。到中斷服務程序的實際地址,而無需用戶去安排。中斷服務程序定義為函數,函數的完整定義如下。中斷服務程序定義為函數,函數的完整定義如下。返回值返回值 函數名函數名( (參數參數) )模式再入模式再入interrupt ninterrupt nusing musing m 其中必選項其中必選項 interrupt ninterrupt n表示將函數聲明為中斷服務函數,表示將函數聲明為中斷服務函數,n n為中斷源為中斷源編號,可以是編號,可以是0 03131間的整數間的整數 ,不允許是帶運算符的

34、表達式,不允許是帶運算符的表達式,n n通常取以通常取以下值:下值:0 0 外部中斷外部中斷0 0;1 1 定時器定時器/ /計數器計數器0 0溢出中斷溢出中斷2 2 外部中斷外部中斷1 1;3 3 定時器定時器/ /計數器計數器1 1溢出中斷溢出中斷4 4 串行口發(fā)送與接收中斷串行口發(fā)送與接收中斷5 5 定時器定時器/ /計數器計數器2 2中斷中斷 各可選項的意義如下:各可選項的意義如下:using musing m 定義函數使用的工作寄存器組,定義函數使用的工作寄存器組,m m的取值范圍為的取值范圍為0 03 3,可缺,可缺省。它對目標代碼的影響是:函數入口處將當前寄存器保存,使用省。它對

35、目標代碼的影響是:函數入口處將當前寄存器保存,使用 m m 指定的寄存器組,函數退出時指定的寄存器組,函數退出時 原寄存器組恢復。選不同的工作原寄存器組恢復。選不同的工作寄存器組,可方便實現(xiàn)寄存器組的現(xiàn)場保護。寄存器組,可方便實現(xiàn)寄存器組的現(xiàn)場保護。再入再入屬性關鍵字屬性關鍵字reentrantreentrant將函數定義為再入的,在將函數定義為再入的,在C51C51中,普通中,普通函數函數( (非再入的非再入的) )不能遞歸調用,不能遞歸調用, 只有再入函數才可被遞歸調用。只有再入函數才可被遞歸調用。中斷服務函數不允許用于外部函數,它對目標代碼影響如下:中斷服務函數不允許用于外部函數,它對目

36、標代碼影響如下:當調用函數時,當調用函數時,SFRSFR中的中的ACCACC、B B、DPHDPH、DPLDPL和和PSWPSW當需要時入棧。當需要時入棧。如果不使用寄存器組切換,中斷函數所需的所有工作寄存器如果不使用寄存器組切換,中斷函數所需的所有工作寄存器RnRn都入都入棧。棧。函數退出前,所有工作寄存器都出棧。函數退出前,所有工作寄存器都出棧。函數由函數由“RETIRETI”指令終止。指令終止。下面示例說明下面示例說明C C語言的編程方法。語言的編程方法。 例例 要求每中斷一次,發(fā)光二極管顯示開關狀態(tài)要求每中斷一次,發(fā)光二極管顯示開關狀態(tài) 用用C C語言編程語言編程 #include#i

37、nclude int0() interrupt 0 / int0() interrupt 0 /* *INT0INT0中斷函數中斷函數* */ / P1=0 x0f; /P1=0 x0f; /* *輸入端先置輸入端先置1 1,燈滅,燈滅* */ / P1=4; / P1=4; /* * 讀入開關狀態(tài),并左移四位,讀入開關狀態(tài),并左移四位, 使開關反映在發(fā)光二極管上使開關反映在發(fā)光二極管上* */ / main()main() EA=1; /EA=1; /* *開中斷總開關開中斷總開關* */ /EX0=1; /EX0=1; /* *允許允許INT0INT0中斷中斷* */ / IT0=1; /

38、IT0=1; /* *下降沿產生中斷下降沿產生中斷* */ /while(1); /while(1); /* *等待中斷等待中斷* */ / &+5V+5VP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51EA&INT011111K 41K 2300 4圖6. 每個中斷源有固定的中斷服務程序的入口地址每個中斷源有固定的中斷服務程序的入口地址(稱矢量地址或向量地址稱矢量地址或向量地址)。當。當CPU響應中斷以響應中斷以 后單后單片機內部硬件保證它能自動的跳轉到該地址。片機內部硬件保證它能自動的跳轉到該地址。因此,因此,此地址是應該熟記的此地址是應該熟記的,在匯編程序,在匯

39、編程序 中,中斷服務程中,中斷服務程序應存放在正確的向量地址內。序應存放在正確的向量地址內。 (或存放一條轉移指令或存放一條轉移指令);而在;而在C語言中是靠語言中是靠Interrupt n的關鍵字的關鍵字n自動設置的。自動設置的。 小小 結結(1)中斷技術是實時控制中的常用技術,)中斷技術是實時控制中的常用技術,51系列單片機有三系列單片機有三個內部中斷,二個外部中斷。所謂個內部中斷,二個外部中斷。所謂 外部中斷就是在外部引腳外部中斷就是在外部引腳上有產生中斷所需要的信號。上有產生中斷所需要的信號。(2)單片機的中斷是靠內部的寄存器管理的單片機的中斷是靠內部的寄存器管理的,這就,這就是是中斷

40、允許寄存器中斷允許寄存器IE,中斷優(yōu)先權寄存器,中斷優(yōu)先權寄存器IP ,必,必須在須在CPU開中斷即開全局中斷開關開中斷即開全局中斷開關EA,開各中斷,開各中斷源的中斷開關源的中斷開關,CPU才能響應該中斷源的才能響應該中斷源的 中斷請中斷請求,其中缺一不可。求,其中缺一不可。 (3)從程序表面看來,主程序和中斷服務程序好象)從程序表面看來,主程序和中斷服務程序好象是沒有關連的,只有掌握中斷響應的過程,是沒有關連的,只有掌握中斷響應的過程, 才能才能理解中斷的發(fā)生和返回,看得懂中斷程序,并能編理解中斷的發(fā)生和返回,看得懂中斷程序,并能編寫高質量中斷程序。寫高質量中斷程序。 (4)本章重點應掌握

41、中斷的基本概念,并能熟練編)本章重點應掌握中斷的基本概念,并能熟練編制中斷程序。制中斷程序。1、在中斷服務程序中,至少應有一條( )。A、 傳送指令 B、 轉移指令 C、 加法指令 D、 中斷返回指令2、要使MCS-51能夠響應定時器T1中斷,串行接口中斷,它的中斷允許寄存器IE的內容應是( )。 A、 98H B、 84H C、 42H D、 22H3、MCS-51中斷源有( ) A、 5個 B、 2個 C、 3個 D、 6個4、計算機在使用中斷方式與外界交換信息時,保護現(xiàn)場的工作應該是( ) A、 由CPU自動完成 B、 在中斷響應中完成 C、 應由中斷服務程序完成 D、 在主程序中完成5

42、、MCS-51的中斷允許觸發(fā)器內容為83H,CPU將響應的中斷請求是( )。 A、 INT0,INT1 B、 T0,T1 C、 T1,串行接口 D、 INT0,T0課堂練習6、若MCS-51中斷源都編程為同級,當它們同時申請中斷時,CPU首先響應( )。 A、 INT1 B、 INT0 C、 T1 D、 T07、當CPU響應串行接口中斷時,程序應轉到( )。 A、 0003H B、 0013H C、 0023H D、 0033H8、執(zhí)行MOV IE,#03H后,MCS-51將響應的中斷是( )。 A、 1個 B、 2個 C、 3個 D、 0個9、外部中斷1固定對應的中斷入口地址為( )。 A、 0003H B、 000BH C、 0013H D、 001BH10、MCS-51單片機可分為兩個中斷優(yōu)先

溫馨提示

  • 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

提交評論