版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章中斷系統(tǒng)§5.1微機(jī)的輸入/輸出方式§5.2中斷的概念§5.389C51中斷系統(tǒng)結(jié)構(gòu)及中斷控制§5.4中斷處理過(guò)程§5.5外部中斷擴(kuò)展方法§5.6中斷程序舉例5.7思考題與習(xí)題第五章中斷系統(tǒng)§5.1微機(jī)的輸入/輸出方式1§5.1微機(jī)的輸入/輸出方式§5.1.1無(wú)條件傳送方式不需要交換狀態(tài)信息,只需在程序中加入訪問(wèn)外設(shè)的指令,數(shù)據(jù)傳送便可以實(shí)現(xiàn)?!?.1.2查詢傳送方式(條件傳送)通過(guò)查詢外設(shè)的狀態(tài)信息,確信外設(shè)已處于“準(zhǔn)備好”,計(jì)算機(jī)才發(fā)出訪問(wèn)外設(shè)的指令,實(shí)現(xiàn)數(shù)據(jù)的傳送。輸出時(shí),要查詢外設(shè)是否把上一次CPU輸出的數(shù)據(jù)處理完畢。狀態(tài)信息:一般為1位二進(jìn)制碼。輸入時(shí),需要查詢外設(shè)的輸入數(shù)據(jù)是否準(zhǔn)備好;§5.1微機(jī)的輸入/輸出方式§5.1.1無(wú)條件傳送方2輸入狀態(tài)信息準(zhǔn)備好?傳送數(shù)據(jù)YN查詢方式程序流程圖缺點(diǎn):CPU在完成一次數(shù)據(jù)傳送后要等待很長(zhǎng)時(shí)間才能進(jìn)行下一次的傳送。在等待過(guò)程中,CPU不能進(jìn)行其他操作,所以效率比較低。優(yōu)點(diǎn):通用性好,可以用于各類外設(shè)和CPU間的數(shù)據(jù)傳送。輸入狀態(tài)信息準(zhǔn)備好?傳送數(shù)據(jù)YN查詢方式程序流程圖缺點(diǎn):CP3§5.1.3直接存儲(chǔ)器存?。―MA)方式DMA:DirectMemoryAccessCPU讓出數(shù)據(jù)總線(懸浮狀態(tài)),使外設(shè)和存儲(chǔ)器之間直接傳送(不通過(guò)CPU)數(shù)據(jù)的方式。適用于外設(shè)和存儲(chǔ)器之間有大量的數(shù)據(jù)需要傳送及外設(shè)工作速度很快的情況?!?.1.3直接存儲(chǔ)器存?。―MA)方式DMA:Direc4§5.1.4中斷傳送方式當(dāng)CPU正在工作時(shí),外部事件請(qǐng)求CPU迅速去處理,于是CPU暫停當(dāng)前工作,轉(zhuǎn)去處理外部事件。中斷服務(wù)處理完畢后,再返回到原來(lái)被暫停的地方繼續(xù)原來(lái)的工作,這樣的過(guò)程稱為中斷。主程序響應(yīng)中斷請(qǐng)求中斷服務(wù)程序返回主程序繼續(xù)執(zhí)行主程序斷點(diǎn)中斷請(qǐng)求§5.1.4中斷傳送方式當(dāng)CPU正在工作時(shí),外部事件5§5.2中斷的概念一、什么是中斷
二、中斷源引起并發(fā)出中斷請(qǐng)求的源頭三、中斷源識(shí)別中斷發(fā)生后,系統(tǒng)如何識(shí)別是哪一個(gè)中斷源引起的中斷。四、中斷控制中斷允許、中斷優(yōu)先級(jí)控制五、中斷優(yōu)點(diǎn)分時(shí)操作提高主機(jī)效率實(shí)時(shí)處理隨機(jī)故障處理§5.2中斷的概念一、什么是中斷二、中斷源引起并發(fā)6§5.3.189C51中斷源和中斷請(qǐng)求標(biāo)志
8051提供5個(gè)中斷源:INT0P3.2引腳上的外部中斷請(qǐng)求(外中斷0)INT1P3.3引腳上的外部中斷請(qǐng)求(外中斷1)T0片內(nèi)定時(shí)器/計(jì)數(shù)器0溢出(TF0)中斷請(qǐng)求T1片內(nèi)定時(shí)器/計(jì)數(shù)器1溢出(TF1)中斷請(qǐng)求TI/RI片內(nèi)串行口完成一幀發(fā)送或接收中斷請(qǐng)求源說(shuō)明:每一個(gè)中斷源都對(duì)應(yīng)有一個(gè)中斷請(qǐng)求標(biāo)志位,設(shè)在SFR的TCON和SCON中。有中斷請(qǐng)求時(shí),由TCON和SCON中的相應(yīng)位來(lái)鎖存?!?.389C51中斷系統(tǒng)結(jié)構(gòu)及中斷控制§5.3.189C51中斷源和中斷請(qǐng)求標(biāo)志8051提供57
TCON-定時(shí)器/計(jì)數(shù)器(T0,T1)控制器(88H)TF1TF0IE1IT1IE0IT08F8E8D8C8B8A8988TCONT1溢出中斷標(biāo)志T0溢出中斷標(biāo)志外中斷1請(qǐng)求標(biāo)志外部中斷1觸發(fā)方式控制外部中斷0觸發(fā)方式控制外中斷0請(qǐng)求標(biāo)志
T0、T1從初值開(kāi)始加1計(jì)數(shù)到產(chǎn)生溢出,使TF0、TF1置“1”,直到CPU響應(yīng)中斷時(shí)由硬件復(fù)位。
若ITi=1(沿觸發(fā)),則INTi上的電平由1變到0時(shí),置位IEi、在CPU響應(yīng)該中斷時(shí)由硬件清0。
若ITi=0(電平觸發(fā)),則輸入到INTi的外部中斷源必須保持低電平有效,直到該中斷被響應(yīng)。同時(shí)在中斷返回前必須使電平變高,否則將會(huì)再次產(chǎn)生中斷。位地址TCON-定時(shí)器/計(jì)數(shù)器(T0,T1)控制器(88H)T8SCON-串行口控制寄存器(98H)
當(dāng)發(fā)送和接收中任何一個(gè)標(biāo)志被置位時(shí),都可以向CPU提出申請(qǐng)。必須在中斷服務(wù)程序中判斷,并由軟件將RI和TI標(biāo)志位清0。發(fā)送中斷標(biāo)志接收中斷標(biāo)志TIRISCON9F9E9D9C9B9A9998位地址一幀數(shù)據(jù)發(fā)送完畢置“1”TI,請(qǐng)求CPU發(fā)送下一幀一幀數(shù)據(jù)接收完畢置“1”RI,請(qǐng)求CPU取走數(shù)據(jù)通常情況的中斷源:I/O外設(shè)、硬件故障、實(shí)時(shí)時(shí)鐘等SCON-串行口控制寄存器(98H)當(dāng)發(fā)送和接收9§5.3.2中斷控制IE-中斷允許寄存器(A8H)EA--ESET1EX1ET0EX0IEAFAEADACABAAA9A8中斷允許標(biāo)志0禁止所有中斷1開(kāi)放中斷外部中斷01允許中斷外部中斷11允許中斷T0的溢出中斷1允許中斷T1的溢出中斷1允許中斷串行口中斷允許位1允許中斷位地址一、中斷允許控制§5.3.2中斷控制IE-中斷允許寄存器(A8H)EA10例:假設(shè)允許片內(nèi)定時(shí)器/計(jì)數(shù)器中斷,禁止其他中斷。試根據(jù)假設(shè)條件設(shè)置IE的相應(yīng)值。解:(IE)=10001010B=8AH(a)用字節(jié)操作指令MOVIE,#8AH;或MOV0A8H,#8AH;(b)用位操作指令SETBET0;定時(shí)器/計(jì)數(shù)器0允許中斷SETBET1;定時(shí)器/計(jì)數(shù)器1允許中斷SETBEA;CPU開(kāi)中斷例:假設(shè)允許片內(nèi)定時(shí)器/計(jì)數(shù)器中斷,禁止其他中斷。試根據(jù)假設(shè)11二、中斷優(yōu)先級(jí)控制中斷系統(tǒng)提供兩個(gè)中斷優(yōu)先級(jí)每一個(gè)中斷源都可編程設(shè)置為高優(yōu)先級(jí)或低優(yōu)先級(jí),以便實(shí)現(xiàn)二級(jí)中斷嵌套。中斷優(yōu)先級(jí)是由IP控制的,IP格式如下:---PSPT1PX1PT0PX0IPBFBEBDBCBBBAB9B8外部中斷0優(yōu)先級(jí)外部中斷1優(yōu)先級(jí)T0中斷優(yōu)先級(jí)T1中斷優(yōu)先級(jí)串行口中斷優(yōu)先級(jí)位地址Di=1設(shè)高優(yōu)先級(jí)Di=0設(shè)低優(yōu)先級(jí)B8H字節(jié)地址二、中斷優(yōu)先級(jí)控制中斷系統(tǒng)提供兩個(gè)中斷優(yōu)先級(jí)--12中斷優(yōu)先級(jí)排列順序中斷系統(tǒng)內(nèi)具有兩級(jí)優(yōu)先級(jí),遵循以下兩條基本規(guī)則:(1)低優(yōu)先級(jí)中斷源可被高優(yōu)先級(jí)中斷源所中斷。(2)一種中斷源一旦得到響應(yīng),與它同級(jí)的中斷源不能再中斷它。同時(shí)收到幾個(gè)同一優(yōu)先級(jí)的中斷,其優(yōu)先級(jí)排列如下:
中斷源同級(jí)內(nèi)的中斷優(yōu)先級(jí)
外部中斷0 最高
T0溢出中斷
外部中斷1
T1溢出中斷
串行口中斷 最低中斷優(yōu)先級(jí)排列順序中斷系統(tǒng)內(nèi)具有兩級(jí)優(yōu)先級(jí),遵循以下兩條基本13
二級(jí)中斷嵌套CPU在執(zhí)行主程序低級(jí)中斷請(qǐng)求響應(yīng)低級(jí)中斷請(qǐng)求CPU執(zhí)行低級(jí)中斷服務(wù)程序高級(jí)中斷請(qǐng)求響應(yīng)高級(jí)中斷請(qǐng)求CPU執(zhí)行高級(jí)中斷服務(wù)程序返回低級(jí)中斷程序返回主程序二級(jí)中斷嵌套CPU在執(zhí)行主程序低級(jí)中響應(yīng)低級(jí)中斷請(qǐng)求CPU14例:設(shè)8031的片外中斷為高優(yōu)先級(jí),片內(nèi)中斷為低優(yōu)先級(jí)。設(shè)置IP相應(yīng)值。解:(IP)=00000101B=05H(a)用字節(jié)操作指令
MOVIP,#05H;或MOV0B8H,#05H;(b)用為操作指令
SETBPX0SETBPX1CLRPSCLRPT0CLRPT1例:設(shè)8031的片外中斷為高優(yōu)先級(jí),片內(nèi)中斷為低優(yōu)先級(jí)。設(shè)置1589C51中斷系統(tǒng)89C51中斷系統(tǒng)16一、響應(yīng)中斷的條件
CPU在每個(gè)機(jī)器周期的S5P2時(shí)刻采樣中斷標(biāo)志,而在下一個(gè)機(jī)器周期對(duì)采樣到的中斷進(jìn)行處理。按優(yōu)先級(jí)高低,中斷系統(tǒng)將控制轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。(3)當(dāng)前正在執(zhí)行的指令是返回(RETI)指令或是對(duì)IE或IP進(jìn)行讀/寫的指令。(2)現(xiàn)行的機(jī)器周期不是當(dāng)前所執(zhí)行指令的最后一個(gè)機(jī)器周期?!?.4中斷響應(yīng)及中斷處理過(guò)程封鎖CPU對(duì)中斷響應(yīng)的條件:(1)CPU正在處理同級(jí)的或高一級(jí)的中斷一、響應(yīng)中斷的條件CPU在每個(gè)機(jī)器周期的S5P2時(shí)17中斷響應(yīng)時(shí)間CPU不是在任何情況下都對(duì)中斷請(qǐng)求予以響應(yīng),而不同的情況下對(duì)中斷響應(yīng)的時(shí)間是不同的。對(duì)于順利的中斷響應(yīng),其最短的響應(yīng)時(shí)間為3個(gè)機(jī)器周期。對(duì)于受阻的中斷響應(yīng),則響應(yīng)時(shí)間會(huì)更長(zhǎng)一些。若中斷系統(tǒng)只有一個(gè)中斷源,則響應(yīng)時(shí)間為3~8個(gè)機(jī)器周期之間。中斷響應(yīng)時(shí)間CPU不是在任何情況下都對(duì)中斷請(qǐng)求予以響應(yīng),而不18二、中斷響應(yīng)過(guò)程⑴把當(dāng)前PC值壓入堆棧,保護(hù)斷點(diǎn)。⑵將相應(yīng)的中斷服務(wù)程序的入口地址送入PC。⑶對(duì)有些中斷源,CPU會(huì)自動(dòng)清除中斷標(biāo)志。⑷執(zhí)行中斷服務(wù)程序。⑸執(zhí)行到返回指令RETI,中斷服務(wù)程序結(jié)束,將堆棧內(nèi)容彈出到PC,返回到原來(lái)斷點(diǎn)繼續(xù)執(zhí)行。三、中斷源入口地址外部中斷00003H定時(shí)器/計(jì)數(shù)器0000BH外部中斷10013H定時(shí)器/計(jì)數(shù)器1001BH串行口0023H二、中斷響應(yīng)過(guò)程⑴把當(dāng)前PC值壓入堆棧,保護(hù)斷點(diǎn)。三、中19TF1TF0IE1IT1IE0IT08F8E8D8C8B8A8988TCON外中斷1請(qǐng)求標(biāo)志外部中斷1(INT1)觸發(fā)方式控制外部中斷0(INT1)觸發(fā)方式控制外中斷0請(qǐng)求標(biāo)志若ITi=1至少一個(gè)機(jī)器周期高電平,一個(gè)機(jī)器(下降沿觸發(fā))周期低電平。若ITi=0,保持低電平直到中斷被響應(yīng)為止。(低電平觸發(fā))中斷返回前必須使電平變高。位地址無(wú)論何種方式,轉(zhuǎn)入中斷后,由硬件清0中斷請(qǐng)求標(biāo)志。§5.5關(guān)于外部中斷TF1TF020§5.6中斷程序舉例一、中斷程序框架
ORG0000H AJMPMAIN
ORG0003H AJMPINT ORG0050H MAIN: MOVSP,#60H MOVIP,#data1;設(shè)置中斷優(yōu)先級(jí) MOVIE,#data2;中斷開(kāi)放 SETBITX;沿觸發(fā)或電平觸發(fā)
︰ INT:︰
;中斷服務(wù)程序RETIEND §5.6中斷程序舉例一、中斷程序框架 ORG00211.查詢方式
ORG0000H AJMPMAIN ORG0050HMAIN: MOVA,#00H MOVP1,AKK: JNBP3.2,WW SJMPKKWW: CPLAMOVP1,AJNBP3.2,$ SJMPKK END例1:按一次全亮,再按一次全黑二、應(yīng)用舉例1.查詢方式 ORG0000H例1:按一次全亮,再按一222.中斷方式
ORG0000H AJMPMAIN
ORG0003H AJMPINT ORG0050H MAIN: MOVSP,#60H
MOVIE,#10000001B;或SETBEA,EX0
SETBIT0;下降沿觸發(fā) MOVA,#00H MOVP1,A INT:CPLA SJMP$ MOVP1,A
RETIEND 2.中斷方式 ORG0000H231.結(jié)合電路圖,讀下列程序,說(shuō)明其功能。MOVA,#03HML:MOVP1,AACALLDL CPLASJMPMLDL:MOVR7,#0A3HDL1:MOVR6,#0FFH DL6:DJNZR6,DL6 DJNZR7,DL1 RET
2.如果想通過(guò)按鍵控制紅綠燈的切換,硬件應(yīng)該怎樣改電路圖,軟件怎樣編程序?例2:1.結(jié)合電路圖,讀下列程序,說(shuō)明其功能。2.如果想通過(guò)按24MOVA,#03HMOVP1,ADDD:JBP3.2,DDDCPLAMOVP1,ADD1:JNBP3.2,DD1 SJMPDDD
3.如果想通過(guò)中斷方式實(shí)現(xiàn)上述功能,軟件怎樣編程序?仿前例。MOVA,#03H3.如果想通25
ORG0000H AJMPMAIN
ORG0003H AJMPINT ORG0050HMAIN: MOVSP,#60H
MOVIE,#10000001B;
SETBIT0;下降沿觸發(fā) MOVA,#03H MOVP1,A SJMP$
INT:CPLA
MOVP1,A
RETI
END ORG0000H26例3:某8051單片機(jī)定時(shí)采樣壓力、溫度信號(hào)。定時(shí)用T0實(shí)現(xiàn),壓力超限和溫度超限的報(bào)警信號(hào)分別由INT0、INT1引腳輸入,中斷優(yōu)先級(jí)排列順序依次為:壓力溫度定時(shí)確定IE、IP控制字,并編寫初始化程序。
ORG0000H AJMPM ORG0003H AJMPINTA ORG000BH AJMPTIMER0 ORG0013H AJMPINTB ORG0050HM:MOVIP,#00000101BSETBIT0;下降沿觸發(fā) MOVIE,#10000111B;或SETBEA,EX0例3:某8051單片機(jī)定時(shí)采樣壓力、溫度信號(hào)。定時(shí)用T0實(shí)現(xiàn)27例4:某工業(yè)監(jiān)控系統(tǒng),具有溫度、壓力、PH值等多路監(jiān)控功能。當(dāng)PH值<7時(shí),將向CPU申請(qǐng)中斷,CPU響應(yīng)中斷后令P3.0輸出高電平,經(jīng)驅(qū)動(dòng)使加堿管道電磁閥接通一秒,以調(diào)整PH值,請(qǐng)?jiān)O(shè)計(jì)軟件。
撤申請(qǐng)P1.6例4:某工業(yè)監(jiān)控系統(tǒng),具有溫度、壓力、PH值等多路監(jiān)控28
ORG0000H AJMPM ORG0003H AJMPIT0 ORG0030HM:MOVIE,#81H;CLRIT0;電平觸發(fā) ……………HE:SJMPHE ORG0050HIT0:JBP1.0,TE1;溫度1 JBP1.1,TE2;溫度2 JBP1.2,PH;PH JBP1.3,PL;壓力
…………… ORG0080HPH:PUSHPSW PUSHA SETBP3.0 ACALLDELAY1S CLEARP3.0 ANLP1,#0BFH;撤申請(qǐng)ORLP1,#40HPOPA POPPSW RETIEND ORG0000H ……………29例5:外部中斷實(shí)驗(yàn):
如圖所示,將P1口的P1.4~P1.7作為輸入位,P1.0~P1.3作為輸出位。要求利用8031將開(kāi)關(guān)所設(shè)的數(shù)據(jù)讀入單片機(jī)內(nèi),并依次通過(guò)P1.0~P1.3輸出,驅(qū)動(dòng)發(fā)光二極管,以檢查P1.4~P1.7輸入的電平情況(若輸入為高電平則相應(yīng)的LED亮)。
現(xiàn)要求采用中斷邊沿觸發(fā)方式,每中斷一次,完成一次讀/寫操作。例5:外部中斷實(shí)驗(yàn):30P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0INT08031
+5V+5V+5V+5V+5V&&12S1例:采用外部中斷0,并采用了去抖動(dòng)電路。當(dāng)P1.0~P1.3的任何一位輸出為1時(shí),相應(yīng)的發(fā)光二極管就會(huì)發(fā)光。當(dāng)開(kāi)關(guān)S1閉合時(shí),發(fā)出中斷請(qǐng)求。8031+5V+5V+5V+5V+5V&&12S1例:31
ORG0000H
LJMPMAIN;上電,轉(zhuǎn)向主程序ORG0003H;外部中斷0入口地址LJMPINSER;轉(zhuǎn)向中斷服務(wù)程序 ORG0030H;主程序MAIN:
SETBEX0;允許外部中斷0中斷
SETBIT0;選擇邊沿觸發(fā)方式
SETBEA;CPU開(kāi)中斷HERE:SJMPHERE;等待中斷
ORG0200H;中斷服務(wù)程序INSER:MOVA,#0F0H
MOVP1,A;設(shè)P1.4~P1.7為輸入
MOVA,P1;取開(kāi)關(guān)數(shù)
SWAPA;A的高、低四位互換
MOVP1,A;輸出驅(qū)動(dòng)LED發(fā)光
RETI;中斷返回
ENDORG0000H ORG32例6:利用中斷顯示系統(tǒng)故障:如圖所示,此中斷電路可實(shí)現(xiàn)系統(tǒng)的故障顯示。當(dāng)系統(tǒng)的各部分正常工作時(shí),四個(gè)故障源的輸入均為低電平,顯示燈全不亮。當(dāng)有某個(gè)部分出現(xiàn)故障時(shí),則相應(yīng)的輸入線由低電平變?yōu)楦唠娖?,相?yīng)的發(fā)光二極管亮。解:例6:利用中斷顯示系統(tǒng)故障:如圖所示,此中斷電路可實(shí)現(xiàn)系統(tǒng)的33INT0P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.78031RRRRLEDLEDLEDLED圖5-15利用中斷顯示系統(tǒng)故障返回四個(gè)故障源INT0P1.0P1.1P1.2P1.3P1.4P1.5P134解:如圖所示,當(dāng)某一個(gè)故障信號(hào)輸入線由低電平變?yōu)楦唿c(diǎn)平時(shí),會(huì)通過(guò)INT0線引起8051中斷(邊沿觸發(fā)方式)。在中斷服務(wù)程序中,應(yīng)將各故障源的信號(hào)讀入,并加以查詢,以進(jìn)行相應(yīng)的發(fā)光顯示。
ORG0000H
LJMPMAIN;上電,轉(zhuǎn)向主程序
ORG0003H;外部中斷0入口地址
LJMPINSER;轉(zhuǎn)向中斷服務(wù)程序
MAIN:ANLP1,#55H;01010101B
P1.0,P1.2,P1.4,P1.6為輸入 P1.1,P1.3,P1.5,P1.7為輸出
SETBEX0;允許外部中斷0中斷
SETBIT0;選擇邊沿觸發(fā)方式SETBEA;CPU開(kāi)中斷HERE:SJMPHERE;等待中斷INSER:JNBP1.0,L1;查詢中斷源,(P1.0)=0,轉(zhuǎn)L1
SETBP1.1;是P1.0引起的中斷,使相應(yīng)的二極管亮L1:JNBP1.2,L2;繼續(xù)查詢
SETBP1.3;L2:JNBP1.4,L3SETBP1.5L3:JNBP1.6,L4;SETBP1.7L4:RETIEND解:如圖所示,當(dāng)某一個(gè)故障信號(hào)輸入線由低電平變?yōu)楦唿c(diǎn)平時(shí),會(huì)35試試左邊兩種情況下,如何編程控制蜂鳴器發(fā)聲或燈點(diǎn)亮。按鍵控制且有時(shí)間間隔要求試試左邊兩種情況下,如何編程控制蜂鳴器發(fā)聲或燈點(diǎn)亮。36第五章中斷系統(tǒng)§5.1微機(jī)的輸入/輸出方式§5.2中斷的概念§5.389C51中斷系統(tǒng)結(jié)構(gòu)及中斷控制§5.4中斷處理過(guò)程§5.5外部中斷擴(kuò)展方法§5.6中斷程序舉例5.7思考題與習(xí)題第五章中斷系統(tǒng)§5.1微機(jī)的輸入/輸出方式37§5.1微機(jī)的輸入/輸出方式§5.1.1無(wú)條件傳送方式不需要交換狀態(tài)信息,只需在程序中加入訪問(wèn)外設(shè)的指令,數(shù)據(jù)傳送便可以實(shí)現(xiàn)?!?.1.2查詢傳送方式(條件傳送)通過(guò)查詢外設(shè)的狀態(tài)信息,確信外設(shè)已處于“準(zhǔn)備好”,計(jì)算機(jī)才發(fā)出訪問(wèn)外設(shè)的指令,實(shí)現(xiàn)數(shù)據(jù)的傳送。輸出時(shí),要查詢外設(shè)是否把上一次CPU輸出的數(shù)據(jù)處理完畢。狀態(tài)信息:一般為1位二進(jìn)制碼。輸入時(shí),需要查詢外設(shè)的輸入數(shù)據(jù)是否準(zhǔn)備好;§5.1微機(jī)的輸入/輸出方式§5.1.1無(wú)條件傳送方38輸入狀態(tài)信息準(zhǔn)備好?傳送數(shù)據(jù)YN查詢方式程序流程圖缺點(diǎn):CPU在完成一次數(shù)據(jù)傳送后要等待很長(zhǎng)時(shí)間才能進(jìn)行下一次的傳送。在等待過(guò)程中,CPU不能進(jìn)行其他操作,所以效率比較低。優(yōu)點(diǎn):通用性好,可以用于各類外設(shè)和CPU間的數(shù)據(jù)傳送。輸入狀態(tài)信息準(zhǔn)備好?傳送數(shù)據(jù)YN查詢方式程序流程圖缺點(diǎn):CP39§5.1.3直接存儲(chǔ)器存?。―MA)方式DMA:DirectMemoryAccessCPU讓出數(shù)據(jù)總線(懸浮狀態(tài)),使外設(shè)和存儲(chǔ)器之間直接傳送(不通過(guò)CPU)數(shù)據(jù)的方式。適用于外設(shè)和存儲(chǔ)器之間有大量的數(shù)據(jù)需要傳送及外設(shè)工作速度很快的情況。§5.1.3直接存儲(chǔ)器存?。―MA)方式DMA:Direc40§5.1.4中斷傳送方式當(dāng)CPU正在工作時(shí),外部事件請(qǐng)求CPU迅速去處理,于是CPU暫停當(dāng)前工作,轉(zhuǎn)去處理外部事件。中斷服務(wù)處理完畢后,再返回到原來(lái)被暫停的地方繼續(xù)原來(lái)的工作,這樣的過(guò)程稱為中斷。主程序響應(yīng)中斷請(qǐng)求中斷服務(wù)程序返回主程序繼續(xù)執(zhí)行主程序斷點(diǎn)中斷請(qǐng)求§5.1.4中斷傳送方式當(dāng)CPU正在工作時(shí),外部事件41§5.2中斷的概念一、什么是中斷
二、中斷源引起并發(fā)出中斷請(qǐng)求的源頭三、中斷源識(shí)別中斷發(fā)生后,系統(tǒng)如何識(shí)別是哪一個(gè)中斷源引起的中斷。四、中斷控制中斷允許、中斷優(yōu)先級(jí)控制五、中斷優(yōu)點(diǎn)分時(shí)操作提高主機(jī)效率實(shí)時(shí)處理隨機(jī)故障處理§5.2中斷的概念一、什么是中斷二、中斷源引起并發(fā)42§5.3.189C51中斷源和中斷請(qǐng)求標(biāo)志
8051提供5個(gè)中斷源:INT0P3.2引腳上的外部中斷請(qǐng)求(外中斷0)INT1P3.3引腳上的外部中斷請(qǐng)求(外中斷1)T0片內(nèi)定時(shí)器/計(jì)數(shù)器0溢出(TF0)中斷請(qǐng)求T1片內(nèi)定時(shí)器/計(jì)數(shù)器1溢出(TF1)中斷請(qǐng)求TI/RI片內(nèi)串行口完成一幀發(fā)送或接收中斷請(qǐng)求源說(shuō)明:每一個(gè)中斷源都對(duì)應(yīng)有一個(gè)中斷請(qǐng)求標(biāo)志位,設(shè)在SFR的TCON和SCON中。有中斷請(qǐng)求時(shí),由TCON和SCON中的相應(yīng)位來(lái)鎖存?!?.389C51中斷系統(tǒng)結(jié)構(gòu)及中斷控制§5.3.189C51中斷源和中斷請(qǐng)求標(biāo)志8051提供543
TCON-定時(shí)器/計(jì)數(shù)器(T0,T1)控制器(88H)TF1TF0IE1IT1IE0IT08F8E8D8C8B8A8988TCONT1溢出中斷標(biāo)志T0溢出中斷標(biāo)志外中斷1請(qǐng)求標(biāo)志外部中斷1觸發(fā)方式控制外部中斷0觸發(fā)方式控制外中斷0請(qǐng)求標(biāo)志
T0、T1從初值開(kāi)始加1計(jì)數(shù)到產(chǎn)生溢出,使TF0、TF1置“1”,直到CPU響應(yīng)中斷時(shí)由硬件復(fù)位。
若ITi=1(沿觸發(fā)),則INTi上的電平由1變到0時(shí),置位IEi、在CPU響應(yīng)該中斷時(shí)由硬件清0。
若ITi=0(電平觸發(fā)),則輸入到INTi的外部中斷源必須保持低電平有效,直到該中斷被響應(yīng)。同時(shí)在中斷返回前必須使電平變高,否則將會(huì)再次產(chǎn)生中斷。位地址TCON-定時(shí)器/計(jì)數(shù)器(T0,T1)控制器(88H)T44SCON-串行口控制寄存器(98H)
當(dāng)發(fā)送和接收中任何一個(gè)標(biāo)志被置位時(shí),都可以向CPU提出申請(qǐng)。必須在中斷服務(wù)程序中判斷,并由軟件將RI和TI標(biāo)志位清0。發(fā)送中斷標(biāo)志接收中斷標(biāo)志TIRISCON9F9E9D9C9B9A9998位地址一幀數(shù)據(jù)發(fā)送完畢置“1”TI,請(qǐng)求CPU發(fā)送下一幀一幀數(shù)據(jù)接收完畢置“1”RI,請(qǐng)求CPU取走數(shù)據(jù)通常情況的中斷源:I/O外設(shè)、硬件故障、實(shí)時(shí)時(shí)鐘等SCON-串行口控制寄存器(98H)當(dāng)發(fā)送和接收45§5.3.2中斷控制IE-中斷允許寄存器(A8H)EA--ESET1EX1ET0EX0IEAFAEADACABAAA9A8中斷允許標(biāo)志0禁止所有中斷1開(kāi)放中斷外部中斷01允許中斷外部中斷11允許中斷T0的溢出中斷1允許中斷T1的溢出中斷1允許中斷串行口中斷允許位1允許中斷位地址一、中斷允許控制§5.3.2中斷控制IE-中斷允許寄存器(A8H)EA46例:假設(shè)允許片內(nèi)定時(shí)器/計(jì)數(shù)器中斷,禁止其他中斷。試根據(jù)假設(shè)條件設(shè)置IE的相應(yīng)值。解:(IE)=10001010B=8AH(a)用字節(jié)操作指令MOVIE,#8AH;或MOV0A8H,#8AH;(b)用位操作指令SETBET0;定時(shí)器/計(jì)數(shù)器0允許中斷SETBET1;定時(shí)器/計(jì)數(shù)器1允許中斷SETBEA;CPU開(kāi)中斷例:假設(shè)允許片內(nèi)定時(shí)器/計(jì)數(shù)器中斷,禁止其他中斷。試根據(jù)假設(shè)47二、中斷優(yōu)先級(jí)控制中斷系統(tǒng)提供兩個(gè)中斷優(yōu)先級(jí)每一個(gè)中斷源都可編程設(shè)置為高優(yōu)先級(jí)或低優(yōu)先級(jí),以便實(shí)現(xiàn)二級(jí)中斷嵌套。中斷優(yōu)先級(jí)是由IP控制的,IP格式如下:---PSPT1PX1PT0PX0IPBFBEBDBCBBBAB9B8外部中斷0優(yōu)先級(jí)外部中斷1優(yōu)先級(jí)T0中斷優(yōu)先級(jí)T1中斷優(yōu)先級(jí)串行口中斷優(yōu)先級(jí)位地址Di=1設(shè)高優(yōu)先級(jí)Di=0設(shè)低優(yōu)先級(jí)B8H字節(jié)地址二、中斷優(yōu)先級(jí)控制中斷系統(tǒng)提供兩個(gè)中斷優(yōu)先級(jí)--48中斷優(yōu)先級(jí)排列順序中斷系統(tǒng)內(nèi)具有兩級(jí)優(yōu)先級(jí),遵循以下兩條基本規(guī)則:(1)低優(yōu)先級(jí)中斷源可被高優(yōu)先級(jí)中斷源所中斷。(2)一種中斷源一旦得到響應(yīng),與它同級(jí)的中斷源不能再中斷它。同時(shí)收到幾個(gè)同一優(yōu)先級(jí)的中斷,其優(yōu)先級(jí)排列如下:
中斷源同級(jí)內(nèi)的中斷優(yōu)先級(jí)
外部中斷0 最高
T0溢出中斷
外部中斷1
T1溢出中斷
串行口中斷 最低中斷優(yōu)先級(jí)排列順序中斷系統(tǒng)內(nèi)具有兩級(jí)優(yōu)先級(jí),遵循以下兩條基本49
二級(jí)中斷嵌套CPU在執(zhí)行主程序低級(jí)中斷請(qǐng)求響應(yīng)低級(jí)中斷請(qǐng)求CPU執(zhí)行低級(jí)中斷服務(wù)程序高級(jí)中斷請(qǐng)求響應(yīng)高級(jí)中斷請(qǐng)求CPU執(zhí)行高級(jí)中斷服務(wù)程序返回低級(jí)中斷程序返回主程序二級(jí)中斷嵌套CPU在執(zhí)行主程序低級(jí)中響應(yīng)低級(jí)中斷請(qǐng)求CPU50例:設(shè)8031的片外中斷為高優(yōu)先級(jí),片內(nèi)中斷為低優(yōu)先級(jí)。設(shè)置IP相應(yīng)值。解:(IP)=00000101B=05H(a)用字節(jié)操作指令
MOVIP,#05H;或MOV0B8H,#05H;(b)用為操作指令
SETBPX0SETBPX1CLRPSCLRPT0CLRPT1例:設(shè)8031的片外中斷為高優(yōu)先級(jí),片內(nèi)中斷為低優(yōu)先級(jí)。設(shè)置5189C51中斷系統(tǒng)89C51中斷系統(tǒng)52一、響應(yīng)中斷的條件
CPU在每個(gè)機(jī)器周期的S5P2時(shí)刻采樣中斷標(biāo)志,而在下一個(gè)機(jī)器周期對(duì)采樣到的中斷進(jìn)行處理。按優(yōu)先級(jí)高低,中斷系統(tǒng)將控制轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。(3)當(dāng)前正在執(zhí)行的指令是返回(RETI)指令或是對(duì)IE或IP進(jìn)行讀/寫的指令。(2)現(xiàn)行的機(jī)器周期不是當(dāng)前所執(zhí)行指令的最后一個(gè)機(jī)器周期。§5.4中斷響應(yīng)及中斷處理過(guò)程封鎖CPU對(duì)中斷響應(yīng)的條件:(1)CPU正在處理同級(jí)的或高一級(jí)的中斷一、響應(yīng)中斷的條件CPU在每個(gè)機(jī)器周期的S5P2時(shí)53中斷響應(yīng)時(shí)間CPU不是在任何情況下都對(duì)中斷請(qǐng)求予以響應(yīng),而不同的情況下對(duì)中斷響應(yīng)的時(shí)間是不同的。對(duì)于順利的中斷響應(yīng),其最短的響應(yīng)時(shí)間為3個(gè)機(jī)器周期。對(duì)于受阻的中斷響應(yīng),則響應(yīng)時(shí)間會(huì)更長(zhǎng)一些。若中斷系統(tǒng)只有一個(gè)中斷源,則響應(yīng)時(shí)間為3~8個(gè)機(jī)器周期之間。中斷響應(yīng)時(shí)間CPU不是在任何情況下都對(duì)中斷請(qǐng)求予以響應(yīng),而不54二、中斷響應(yīng)過(guò)程⑴把當(dāng)前PC值壓入堆棧,保護(hù)斷點(diǎn)。⑵將相應(yīng)的中斷服務(wù)程序的入口地址送入PC。⑶對(duì)有些中斷源,CPU會(huì)自動(dòng)清除中斷標(biāo)志。⑷執(zhí)行中斷服務(wù)程序。⑸執(zhí)行到返回指令RETI,中斷服務(wù)程序結(jié)束,將堆棧內(nèi)容彈出到PC,返回到原來(lái)斷點(diǎn)繼續(xù)執(zhí)行。三、中斷源入口地址外部中斷00003H定時(shí)器/計(jì)數(shù)器0000BH外部中斷10013H定時(shí)器/計(jì)數(shù)器1001BH串行口0023H二、中斷響應(yīng)過(guò)程⑴把當(dāng)前PC值壓入堆棧,保護(hù)斷點(diǎn)。三、中55TF1TF0IE1IT1IE0IT08F8E8D8C8B8A8988TCON外中斷1請(qǐng)求標(biāo)志外部中斷1(INT1)觸發(fā)方式控制外部中斷0(INT1)觸發(fā)方式控制外中斷0請(qǐng)求標(biāo)志若ITi=1至少一個(gè)機(jī)器周期高電平,一個(gè)機(jī)器(下降沿觸發(fā))周期低電平。若ITi=0,保持低電平直到中斷被響應(yīng)為止。(低電平觸發(fā))中斷返回前必須使電平變高。位地址無(wú)論何種方式,轉(zhuǎn)入中斷后,由硬件清0中斷請(qǐng)求標(biāo)志?!?.5關(guān)于外部中斷TF1TF056§5.6中斷程序舉例一、中斷程序框架
ORG0000H AJMPMAIN
ORG0003H AJMPINT ORG0050H MAIN: MOVSP,#60H MOVIP,#data1;設(shè)置中斷優(yōu)先級(jí) MOVIE,#data2;中斷開(kāi)放 SETBITX;沿觸發(fā)或電平觸發(fā)
︰ INT:︰
;中斷服務(wù)程序RETIEND §5.6中斷程序舉例一、中斷程序框架 ORG00571.查詢方式
ORG0000H AJMPMAIN ORG0050HMAIN: MOVA,#00H MOVP1,AKK: JNBP3.2,WW SJMPKKWW: CPLAMOVP1,AJNBP3.2,$ SJMPKK END例1:按一次全亮,再按一次全黑二、應(yīng)用舉例1.查詢方式 ORG0000H例1:按一次全亮,再按一582.中斷方式
ORG0000H AJMPMAIN
ORG0003H AJMPINT ORG0050H MAIN: MOVSP,#60H
MOVIE,#10000001B;或SETBEA,EX0
SETBIT0;下降沿觸發(fā) MOVA,#00H MOVP1,A INT:CPLA SJMP$ MOVP1,A
RETIEND 2.中斷方式 ORG0000H591.結(jié)合電路圖,讀下列程序,說(shuō)明其功能。MOVA,#03HML:MOVP1,AACALLDL CPLASJMPMLDL:MOVR7,#0A3HDL1:MOVR6,#0FFH DL6:DJNZR6,DL6 DJNZR7,DL1 RET
2.如果想通過(guò)按鍵控制紅綠燈的切換,硬件應(yīng)該怎樣改電路圖,軟件怎樣編程序?例2:1.結(jié)合電路圖,讀下列程序,說(shuō)明其功能。2.如果想通過(guò)按60MOVA,#03HMOVP1,ADDD:JBP3.2,DDDCPLAMOVP1,ADD1:JNBP3.2,DD1 SJMPDDD
3.如果想通過(guò)中斷方式實(shí)現(xiàn)上述功能,軟件怎樣編程序?仿前例。MOVA,#03H3.如果想通61
ORG0000H AJMPMAIN
ORG0003H AJMPINT ORG0050HMAIN: MOVSP,#60H
MOVIE,#10000001B;
SETBIT0;下降沿觸發(fā) MOVA,#03H MOVP1,A SJMP$
INT:CPLA
MOVP1,A
RETI
END ORG0000H62例3:某8051單片機(jī)定時(shí)采樣壓力、溫度信號(hào)。定時(shí)用T0實(shí)現(xiàn),壓力超限和溫度超限的報(bào)警信號(hào)分別由INT0、INT1引腳輸入,中斷優(yōu)先級(jí)排列順序依次為:壓力溫度定時(shí)確定IE、IP控制字,并編寫初始化程序。
ORG0000H AJMPM ORG0003H AJMPINTA ORG000BH AJMPTIMER0 ORG0013H AJMPINTB ORG0050HM:MOVIP,#00000101BSETBIT0;下降沿觸發(fā) MOVIE,#10000111B;或SETBEA,EX0例3:某8051單片機(jī)定時(shí)采樣壓力、溫度信號(hào)。定時(shí)用T0實(shí)現(xiàn)63例4:某工業(yè)監(jiān)控系統(tǒng),具有溫度、壓力、PH值等多路監(jiān)控功能。當(dāng)PH值<7時(shí),將向CPU申請(qǐng)中斷,CPU響應(yīng)中斷后令P3.0輸出高電平,經(jīng)驅(qū)動(dòng)使加堿管道電磁閥接通一秒,以調(diào)整PH值,請(qǐng)?jiān)O(shè)計(jì)軟件。
撤申請(qǐng)P1.6例4:某工業(yè)監(jiān)控系統(tǒng),具有溫度、壓力、PH值等多路監(jiān)控64
ORG0000H AJMPM ORG0003H AJMPIT0 ORG0030HM:MOVIE,#81H;CLRIT0;電平觸發(fā) ……………HE:SJMPHE ORG0050HIT0:JBP1.0,TE1;溫度1 JBP1.1,TE2;溫度2 JBP1.2,PH;PH JBP1.3,PL;壓力
…………… ORG0080HPH:PUSHPSW PUSHA SETBP3.0 ACALLDELAY1S CLEARP3.0 ANLP1,#0BFH;撤申請(qǐng)ORLP1,#40HPOPA POPPSW RETIEND ORG0000H ……………65例5:外部中斷實(shí)驗(yàn):
如圖所示,將P1口的P1.4~P1.7作為輸入位,P1.0~P1.3作為輸出位。要求利用8031將開(kāi)關(guān)所設(shè)的數(shù)據(jù)讀入單片機(jī)內(nèi),并依次通過(guò)P1.0~P1.3輸出,驅(qū)動(dòng)發(fā)光二極管,以檢查P1.4~P1.7輸入的電平情況(若輸入為高電平則相應(yīng)的LED亮)。
現(xiàn)要求采用中斷邊沿觸發(fā)方式,每中斷一次,完成一次讀/寫操作。例5:外部中斷實(shí)驗(yàn):66P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0INT08031
+5V+5V+5V+5V+5V&&12S1例:采用外部中斷0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案集錦
- 小學(xué)生詩(shī)詞大會(huì)試題課件
- 復(fù)習(xí)鞏固06 實(shí)驗(yàn)的基礎(chǔ)知識(shí)及儀器的使用(解析版)-2025版高三物理寒假精-品講義
- 攔網(wǎng)技術(shù) 說(shuō)課稿-2023-2024學(xué)年高一上學(xué)期體育與健康人教版必修第一冊(cè)001
- 泰山版(2024)小學(xué)信息技術(shù)三年級(jí)上冊(cè)《黃河文化網(wǎng)上搜》說(shuō)課稿
- 湖北省咸豐縣坪壩營(yíng)初中2024-2025學(xué)年上學(xué)期七年級(jí)期末模擬數(shù)學(xué) 試卷含答案
- 公司工程安全培訓(xùn)課件
- 湛江酒店培訓(xùn)課件
- 高中信息技術(shù)教科版必修 說(shuō)課稿- 6.3 信息交流
- 四年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)及答案匯編
- 新能源發(fā)電技術(shù) 課件 第6章 地?zé)岚l(fā)電
- 人教版八年級(jí)音樂(lè)上冊(cè) 第一單元 《拉起手》 教案
- 《馬克思主義基本原理》學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 《旅游大數(shù)據(jù)》-課程教學(xué)大綱
- 工藝以及質(zhì)量保證措施,工程實(shí)施的重點(diǎn)、難點(diǎn)分析和解決方案
- 2024至2030年中國(guó)購(gòu)物商場(chǎng)行業(yè)市場(chǎng)深度調(diào)查與投資發(fā)展研究報(bào)告
- 期末測(cè)試(試題)2023-2024學(xué)年五年級(jí)上冊(cè)數(shù)學(xué)人教版
- 七年級(jí)上冊(cè)道德與法治第1-4單元共4個(gè)單元復(fù)習(xí)教學(xué)設(shè)計(jì)
- SY-T 5412-2023 下套管作業(yè)規(guī)程
- 《天然藥物學(xué)基礎(chǔ)》復(fù)習(xí)考試題庫(kù)(帶答案)
- 四色安全風(fēng)險(xiǎn)空間分布圖設(shè)計(jì)原則和要求
評(píng)論
0/150
提交評(píng)論