版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第七章中斷系統(tǒng)主要內(nèi)容:7.1中斷概述7.2中斷源和中斷控制寄存器7.3中斷處理過程7.4中斷系統(tǒng)的應(yīng)用1.什么叫中斷CPU暫時(shí)中止其正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行請(qǐng)求中斷的那個(gè)外設(shè)或事件的服務(wù)程序,等處理完畢后再返回執(zhí)行原來中止的程序,叫做中斷。一、什么叫中斷?2.中斷與調(diào)用子程序,不同的是:①子程序嵌套是在程序中事先按排好的;中斷嵌套是隨機(jī)發(fā)生的。②子程序嵌套無次序限制,中斷嵌套只允許高優(yōu)先級(jí)“中斷”低優(yōu)先級(jí)。二、為什么要設(shè)置中斷?
⑴提高CPU工作效率⑵具有實(shí)時(shí)處理功能⑶具有故障處理功能⑷實(shí)現(xiàn)分時(shí)操作中斷功能強(qiáng)弱是計(jì)算機(jī)性能優(yōu)劣的重要標(biāo)志①中斷源②中斷申請(qǐng)③開放中斷④保護(hù)現(xiàn)場⑤中斷服務(wù)⑥恢復(fù)現(xiàn)場⑦中斷返回三、中斷涉及的幾個(gè)環(huán)節(jié)
CPU在每個(gè)機(jī)器周期的S5P2期間,會(huì)自動(dòng)查詢各個(gè)中斷申請(qǐng)標(biāo)志位,若查到某標(biāo)志位被置位,將啟動(dòng)中斷機(jī)制。四、CPU識(shí)別中斷申請(qǐng)的依據(jù):一、中斷源
中斷源是指能發(fā)出中斷請(qǐng)求,引起中斷的裝置或事件。80C51單片機(jī)的中斷源共有5個(gè),其中2個(gè)為外部中斷源,3個(gè)為內(nèi)部中斷源:⑴ INT0:外部中斷0,中斷請(qǐng)求信號(hào)由P3.2輸入。⑵ INT1:外部中斷1,中斷請(qǐng)求信號(hào)由P3.3輸入。⑶T0:定時(shí)/計(jì)數(shù)器0溢出中斷,對(duì)外部脈沖計(jì)數(shù)由P3.4輸入。⑷T1:定時(shí)/計(jì)數(shù)器1溢出中斷,對(duì)外部脈沖計(jì)數(shù)由P3.5輸入。⑸串行中斷:包括串行接收中斷RI和串行發(fā)送中斷TI。中斷請(qǐng)求:定時(shí)和外中斷控制寄存器TCON;
串行控制寄存器SCON;中斷允許控制寄存器IE;中斷優(yōu)先級(jí)控制寄存器IP。二、中斷控制寄存器
80C51單片機(jī)中涉及中斷控制的有3個(gè)方面4個(gè)特殊功能寄存器:INT0、INT1、T0、T1中斷請(qǐng)求標(biāo)志放在TCON中串行中斷請(qǐng)求標(biāo)志放在SCON中。1.中斷請(qǐng)求控制寄存器TCON8FH8EH8DH8CH8BH8AH89H88H位名稱TF1—TF0—IE1IT1IE0IT0功能T1
中斷標(biāo)志—T0中斷標(biāo)志—
中斷標(biāo)志
觸發(fā)方式
中斷標(biāo)志觸發(fā)方式(1)TCON的結(jié)構(gòu)、位名稱、位地址和功能如下:
TCON位功能:①TF1——
T1溢出中斷請(qǐng)求標(biāo)志
T1計(jì)數(shù)溢出后,TF1=1②TF0
——
T0溢出中斷請(qǐng)求標(biāo)志
T0計(jì)數(shù)溢出后,TF0=1TF0/TF1:定時(shí)器溢出中斷申請(qǐng)標(biāo)志位:=0:定時(shí)器未溢出;=1:定時(shí)器溢出申請(qǐng)中斷,進(jìn)中斷后自動(dòng)清零。③IE1
——
外中斷中斷請(qǐng)求標(biāo)志
當(dāng)P3.3引腳信號(hào)有效時(shí),IE1=1④IE0
——
外中斷中斷請(qǐng)求標(biāo)志
當(dāng)P3.2引腳信號(hào)有效時(shí),IE0=1IE0/IE1:外部中斷申請(qǐng)標(biāo)志位:=0:沒有外部中斷申請(qǐng);=1:有外部中斷申請(qǐng)。⑤IT1
——
外中斷觸發(fā)方式控制位
IT1=1,邊沿觸發(fā)方式;
IT1=0,電平觸發(fā)方式。⑥IT0
——
外中斷觸發(fā)方式控制位其意義和功能與IT1相似。IT0/IT1:外部中斷請(qǐng)求的觸發(fā)方式選擇位:=0:在INT0/INT1端申請(qǐng)中斷的信號(hào)低電平有效;=1:在INT0/INT1端申請(qǐng)中斷的信號(hào)負(fù)跳變有效.CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中斷源中斷標(biāo)志位(2)串行控制寄存器SCONTCON——————99H98H位名稱——————TIRI功能——————串行發(fā)送中斷標(biāo)志串行接收中斷標(biāo)志①TI——串行口發(fā)送中斷請(qǐng)求標(biāo)志②RI——串行口接收中斷請(qǐng)求標(biāo)志
80C51對(duì)中斷源的開放或關(guān)閉由中斷允許控制寄存器IE控制。2.中斷允許控制寄存器IEIE的結(jié)構(gòu)、位名稱和位地址如下:IEAFH——ACHABHAAHA9HA8H位名稱EA——ESET1EX1ET0EX0中斷源CPU——串行口T1T0①EA——CPU中斷允許控制位(總開關(guān))
EA=1,CPU開中;
EA=0,CPU關(guān)中,且屏蔽所有5個(gè)中斷源。②EX0——外中斷INT0中斷允許控制位
EX0=1,INT0開中;EX0=0,INT0關(guān)中。③EX1——外中斷INT1中斷允許控制位
EX1=1,INT1開中;EX1=0,INT1關(guān)中。④ET0——定時(shí)/計(jì)數(shù)器T0中斷允許控制位
ET0=1,T0開中;ET0=0,T0關(guān)中。⑤ET1---定時(shí)/計(jì)數(shù)器T1中斷允許控制位
ET1=1,T1開中;ET1=0,T1關(guān)中。⑥ES——串行口中斷(包括串發(fā)、串收)允許控制位
ES=1,串行口開中;ES=0,串行口關(guān)中說明:80C51對(duì)中斷實(shí)行兩級(jí)控制,總控制位是EA,每一中斷源還有各自的控制位。首先要EA=1,其次還要自身的控制位置“1”。3.中斷優(yōu)先級(jí)控制寄存器IP
80C51有5個(gè)中斷源,劃分為2個(gè)中斷優(yōu)先級(jí):高優(yōu)先級(jí)和低優(yōu)先級(jí)。
(1)IP的結(jié)構(gòu)、位名稱和位地址如下:IE———BCHBBHBAHB9HB8H位名稱———PSPT1PX1PT0PX0中斷源———串行口T1INT1T0INT0①
PX0:INT0中斷優(yōu)先級(jí)控制位。PX0=1,為高優(yōu)先級(jí);PX0=0,為低優(yōu)先級(jí);②
PX1:INT1中斷優(yōu)先級(jí)控制位。控制方法同上。③PT0:T0中斷優(yōu)先級(jí)控制位??刂品椒ㄍ?。④PT1:T1中斷優(yōu)先級(jí)控制位??刂品椒ㄍ?。⑤PS:串行口中斷優(yōu)先級(jí)控制位。控制方法同上。(2)中斷優(yōu)先級(jí)的控制原則:1.低優(yōu)先級(jí)中斷請(qǐng)求不能打斷高優(yōu)先級(jí)的中斷服務(wù),反之可以;2.一個(gè)中斷一但響應(yīng),與它同級(jí)的中斷請(qǐng)求不能中斷它。3.如果同級(jí)的多個(gè)中斷請(qǐng)求同時(shí)出現(xiàn),則按CPU的查詢次序。CPU的查詢次序:外部中斷0-定時(shí)/計(jì)數(shù)器0-外部中斷1-定時(shí)/計(jì)數(shù)器1-串行中斷(3)中斷嵌套
當(dāng)CPU正在執(zhí)行某個(gè)中斷服務(wù)程序時(shí),如果發(fā)生更高一級(jí)的中斷源請(qǐng)求中斷,CPU可以“中斷”正在執(zhí)行的低優(yōu)先級(jí)中斷,轉(zhuǎn)而響應(yīng)更高一級(jí)的中斷,這就是中斷嵌套。
中斷嵌套只能高優(yōu)先級(jí)“中斷”低優(yōu)先級(jí),低優(yōu)先級(jí)不能“中斷”高優(yōu)先級(jí),同一優(yōu)先級(jí)也不能相互“中斷”。
中斷處理過程大致可分為四步:
中斷請(qǐng)求、中斷響應(yīng)、中斷服務(wù)、中斷返回一、中斷響應(yīng)的條件
CPU查詢(檢測)到某中斷標(biāo)志為“1”,在滿足中斷響應(yīng)條件下,響應(yīng)中斷。
1.中斷響應(yīng)條件:①首先要有中斷源發(fā)出中斷申請(qǐng)②中斷總開關(guān)打開EA=1③請(qǐng)求中斷已經(jīng)也打開
2.中斷受阻的可能:
①CPU正在執(zhí)行同級(jí)或更高級(jí)的中斷;②當(dāng)前的機(jī)器周期不是正在執(zhí)行的指令的最后一個(gè)機(jī)器周期;③正在執(zhí)行的指令是RETI或者是訪向IE、IP的指令,則執(zhí)行完該指令后,必須再另外執(zhí)行一條指令后才能響應(yīng)。
3.
中斷響應(yīng)操作
CPU響應(yīng)中斷后,進(jìn)行下列操作:①保護(hù)斷點(diǎn)地址;②將相應(yīng)中斷的入口地址送入PC;③撤除該中斷源的中斷請(qǐng)求標(biāo)志;④關(guān)閉同級(jí)中斷
80C51五個(gè)中斷入口地址:
INT0:0003H; T0:000BH;INT1:0013H; T1:001BH;
串行口:0023H4.中斷請(qǐng)求的撤除
CPU響應(yīng)中斷后,必須清除中斷請(qǐng)求“1”標(biāo)志。否則中斷響應(yīng)返回后,將再次進(jìn)入該中斷,引起死循環(huán)出錯(cuò)。①對(duì)定時(shí)/計(jì)數(shù)器T0、T1中斷,外中斷邊沿觸發(fā)方式,CPU響應(yīng)中斷時(shí)就用硬件自動(dòng)清除了相應(yīng)的中斷請(qǐng)求標(biāo)志。②對(duì)外中斷電平觸發(fā)方式,需要采取軟硬結(jié)合的方法消除后果。③對(duì)串行口中斷,用戶應(yīng)在串行中斷服務(wù)程序中用軟件清除TI或RI例:硬件電路如圖所示。當(dāng)外部設(shè)備有中斷請(qǐng)求時(shí),中斷請(qǐng)求信號(hào)經(jīng)反相,加到鎖存器CP端,作為CP脈沖。由于D端接地為0,Q端輸出低點(diǎn)平,觸發(fā)
INT0生中斷。當(dāng)CPU響應(yīng)中斷后,應(yīng)在該中斷服務(wù)程序中按排兩條指令:
CLRP1.0:SETBP1.0
從而撤消引起重復(fù)中斷的INT0低電平信號(hào)。
因此一般來說,對(duì)外中斷INT0、INTl,應(yīng)盡量采用邊沿觸發(fā)方式,以簡化硬件電路和軟件程序。
5.中斷響應(yīng)等待時(shí)間
若排除CPU正在響應(yīng)同級(jí)或更高級(jí)的中斷情況,中斷響應(yīng)等待時(shí)間為:
3~8個(gè)機(jī)器周期二、
執(zhí)行中斷服務(wù)程序中斷服務(wù)程序應(yīng)包含以下幾部分:⑴保護(hù)現(xiàn)場⑵執(zhí)行中斷服務(wù)程序主體,完成相應(yīng)操作⑶恢復(fù)現(xiàn)場三、中斷返回在中斷服務(wù)程序最后,必須安排一條中斷返回指令RETI,當(dāng)CPU執(zhí)行RETI指令后,自動(dòng)完成下列操作:恢復(fù)斷點(diǎn)地址。
一、中斷主程序初始化
1.設(shè)置堆棧指針SP2.定義中斷優(yōu)先級(jí)
3.定義外中斷觸發(fā)方式
4.開放中斷
5.安排好等待中斷或中斷發(fā)生前主程序應(yīng)完成的操作內(nèi)容。二、中斷服務(wù)子程序
中斷服務(wù)子程序內(nèi)容要求:
1.在中斷服務(wù)入口地址設(shè)置一條跳轉(zhuǎn)指令,轉(zhuǎn)移到中斷服務(wù)程序的實(shí)際入口處。
由于80C51相鄰兩個(gè)中斷入口地址間只有8B的空間,8B只能容納一個(gè)有3~8條指令的極短程序,一般情況中斷服務(wù)程序均大大超出8B長度。因此,必須跳轉(zhuǎn)到其他合適的地址空間。跳轉(zhuǎn)指令可用SJMP、AJMP或LJMP指令,SJMP、AJMP均受跳轉(zhuǎn)范圍影響,建議用LJMP指令,則可將真正的中斷服務(wù)程序不受限制地安排在64KB任何地方。
2.根據(jù)需要保護(hù)現(xiàn)場。
保護(hù)現(xiàn)場不是中斷服務(wù)程序的必需部分。通常是保護(hù)Acc、PSW和DPTR等特殊功能寄存器中的內(nèi)容。若中斷服務(wù)程序中不涉及Acc、PSW,DPTR,則不需保護(hù),也不需恢復(fù)。例如:累加器A是最常用的特殊功能寄存器,主程序中不可能不用到A。而發(fā)生中斷又是隨機(jī)的,可能正好發(fā)生在對(duì)A進(jìn)行操作、A中的數(shù)據(jù)還有用時(shí)進(jìn)入中斷,而在中斷服務(wù)程序中又涉及到A,改變了A中的內(nèi)容,則在進(jìn)入中斷服務(wù)程序?qū)操作前應(yīng)對(duì)原A中數(shù)據(jù)進(jìn)行保護(hù),以便中斷返回后恢復(fù)A中原來數(shù)據(jù)
需要指出的是,保護(hù)現(xiàn)場數(shù)據(jù)越少越好,數(shù)據(jù)保護(hù)越多,堆棧負(fù)擔(dān)越重,堆棧深度設(shè)置應(yīng)越深。3.中斷源請(qǐng)求中斷服務(wù)要求的操作。4.恢復(fù)現(xiàn)場。與保護(hù)現(xiàn)場相對(duì)應(yīng),注意先進(jìn)后出、后進(jìn)先出操作原則。5.中斷返回,最后一條指令必須是RETI。【例7-1】
利用定時(shí)器T0定時(shí),在P1.0端輸出一方波,方波周期為20ms,已知晶振為12MHZ。主程序:
ORG0000HLJMP2000HT0的中斷服務(wù)程序ORG000BHAJMP70HORG70HMOVTL0,#0F0HMOVTH0,#0D8HCPLP1.0RETIORG2000HMOVTMOD,#01HMOVTL0,#0F0HMOVTH0,#0D8HMOVIE,#82HSETBTR0HERE:SJMPHERE【例6-2】出租車計(jì)價(jià)器計(jì)程方法是車輪每運(yùn)轉(zhuǎn)一圈產(chǎn)生一個(gè)負(fù)脈沖,從外中斷INT0(P3.2)引腳輸入,行駛里程為輪胎周長×運(yùn)轉(zhuǎn)圈數(shù),設(shè)輪胎周長為2m,試實(shí)時(shí)計(jì)算出租車行駛里程(單位米),數(shù)據(jù)存32H、31H、30H。解:編程如下:
ORG 0000H ;復(fù)位地址
LJMP STAT ;轉(zhuǎn)初始化
ORG 0003H ;中斷入口地址
LJMP INT ;轉(zhuǎn)中斷服務(wù)程序
ORG0100H ;初始化程序首地址STAT:MOVSP,#60H ;置堆棧指針
SETBIT0 ;置邊沿觸發(fā)方式
MOVIP,#01H ;置高優(yōu)先級(jí)
MOVIE,#81H ;開中
MOV30H,#0 ;里程計(jì)數(shù)器清0
MOV31H,#0 ;MOV32H,#0 ;LJMPMAIN ;轉(zhuǎn)主程序,并等待中斷
ORG0200H ;中斷服務(wù)子程序首地址INT:PUSHAcc ;保護(hù)現(xiàn)場
PUSHPSW ; MOVA,30H ;讀低8位計(jì)數(shù)器
ADDA,#2 ;低8位計(jì)數(shù)器加2m MOV30H,A ;回存
CLRA ; ADDCA,31H ;中8位計(jì)數(shù)器加進(jìn)位
MOV31H,A ;回存
CLRA ; ADDCA,32H ;高8位計(jì)數(shù)器加進(jìn)位
MOV32H,A ;回存
PUSHPSW ;恢復(fù)現(xiàn)場
PUSHAcc ; RETI ;中斷返回MAIN主程序可以處理循環(huán)顯示等任務(wù)?!纠?-3】現(xiàn)有5個(gè)外中斷源EX1、EX20、EX21、EX22和EX23,高電平時(shí)表示請(qǐng)求中斷,要求執(zhí)行相應(yīng)中斷服務(wù)程序,試編制程序。
解:ORG 0000H ;復(fù)位地址LJMP MAIN
;轉(zhuǎn)主程序ORG 0003H ;中斷入口地址LJMP PINT0
;轉(zhuǎn)中斷服務(wù)程序ORG 0013H ;中斷入口地址LJMP PINT1
;轉(zhuǎn)中斷服務(wù)程序
ORG 0100H
;主程序首地址MAIN:MOV SP,#60H ;置堆棧指針
ORL TCON,#05H ;置INT0、INT1為邊沿觸發(fā)方式
SETB PX0 ;置為高優(yōu)先級(jí)
MOV IE,#0FFH ;全部開中 … ;主程序內(nèi)容
ORG1000H
;中斷服務(wù)程序首地址
PINT0:PUSH Acc ;中斷,保護(hù)現(xiàn)場
LCALLWORK1 ;調(diào)用EX1服務(wù)子程序
POP Acc ;恢復(fù)現(xiàn)場
RETI ;中斷返回
ORG 2000H
;中斷服務(wù)程序首地址PINT1:CLR EA ;CPU禁中
PUSH Acc ;中斷保護(hù)現(xiàn)場
PUSH DPH ;PUSH DPL ;SETB EA ;CPU開中
JBP1.0,LWK20;P1.0=1,EX20請(qǐng)求中斷
JBP1.1,LWK21;P1.1=1,EX21請(qǐng)求中斷
JBP1.2,LWK22;P1.2=1,EX22請(qǐng)求中斷
LCALLWORK23;P1.3=1,調(diào)用EX23服務(wù)子
LRET: CLR EA ;CPU禁中
POP DPL ;恢復(fù)現(xiàn)場
POP DPH ;POP Acc ;SETB EA ;CPU開中
RE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電信業(yè)務(wù)協(xié)議管理規(guī)范2024
- 2024年自動(dòng)門銷售協(xié)議模板
- 2024年簡化銷售訂單協(xié)議樣本
- 2024年個(gè)人消費(fèi)貸款協(xié)議條款細(xì)解
- 生物質(zhì)燃?xì)獍l(fā)電項(xiàng)目投資回報(bào)分析考核試卷
- 2024至2030年中國冷凍鱷魚肉數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024年無償股份轉(zhuǎn)讓協(xié)議示范文本
- 外賣行業(yè)綠色配送模式探索考核試卷
- 《中煤能源基于平衡計(jì)分卡績效評(píng)價(jià)體系的改進(jìn)與應(yīng)用研究》
- 《我國高等舞蹈教育研究的文獻(xiàn)計(jì)量可視化分析》
- 《中華民族共同體概論》考試復(fù)習(xí)題庫(含答案)
- 2022-2023學(xué)年武漢市江岸區(qū)七年級(jí)英語上學(xué)期期中質(zhì)量檢測卷附答案
- QC080000-2017標(biāo)準(zhǔn)講解培訓(xùn)教材
- 鋼板樁支護(hù)工程監(jiān)理實(shí)施細(xì)則
- 中考150個(gè)實(shí)詞(供默寫)
- Module 5 外研版英語九(上)模塊主題寫作詳解與訓(xùn)練
- 第二章攪拌摩擦焊
- 內(nèi)分泌科醫(yī)師培養(yǎng)細(xì)則
- 蛋白質(zhì)與酶工程復(fù)習(xí)題 金
- kummell 病ppt課件
- 小班綜合活動(dòng)《出生的秘密》
評(píng)論
0/150
提交評(píng)論