




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5章單片機(jī)中斷系統(tǒng)本章主要內(nèi)容
5.1中斷概述
5.2中斷系統(tǒng)結(jié)構(gòu)及控制
5.3中斷響應(yīng)及處理過程
5.4中斷應(yīng)用舉例§5.1.2中斷的概念1、中斷2、中斷源3、中斷請求4、中斷響應(yīng)5、其它概念
示例1主程序響應(yīng)中斷請求中斷服務(wù)程序返回主程序繼續(xù)執(zhí)行主程序斷點(diǎn)§5.2中斷系統(tǒng)的結(jié)構(gòu)及控制主要內(nèi)容:§5.2.1MCS-51的中斷結(jié)構(gòu)§5.2.2MCS-51的中斷源§5.2.1MCS-51中斷結(jié)構(gòu)IE0PX0EAEX0110ET0EX1ET1ESIT0=0IT0=1TF0IE11IT1=0IT1=1TF1TIRIT0T1INT1TXRXTCONIEIP各中斷源允許優(yōu)先級INT0+PT010PX110PT110PS10PT210ET2+TF2EXF2T2T2EX總允許中斷矢量地址中斷矢量地址硬件查詢PCPC自然優(yōu)先級自然優(yōu)先級高級中斷請求低級中斷請求圖5-289C52單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)§5.2.2MCS-51的中斷源
MCS-51中斷系統(tǒng)主要是對5個(gè)中斷源進(jìn)行管理,增強(qiáng)型單片機(jī)(如89C52)是6個(gè)中斷源,依次為:外部中斷0(P3.2);外部中斷1(P3.3);定時(shí)器/計(jì)數(shù)器0;定時(shí)器/計(jì)數(shù)器1;串行口中斷;定時(shí)器/計(jì)數(shù)器2;
CPU主要是通過以下幾個(gè)特殊功能寄存器對中斷源進(jìn)行管理。1.寄存器TCONTF1TF0IE1IT1IE0IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88H§5.2.2MCS-51的中斷源功能:鎖存定時(shí)器T0、T1和外部中斷0、1的中斷標(biāo)志,并控制定時(shí)器T0和T1的啟動(dòng)和停止等。與中斷有關(guān)位如下圖所示:寄存器TCON中的中斷標(biāo)志TF1TF0IE1IT1IE0IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88H§5.2.2MCS-51的中斷源定時(shí)器/計(jì)數(shù)器T1溢出中斷請求標(biāo)志位當(dāng)啟動(dòng)T1計(jì)數(shù)后,T1從初值開始加1計(jì)數(shù),計(jì)數(shù)器最高位產(chǎn)生溢出時(shí),由硬件使TF1置1,并向CPU發(fā)出中斷請求。當(dāng)CPU響應(yīng)中斷時(shí),硬件將自動(dòng)對TF1清0。寄存器TCON中的中斷標(biāo)志TF1TF0IE1IT1IE0IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88H§5.2.2MCS-51的中斷源定時(shí)器/計(jì)數(shù)器T0溢出中斷請求標(biāo)志位當(dāng)啟動(dòng)T0計(jì)數(shù)后,T0從初值開始加1計(jì)數(shù),計(jì)數(shù)器最高位產(chǎn)生溢出時(shí),由硬件使TF0置1,并向CPU發(fā)出中斷請求。當(dāng)CPU響應(yīng)中斷時(shí),硬件將自動(dòng)對TF0清0。寄存器TCON中的中斷標(biāo)志TF1TF0IE1IT1IE0IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88H§5.2.2MCS-51的中斷源外部中斷1(P3.3)的中斷請求標(biāo)志位當(dāng)檢測到外部中斷引腳1上存在有效的中斷請求信號時(shí),由硬件使IE1置1。當(dāng)CPU響應(yīng)中斷請求時(shí),由硬件使IE1清0。寄存器TCON中的中斷標(biāo)志TF1TF0IE1IT1IE0IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88H§5.2.2MCS-51的中斷源外部中斷1的中斷觸發(fā)方式控制位IT1=0時(shí),外部中斷1為電平觸發(fā)方式。
CPU在每一個(gè)機(jī)器周期S5P2期間采樣外部中斷請求引腳的輸入電平。若外部中斷1請求為低電平,則使IE1置1;若為高電平,則使IE1清0。寄存器TCON中的中斷標(biāo)志TF1TF0IE1IT1IE0IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88H§5.2.2MCS-51的中斷源外部中斷1的中斷觸發(fā)方式控制位注意:在電平觸發(fā)方式中,系統(tǒng)在中斷返回前必須撤銷INT1引腳上的低電平,否則將再次中斷造成出錯(cuò)。
寄存器TCON中的中斷標(biāo)志TF1TF0IE1IT1IE0IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88H§5.2.2MCS-51的中斷源外部中斷1的中斷觸發(fā)方式控制位IT1=1時(shí),外部中斷1為邊沿觸發(fā)方式。在相繼的兩個(gè)機(jī)器周期中,CPU在前一個(gè)周期采樣到外部中斷1引腳為高電平,下一個(gè)周期采樣到為低電平(下降沿),則使IE1置1。直到CPU響應(yīng)該中斷時(shí)由硬件清0。寄存器TCON中的中斷標(biāo)志TF1TF0IE1IT1IE0IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88H§5.2.2MCS-51的中斷源外部中斷1的中斷觸發(fā)方式控制位注意:為保證CPU在兩個(gè)機(jī)器周期內(nèi)檢測到“負(fù)跳變”,輸入高、低電平的持續(xù)時(shí)間起碼要保持12個(gè)時(shí)鐘周期。
寄存器TCON中的中斷標(biāo)志TF1TF0IE1IT1IE0IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88H§5.2.2MCS-51的中斷源外部中斷0(P3.2)的中斷請求標(biāo)志位當(dāng)檢測到外部中斷引腳0上存在有效的中斷請求信號時(shí),由硬件使IE0置1。當(dāng)CPU響應(yīng)中斷請求時(shí),由硬件使IE0清0。寄存器TCON中的中斷標(biāo)志TF1TF0IE1IT1IE0IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88H§5.2.2MCS-51的中斷源外部中斷0的中斷觸發(fā)方式控制位2.寄存器SCONTIRI
SCON(98H)99H98H§5.2.2MCS-51的中斷源功能:SCON為串行口控制寄存器,其低2位鎖存串行口的接收中斷和發(fā)送中斷標(biāo)志RI和TI。SCON中TI和RI的格式如下圖所示:寄存器SCON中的中斷標(biāo)志TIRI
SCON(98H)99H98H§5.2.2MCS-51的中斷源串行口發(fā)送中斷請求標(biāo)志位
CPU將一個(gè)數(shù)據(jù)寫入發(fā)送緩沖器SBUF時(shí),就啟動(dòng)發(fā)送。每發(fā)送完一幀串行數(shù)據(jù)后,硬件置位TI。但CPU響應(yīng)中斷時(shí),并不清除TI,必須在中斷服務(wù)程序中由軟件對TI清0。寄存器SCON中的中斷標(biāo)志TIRI
SCON(98H)99H98H§5.2.2MCS-51的中斷源串行口接收中斷請求標(biāo)志位在串行口允許接收時(shí),每接收完一個(gè)串行幀,硬件置位RI。CPU響應(yīng)中斷時(shí)不會清除RI,必須在中斷服務(wù)程序中由軟件對RI清0。3.中斷允許寄存器IEEAET2ESET1EX1ET0EX0
IE(A8H)AFHAEHADHACHABHAAHA9HA8H§5.2.2MCS-51的中斷源功能:控制各個(gè)中斷源的允許和屏蔽,能夠位尋址,單片機(jī)復(fù)位時(shí)其值為00H。EAET2ESET1EX1ET0EX0
IE(A8H)AFHAEHADHACHABHAAHA9HA8H中斷允許總控制位EA=0,屏蔽所有的中斷請求;EA=1,開放CPU中斷。
對各中斷源的中斷請求是否允許,還要取決于各中斷源的中斷允許控制位的狀態(tài)。這就是所謂的兩級控制。EAET2ESET1EX1ET0EX0
IE(A8H)AFHAEHADHACHABHAAHA9HA8H串行口定時(shí)器1定時(shí)器0外部中斷1外部中斷0控制位為1:允許中斷; 為0:禁止中斷。定時(shí)器2例5-1
假設(shè)允許INT0、INT1、T0、T1中斷,試設(shè)置IE的值?!?.2.2MCS-51的中斷源10001111
IE(A8H)AFHAEHADHACHABHAAHA9HA8H解一:(1)用C語言字節(jié)操作指令:
IE=0x8F; (2)用C語言位操作指令
EX0=1; //允許外部中斷0中斷
ET0=1; //允許定時(shí)/計(jì)數(shù)器0中斷
EX1=1; //允許外部中斷1中斷
ET1=1; //允許定時(shí)/計(jì)數(shù)器1中斷
EA=1; //開總中斷控制§5.2.2MCS-51的中斷源
表5-1中斷優(yōu)先級的排列順序
中斷源優(yōu)先級順序外部中斷0定時(shí)器/計(jì)數(shù)器0外部中斷1定時(shí)器/計(jì)數(shù)器1串行口中斷定時(shí)器/計(jì)數(shù)器2最高最低4.中斷優(yōu)先級控制寄存器IP§5.2.2MCS-51的中斷源功能:設(shè)置各個(gè)中斷源的優(yōu)先級,能夠位尋址,單片機(jī)復(fù)位時(shí)其值為00H。PT2PSPT1PX1PT0PX0
IP(B8H)BFHBEHBDHBCHBBHBAHB9HB8HPT2PSPT1PX1PT0PX0
IP(B8H)BFHBEHBDHBCHBBHBAHB9HB8H若某控制位為1,則相應(yīng)的中斷源規(guī)定為高級中斷;反之,為0,則相應(yīng)的中斷源規(guī)定為低級中斷。外部中斷0外部中斷1定時(shí)器0定時(shí)器1串行口定時(shí)器2例5-2
設(shè)定時(shí)器和串行口中斷為高優(yōu)先級,兩個(gè)外部中斷為低優(yōu)先級,試設(shè)置IP的值。解:C語言程序:IP=0x3a; 匯編語言程序:MOVIP,#3AH00PT21PS1PT11PX10PT01PX00
IP(B8H)BFHBEHBDHBCHBBHBAHB9HB8H5.CPU處理中斷的兩種情況:§5.2.2MCS-51的中斷源(1)CPU同時(shí)接到多個(gè)中斷源的中斷請求。此時(shí)根據(jù)優(yōu)先級的硬件排隊(duì)來決定響應(yīng)對象。高優(yōu)先級的先響應(yīng),低優(yōu)先級的后響應(yīng)。一般要進(jìn)行兩次查詢?!?.2.2MCS-51的中斷源(2)當(dāng)CPU正在處理一個(gè)中斷請求時(shí),又出現(xiàn)了另一個(gè)優(yōu)先級比它高的中斷。
此時(shí),CPU就暫時(shí)中止執(zhí)行對原來優(yōu)先級較低的中斷源的服務(wù)程序,保護(hù)當(dāng)前斷點(diǎn),轉(zhuǎn)去處理更高的中斷請求。服務(wù)完畢,回到原來被中止的中斷程序繼續(xù)執(zhí)行。該過程稱為中斷嵌套。圖5-7二級中斷嵌套處理過程示例2§5.3中斷響應(yīng)及處理過程 從中斷請求發(fā)生到被響應(yīng)去執(zhí)行中斷服務(wù)程序,整個(gè)過程一般可以分為3個(gè)階段:中斷響應(yīng)、中斷處理、中斷返回?!?.3.1中斷響應(yīng)(1)中斷源有中斷請求;(2)中斷總允許位EA=1;(3)發(fā)出中斷請求的中斷源的中斷允許控制位為1。在滿足以上條件的基礎(chǔ)上,若有下列任何一種情況存在,中斷響應(yīng)都會受到阻斷。1.中斷響應(yīng)的條件中斷響應(yīng)的三個(gè)必要條件§5.3.1中斷響應(yīng)(1)CPU正在執(zhí)行一個(gè)同級或高優(yōu)先級的中斷服務(wù)程序。(2)正在執(zhí)行的指令尚未執(zhí)行完。(3)正在執(zhí)行中斷返回指令RETI或者對寄存器IE、IP進(jìn)行讀/寫的指令。條件全部滿足,則中斷系統(tǒng)由硬件直接產(chǎn)生一個(gè)固定的地址,即中斷服務(wù)程序的入口地址。CPU立即轉(zhuǎn)向?qū)?yīng)的中斷入口地址去執(zhí)行中斷服務(wù)程序?!?.3.1中斷響應(yīng)中斷源中斷矢量地址外部中斷00003H定時(shí)器/計(jì)數(shù)器0000BH外部中斷10013H定時(shí)器/計(jì)數(shù)器1001BH串行口0023H定時(shí)器/計(jì)數(shù)器2002BH表5-2中斷源及其對應(yīng)的中斷入口地址§5.3.2中斷處理和中斷返回自己看書§5.4中斷應(yīng)用舉例主要內(nèi)容1中斷程序的安排2中斷的初始化過程3中斷服務(wù)程序的設(shè)計(jì)§5.4中斷應(yīng)用舉例1.中斷程序的安排每個(gè)中斷服務(wù)子程序在固定的位置由系統(tǒng)分配相鄰的8個(gè)單元用于存儲程序(見中斷矢量表)。如果程序空間不夠,可參照主程序的方法進(jìn)行設(shè)置。
ORG0000H
LJMPMAIN ORG0003H
LJMPINT_0 …… …… ORG0030HMAIN:……
……INT_0:…… …… RETI§5.4中斷應(yīng)用舉例1.中斷程序的安排2)中斷服務(wù)子程序如果用C語言編寫程序,就不存在中斷入口和跳轉(zhuǎn)的問題,main()函數(shù)起到引導(dǎo)程序的作用,對于中斷處理程序,只要按照格式編寫中斷處理函數(shù)即可。如右圖所示。void main(void){ …… ……}void int0_int(void)interrupt0{ …… ……}§5.4中斷應(yīng)用舉例2.中斷系統(tǒng)的初始化步驟
89C51單片機(jī)中,共有5個(gè)中斷源,中斷的初始化主要是對特殊功能寄存器TCON、SCON、IE和IP進(jìn)行設(shè)置。初始化要在主程序中完成,包含以下5個(gè)方面:(1)中斷服務(wù)程序入口地址的設(shè)定。(2)對某一中斷源中斷請求的允許與禁止,設(shè)置IE。(3)對于外部中斷請求進(jìn)行觸發(fā)方式的設(shè)定,設(shè)置TCON。(4)對各中斷源優(yōu)先級別的設(shè)定,設(shè)置IP。(5)最后設(shè)定CPU總的中斷開關(guān),設(shè)置IE中EA位。§5.4中斷應(yīng)用舉例3.中斷服務(wù)程序設(shè)計(jì)中的問題
(1)保護(hù)現(xiàn)場將中斷服務(wù)子程序要用到的寄存器里原有的內(nèi)容壓入堆棧,這部分指令要放在中斷服務(wù)程序的前面?!?.4中斷應(yīng)用舉例3.中斷服務(wù)程序設(shè)計(jì)中的問題(2)關(guān)中斷和開中斷
MCS-51允許中斷嵌套,為了不至于在保護(hù)現(xiàn)場或恢復(fù)現(xiàn)場時(shí),由于CPU響應(yīng)其它中斷請求,而使現(xiàn)場破壞,一般在保護(hù)和恢復(fù)現(xiàn)場時(shí),CPU不響應(yīng)外界的中斷請求。因此,在編寫程序時(shí),應(yīng)在保護(hù)現(xiàn)場之前,關(guān)閉CPU中斷;在恢復(fù)現(xiàn)場之后,再根據(jù)需要使CPU開中斷。§5.4中斷應(yīng)用舉例3.中斷服務(wù)程序設(shè)計(jì)中的問題(3)中斷請求的撤除
CPU響應(yīng)某中斷請求后,在中斷返回前,應(yīng)該撤消該中斷請求。中斷請求撤除方法如下:
定時(shí)器溢出中斷請求的撤除:允許中斷的情況下,CPU在響應(yīng)中斷后,硬件會自動(dòng)清除中斷請求標(biāo)志TF0或TF1。
串行口中斷的撤除:串行口中斷請求標(biāo)志位TI和RI,必須軟件復(fù)位?!?.4中斷應(yīng)用舉例(3)中斷請求的撤除
外部中斷的撤除:CPU響應(yīng)中斷后,硬件會自動(dòng)清除中斷請求標(biāo)志IE0或IE1。外部中斷為電平觸發(fā)方式時(shí),如果外部中斷請求信號并未撤除,中斷請求標(biāo)志IE0或IE1會再次被置1,所以在CPU響應(yīng)中斷后應(yīng)立即撤除或引腳上的低電平。一般采用加一個(gè)D觸發(fā)器和幾條指令的方法來解決這個(gè)問題。外部中斷為邊沿觸發(fā)方式時(shí)無此問題。3.中斷服務(wù)程序設(shè)計(jì)中的問題例5-3
如圖5-9所示,將P1口的P1.4~P1.7作為輸入位,P1.0~P1.3作為輸出位。要求利用89C52將開關(guān)所設(shè)的數(shù)據(jù)讀入單片機(jī)內(nèi),并依次通過P1.0~P1.3輸出,驅(qū)動(dòng)發(fā)光二極管,以檢查P1.4~P1.7輸入的電平情況(若輸入為低電平則相應(yīng)的LED亮)。要求采用中斷邊沿觸發(fā)方式,中斷一次,完成一次讀/寫操作。圖5-9外部中斷0電路§5.4中斷應(yīng)用舉例分析:圖中,用外部中斷0,中斷申請從INT0輸入,并采用去抖動(dòng)電路。當(dāng)開關(guān)S1來回?fù)軇?dòng)一次時(shí),將產(chǎn)生一個(gè)下降沿信號。發(fā)出中斷請求。當(dāng)P1.0~P1.3的任何一位輸出為0時(shí),相應(yīng)的發(fā)光二極管就會發(fā)光。§5.4中斷應(yīng)用舉例一、匯編源程序: ORG 0000H SJMP MAIN ;上電,轉(zhuǎn)向主程序
ORG 0003H ;外部中斷0入口地址
SJMP INSER ;轉(zhuǎn)向中斷服務(wù)程序 ORG 0030H ;主程序MAIN: SETB EX0 ;允許外部中斷0中斷 SETB IT0 ;選擇邊沿觸發(fā)方式 SETB EA ;CPU開中斷HERE: SJMP HERE ;等待中斷 ORG 0200H ;中斷服務(wù)程序INSER:
MOVP1,#0F0H
;設(shè)P1.4~P1.7為輸入 MOVA,P1 ;取開關(guān)數(shù) SWAPA ;A的高、低四位互換 MOVP1,A ;輸出驅(qū)動(dòng)LED發(fā)光 RETI ;中斷返回 END初始化一、匯編源程序: ORG 0000H SJMP MAIN ;上電,轉(zhuǎn)向主程序
ORG 0003H ;外部中斷0入口地址
SJMP INSER
;轉(zhuǎn)向中斷服務(wù)程序 ORG 0030H ;主程序MAIN: SETB EX0 ;允許外部中斷0中斷 SETB IT0 ;選擇邊沿觸發(fā)方式 SETB EA ;CPU開中斷HERE: SJMP HERE ;等待中斷 ORG 0200H ;中斷服務(wù)程序INSER: MOVA,#0F0H MOVP1,A ;設(shè)P1.4~P1.7為輸入 MOVA,P1 ;取開關(guān)數(shù) SWAPA ;A的高、低四位互換 MOVP1,A ;輸出驅(qū)動(dòng)LED發(fā)光 RETI ;中斷返回 END初始化錯(cuò)誤!超出了跳轉(zhuǎn)范圍,應(yīng)改用LJMP指令C語言源程序:#include<reg52.h>voidmain(){ EX0=1; //允許外部中斷0中斷
IT0=1; //選邊沿觸發(fā)方式
EA=1; //CPU開中斷
while(1); //等待中斷
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理服務(wù)態(tài)度的改善方法
- 江蘇省啟東市長江中學(xué)2025屆高三下學(xué)期聯(lián)考化學(xué)試題含解析
- 四川省樂山市峨眉山市第二中學(xué)2025屆高考化學(xué)押題試卷含解析
- 2025屆內(nèi)蒙古自治區(qū)烏海市烏達(dá)區(qū)高三第三次測評化學(xué)試卷含解析
- 湖南省邵陽市邵東第十中學(xué)2025屆高考化學(xué)全真模擬密押卷含解析
- 遼寧省沈陽名校2025屆高考壓軸卷化學(xué)試卷含解析
- 2025年熱壓硫化鋅(ZNS)晶體項(xiàng)目發(fā)展計(jì)劃
- 2025屆河南省平頂山市郟縣一中高三第一次調(diào)研測試化學(xué)試卷含解析
- TIA的護(hù)理常規(guī)和健康教育
- 2025年船舶配套業(yè)項(xiàng)目建議書
- T-CERS 0007-2020 110 kV及以下變電站 并聯(lián)型直流電源系統(tǒng)技術(shù)規(guī)范
- CJT 210-2005 無規(guī)共聚聚丙烯(PP-R)塑鋁穩(wěn)態(tài)復(fù)合管
- 政治論文格式模板范文1000字
- 貴州省貴陽市2023-2024學(xué)年六年級下學(xué)期6月期末科學(xué)素養(yǎng)試題
- 最簡單工程合作協(xié)議書范本
- 輸液反應(yīng)的應(yīng)急預(yù)案及處理流程課件
- 牽手混聲合唱譜
- GB/T 26378-2024粗梳毛織品
- 《做一個(gè)生態(tài)瓶》導(dǎo)學(xué)案
- 為女性權(quán)益而戰(zhàn)
- 2024年晉城職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
評論
0/150
提交評論