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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

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

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

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

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

5、備、故障、時鐘、調(diào)試中人為設(shè)置故障、時鐘、調(diào)試中人為設(shè)置。中斷系統(tǒng)的基本結(jié)構(gòu) 中斷優(yōu)先級中斷優(yōu)先級 當有多個中斷源同時當有多個中斷源同時 向向CPU申請中斷時,申請中斷時,CPU優(yōu)優(yōu)先響應(yīng)最需緊急處理的中斷請求,處理完畢再響應(yīng)先響應(yīng)最需緊急處理的中斷請求,處理完畢再響應(yīng)優(yōu)先級別較低的優(yōu)先級別較低的 ,這種,這種預(yù)先安排的響應(yīng)次序預(yù)先安排的響應(yīng)次序。 中斷的嵌套中斷的嵌套 在中斷系統(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串行口串行口外設(shè)外設(shè)外設(shè)外設(shè)0INT10IE0IE1TF0TF1定時器定時器0TCONRITISCONEX0EX1ET0ET1ESIEEAPX001PX101PT001PT101PS01IP0003H000BH0013H001BH0023H0003H000BH0013H001BH0023HPC高高低低中斷源中斷源中斷系統(tǒng)結(jié)構(gòu)圖MCS-51中斷源中斷源 MCS51單片機有單片機有5個中斷源。個中斷源。5個中斷源分為個中斷源分為2種:種:2個外中斷(由個外中斷(由P

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

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

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

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

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

12、斷時由硬件清響應(yīng)該中斷時由硬件清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ā)時,輸入到的外部中斷源必須保持低電平有效,直到該中直到該中斷被響應(yīng)。同時在中斷返回前必須使電平變高,否則將會再次產(chǎn)生中斷。斷被響應(yīng)。同時在中斷返回前必須使電平變高,否則將會再次產(chǎn)生中斷。 IE0 外中斷外中斷0中斷請求標志。如果中斷請求標志。如果IT0置置1,則當上的電平由,則當上的電平由1變變0時,時,IE0由硬件置位。由硬件置位。在在CPU把控制轉(zhuǎn)到中斷服務(wù)程序時由硬件使把控制轉(zhuǎn)到中斷服務(wù)程序時由硬件使IE0復(fù)位。復(fù)位。 IT0 外部中斷源外部中斷源0觸發(fā)方式控制位。其含義同觸發(fā)方式控制位。其含義同IT1。TF

14、1TF0IE1IT1IE0IT0TCON2 2、在每條指令結(jié)束時,在每條指令結(jié)束時,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 串行口接收中斷標志。在串行口接收一個字符后,由內(nèi)部硬件使接收中斷請求標志位RI置位,表示串行口接收器正向CPU請求中斷。注意,當CPU轉(zhuǎn)入串行口中斷服務(wù)程序入口時不復(fù)位RI,必須由用戶用軟件來使RI清0。 TI 串行口發(fā)送中斷標志。當串行口發(fā)送完一個字符后,由內(nèi)部硬件使發(fā)送中斷標志TI置位,表示串行口正在向CPU請求中斷。當CPU響應(yīng)中斷,轉(zhuǎn)向串行口中斷服務(wù)時,也不能硬件自動清零,必須由軟件來復(fù)位。TI RI 二)二)中斷開放與中斷允許控制寄存器中斷開

17、放與中斷允許控制寄存器 IE MCS-51單片機的5個中斷源,用戶都可以通過軟件方法來控制是否允許用戶都可以通過軟件方法來控制是否允許CPUCPU去去響應(yīng)中斷響應(yīng)中斷。CPU對中斷源的中斷允許或中斷禁止的控制是通過中斷允許控制寄存中斷允許控制寄存器器IE來實現(xiàn)的。 IEIE:A8H A8H 可以按字節(jié)操作,也可以按位操作??梢园醋止?jié)操作,也可以按位操作。 EA: 當EA=0時, 稱CPU關(guān)中斷。當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復(fù)位后復(fù)位后IE=00H,說明,說明CPU和各個中斷源都關(guān)中斷。和各個中斷源都關(guān)中斷。注意:注意:,因此,如果在轉(zhuǎn)入中斷服務(wù)處理程,因此,如果在轉(zhuǎn)入中斷服務(wù)處理程序后,如果想禁止更高級的中斷源的中斷申請,可以序后,如果想禁止更高級的中斷源的中斷申請,可以用軟件方式關(guān)閉中斷用軟件方式關(guān)閉

19、中斷。例如:例如:假定要開放外中斷假定要開放外中斷1 1和和T1T1的溢出中斷,屏蔽其他中斷,則對應(yīng)的中斷允許的溢出中斷,屏蔽其他中斷,則對應(yīng)的中斷允許控制寄存器內(nèi)容應(yīng)為控制寄存器內(nèi)容應(yīng)為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設(shè)定。 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 復(fù)位后復(fù)位后IP=00HIP=00H,說明,說明各個中斷源都處于低級。各個中斷源都處于低級。注意:注意:1 1、當五個中斷源在同一個優(yōu)先級的情況下INT0優(yōu)先權(quán)最高,串行口優(yōu)先權(quán)最低。在同一個優(yōu)先級中,對五個中斷源的優(yōu)先次序安排如下: INT0T0INT1T1 INT0T0INT1T1串口串口 (中斷優(yōu)先級從高到低)(中斷優(yōu)先級從高到低)2、對于外中斷來說,可以用軟件查詢法軟件查詢法和硬件排隊電路法硬件排隊電

22、路法確定優(yōu)先級。3、通過對IP寄存器的編程,可以把五個中斷源分別定義在兩個優(yōu)先級中,軟件可以隨時對IP的各位清0或置1。例如例如 某軟件中對寄存器IE、IP設(shè)置如下:MOV IE,10001111B MOV IP,00000110B 此時該系統(tǒng)中:CPU中斷允許;允許外部中斷0、外部中斷1、定時/計數(shù)器0、定時/計數(shù)器1發(fā)出的中斷申請。允許中斷源的中斷優(yōu)先次序為:定時/計數(shù)器0外部中斷1外部中斷0定時/計數(shù)器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單片機單片機內(nèi)部的中斷檢測電路內(nèi)部的中斷檢測電路檢測各個中斷源檢測各個中斷源,檢測到有中斷,檢測到有中斷申申請后,將相應(yīng)的請后,將相應(yīng)的中斷標志位置中斷標志位置1。 CPU在在時,檢測各個中斷標志位,若中斷標志位置時,檢測各個中斷標志位,若中斷標志位置1,則認,則認為有中斷請求。為有中斷請求。 CPU讀取讀

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

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

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

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

28、始化 MCS-51中斷系統(tǒng)功能,是可以通過上述特殊功能寄存器統(tǒng)一管理的,中斷系統(tǒng)初始化是指用戶對這些特殊功能寄存器中的各控制位進行賦值。中斷系統(tǒng)初始化中斷系統(tǒng)初始化中斷系統(tǒng)初始化步驟如下: 開相應(yīng)中斷源的中斷; 設(shè)定所用中斷源的中斷優(yōu)先級; 若為外部中斷,則應(yīng)規(guī)定低電平還是負邊沿的中斷觸發(fā)方式。MCS-51中斷系統(tǒng)的應(yīng)用中斷系統(tǒng)的應(yī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)先級,試寫出有關(guān)的初始化程序。 解:一般可采用位操作指令來實現(xiàn): SETB EA ;開中斷 SETB EX0 ;允許外中斷0中斷 SETB PX0 ;外中斷0定為高優(yōu)先級CLR IT0 ;電平觸發(fā)中斷系統(tǒng)初始化中斷系統(tǒng)初始化外部中斷設(shè)定的步驟外部中斷設(shè)定的步驟: 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(設(shè)定 為電平觸發(fā)) MOV TCON,#00000001B(設(shè)定 為負邊沿觸發(fā)) MOV TCON,#00000000B(設(shè)定 為電平觸發(fā)) MOV TCON,#00000100B(設(shè)定 為負邊沿觸發(fā))0INT0INT0INT0INT0INT 1INT 1INT 1INT 1INT 1INT 中斷系統(tǒng)初始化中斷系統(tǒng)初始化TIMER0或或TIMER1的中斷請求的中斷請求 當計數(shù)溢出時會設(shè)定TFX=1,而對8051提出中斷請求。TIMER0或TIMER1中斷請求設(shè)定的步驟如下: 定中斷起始地址 ORG

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論