第五章MCS-51中斷系統(tǒng)_第1頁(yè)
第五章MCS-51中斷系統(tǒng)_第2頁(yè)
第五章MCS-51中斷系統(tǒng)_第3頁(yè)
第五章MCS-51中斷系統(tǒng)_第4頁(yè)
第五章MCS-51中斷系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第五章MCS-51中斷系統(tǒng)§5.1中斷的概念§5.2MCS-51中斷系統(tǒng)的實(shí)現(xiàn)結(jié)構(gòu)§5.3中斷請(qǐng)求源§5.4中斷控制§5.5中斷響應(yīng)§5.6外部中斷的響應(yīng)時(shí)間§5.7外部中斷的觸發(fā)方式選擇§5.8中斷請(qǐng)求的撤消§5.9中斷服務(wù)程序的設(shè)計(jì)§5.10多外部中斷源系統(tǒng)設(shè)計(jì)§5.1中斷的概念

中斷的概念

中斷就是計(jì)算機(jī)處理一種異步突發(fā)性事件的功能。即CPU正在處理某件事情(程序)的時(shí)候,外部發(fā)生需CPU迅速去處理的異步事件時(shí),CPU能中斷當(dāng)前程序,轉(zhuǎn)入處理異步事件的程序,處理完后再返回到原被中斷的程序處,繼續(xù)原來(lái)的程序執(zhí)行。在CPU中實(shí)現(xiàn)該功能的部件為中斷系統(tǒng)?!?.2MCS-51中斷系統(tǒng)的結(jié)構(gòu)中斷系統(tǒng)結(jié)構(gòu)§5.3中斷請(qǐng)求源一.中斷源外部中斷INT0外部中斷INT1內(nèi)部定時(shí)器/計(jì)數(shù)器T0內(nèi)部定時(shí)器/計(jì)數(shù)器T1內(nèi)部定時(shí)器/計(jì)數(shù)器T2內(nèi)部串行通訊口RI/TI§5.3中斷請(qǐng)求源二.中斷源信號(hào)鎖存特殊寄存器TCON、SCON(88H、98H、0C8H)TF0、TF1內(nèi)部定時(shí)器溢出中斷標(biāo)志,“1”中斷請(qǐng)求有效IE0、IE1外部有中斷請(qǐng)求標(biāo)志,“1”中斷請(qǐng)求有效IT1、IT0外部中斷請(qǐng)求輸入信號(hào)形式選擇控制位,IT1=1,則外部輸入下降邊沿觸發(fā)方式,IT1=0,則外部輸入低電平觸發(fā)方式。外部中斷請(qǐng)求輸入信號(hào)由CPU在每一個(gè)機(jī)器周期的S5P2采樣,若IT1=0,則輸入為低電平使IE1置“1”,若IT1=1,則第一次為高電平,第二次為低電平使IE1置“1”。一個(gè)中斷有效脈沖寬度須保持12個(gè)振蕩周期。TF1TF0IE1IT1IE0IT0D7D0TF1TF0IE1IT1IE0IT0D7D0§5.3中斷請(qǐng)求源二.中斷源信號(hào)鎖存特殊寄存器TCON、SCON、T2CON

(88H、98H、0C8H

)TF2:T2的計(jì)數(shù)滿的中斷標(biāo)志。EXF2:T2外部中斷標(biāo)志。T2CON中其余各位的功能請(qǐng)參閱有關(guān)T2的功能資料。SCONTI:串行口發(fā)送完一個(gè)數(shù)據(jù)的中斷標(biāo)志,當(dāng)串行口發(fā)送完一個(gè)數(shù)據(jù),則TI=1。RI:串行口接收完一個(gè)數(shù)據(jù)的中斷標(biāo)志,當(dāng)串行口接收完一個(gè)數(shù)據(jù),則RI=1。T2CON§5.4中斷控制一.中斷使能寄存器IE(A8H)

當(dāng)中斷請(qǐng)求信號(hào)輸入時(shí),CPU是否響應(yīng)該中斷,可以由中斷允許使能寄存器的某一位控制。EACPU的中斷開(kāi)放標(biāo)志。EA=0,關(guān)蔽所有的中斷申請(qǐng),EA=1,允許所以的中斷源的中斷。ES

行口中斷允許位。ES=0,禁止中斷,ES?EA=1,允許。ET1、ET0

定時(shí)器/計(jì)數(shù)器中斷允許位。ET1=0,禁止中斷,ET1?EA=1,允許。EX1、EX0

外部中斷允許位。EX1=0,禁止中斷,EX1?EA=1,允許。

EAESET1EX1ET0EX0D7D0§5.4中斷控制一.中斷使能寄存器IE(A8H)

中斷允許寄存器的內(nèi)容可以由置位和清零以及立即數(shù)傳送指令改變。例4.1假設(shè)允許片內(nèi)定時(shí)器/計(jì)數(shù)器中斷,禁止其它中斷源的中斷請(qǐng)求。試根據(jù)假設(shè)條件設(shè)置IE的相應(yīng)值。解:(1)CLRES(2)MOVIE,#8AHCLREX1CLREX0SETBET1SETBET0SETBEA§5.4中斷控制二.中斷優(yōu)先級(jí)當(dāng)CPU正在處理中斷事件程序,此時(shí)又發(fā)生異步突發(fā)事件需要CPU處理,這時(shí)CPU是否響應(yīng),則由中斷優(yōu)先級(jí)控制器決定。高級(jí)別中斷源可以中斷低級(jí)別的中斷源。MCS-51有兩個(gè)中斷優(yōu)先級(jí),實(shí)現(xiàn)二級(jí)中斷嵌套。1.優(yōu)先級(jí)寄存器IP(0B8H)

MCS-51的每一中斷源的中斷優(yōu)先級(jí)可由中斷優(yōu)先級(jí)選擇寄存器的某一位內(nèi)容決定。PS

串行口中斷優(yōu)先級(jí)控制位,PS=1,則為高級(jí)中斷。PT1、PT0定時(shí)/計(jì)數(shù)器1、0中斷優(yōu)先級(jí)控制位,PT1=1,則為高級(jí)中斷。PX1、PX0外部中斷1、0中斷優(yōu)先級(jí)控制位,PX1=1,則為高級(jí)中斷。PSPT1PX1PT0PX0D7D0§5.4中斷控制二.中斷優(yōu)先級(jí)

2.同級(jí)中斷源的優(yōu)先級(jí)同級(jí)中斷源的優(yōu)先級(jí)別,如圖所示?!?.4中斷控制二.中斷優(yōu)先級(jí)例4.2設(shè)置IP寄存器的初始值,使得CPU的兩個(gè)外中斷為高優(yōu)先級(jí),其它中斷為低優(yōu)先級(jí)。解:(1)SETBPX0(2)MOVIP,#05HSETBPX1CLRPSCLRPT0CLRPT1§5.5中斷響應(yīng)一.中斷響應(yīng)

MCS-51的CPU在每一個(gè)機(jī)器周期的S6按順序檢查每一個(gè)中斷源標(biāo)志。如果查詢(xún)到被激活(中斷允許標(biāo)志為“1”)的中斷請(qǐng)求(該中斷源標(biāo)志為“1”),并且沒(méi)有下面的阻止條件,則在下一個(gè)機(jī)器周期的開(kāi)始狀態(tài)按優(yōu)先級(jí)別響應(yīng)中斷請(qǐng)求。阻止中斷響應(yīng)的條件:CPU正在處理相同的或更高優(yōu)先級(jí)的中斷,(同級(jí)或更高級(jí)中斷程序處理完才能響應(yīng)新的中斷程序)?,F(xiàn)行的機(jī)器周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期,(當(dāng)前指令執(zhí)行完畢才能響應(yīng)中斷)。CPU正在執(zhí)行RETI或?qū)E、IP的寫(xiě)操作指令,(這條指令執(zhí)行完后,需再執(zhí)行一條指令后才能響應(yīng)中斷)§5.5中斷響應(yīng)二.中斷響應(yīng)過(guò)程(中斷入口地址)

CPU響應(yīng)中斷,即轉(zhuǎn)入執(zhí)行中斷程序,進(jìn)入中斷程序的方法是自動(dòng)執(zhí)行一條子程序調(diào)用指令“LCALLaddr16”,調(diào)用指令的地址是由CPU的硬件規(guī)定(固定)。MCS-51中斷程序入口地址是:中斷源入口地址外部中斷00003H

定時(shí)/計(jì)數(shù)器T0000BH

外部中斷10013H

定時(shí)/計(jì)數(shù)器T1001BH

串行口中斷0023H

定時(shí)/計(jì)數(shù)器T2002BH

例響應(yīng)外部中斷1的長(zhǎng)調(diào)用指令為:

LCALL0013H§5.6外部中斷的響應(yīng)時(shí)間外部中斷的響應(yīng)時(shí)間

CPU從INT0或INT1采樣到中斷信號(hào)到開(kāi)始響應(yīng)中斷需一個(gè)機(jī)器周期,CPU從開(kāi)始響應(yīng)中斷到進(jìn)入中斷服務(wù)程序須兩個(gè)(執(zhí)行一條子程序調(diào)用指令需二個(gè)機(jī)器周期)。所以整個(gè)中斷響應(yīng)時(shí)間最少需要三個(gè)完整的機(jī)器周期。若CPU采樣到中斷信號(hào),而CPU正在執(zhí)行RETI或?qū)E和IP寫(xiě)數(shù)據(jù)指令(這些指令需二個(gè)機(jī)器周期),并且后面跟的是DIV或MUL指令(這些指令需四個(gè)機(jī)器周期),再加一條子程序調(diào)用指令(二個(gè)機(jī)器周期),所以需要8個(gè)機(jī)器周期。如果中斷請(qǐng)求被前面列出的第一條件所阻止,則中斷響應(yīng)需要跟長(zhǎng)的時(shí)間。該情況下中斷響應(yīng)時(shí)間由同級(jí)或高級(jí)的中斷程序的執(zhí)行時(shí)間決定。§5.7外部中斷觸發(fā)方式的選擇外部中斷的觸發(fā)有兩種方式:電平觸發(fā)方式和邊沿觸發(fā)方式外部中斷觸發(fā)方式使用要求1)電平觸發(fā)方式外部中斷輸入信號(hào)必須有效(保持低電平),直至CPU實(shí)際響應(yīng)中斷為止。中斷服務(wù)程序結(jié)束返回之前,應(yīng)使中斷請(qǐng)求信號(hào)變成無(wú)效,否則CPU返回后會(huì)再一次響應(yīng)。2)邊沿觸發(fā)方式一個(gè)中斷有效脈沖寬度須保持12個(gè)振蕩周期。才能被CPU在兩個(gè)機(jī)器周期的S5P2處采樣到,并將中斷請(qǐng)求標(biāo)志IE0(或IE1)自動(dòng)置為“1”。中斷響應(yīng)后,中斷請(qǐng)求信號(hào)IE0(或IE1)由硬件自動(dòng)清零?!?.8中斷請(qǐng)求信號(hào)的撤消一.定時(shí)器/計(jì)數(shù)器中斷請(qǐng)求的撤消定時(shí)器/計(jì)數(shù)器的中斷請(qǐng)求被響應(yīng)后,CPU會(huì)自動(dòng)清中斷請(qǐng)求標(biāo)志位(TF0或TF1),因此中斷請(qǐng)求自動(dòng)撤消。二.外部中斷請(qǐng)求的撤消

1.邊沿方式觸發(fā)請(qǐng)求中斷中斷請(qǐng)求被響應(yīng)后,CPU會(huì)自動(dòng)清中斷請(qǐng)求標(biāo)志位(IE0或IE1),此時(shí)外部中斷輸入脈沖已消失,因此中斷請(qǐng)求自動(dòng)撤消。

2.電平方式觸發(fā)請(qǐng)求中斷中斷請(qǐng)求被響應(yīng)后,CPU會(huì)自動(dòng)清中斷請(qǐng)求標(biāo)志位(IE0或IE1),

此時(shí)如外部中斷輸入電平繼續(xù)有效,中斷標(biāo)志會(huì)再次置“1”,因此中斷請(qǐng)求不能自動(dòng)撤消,所以應(yīng)該將中斷低電平撤消才能撤消中斷請(qǐng)求。實(shí)現(xiàn)電路如圖所示。INT0P1.0QDCPSDSETBP1.0CLRP1.0SETBP1.0外部中斷請(qǐng)求信號(hào)SD外部中斷請(qǐng)求信號(hào)外部中斷請(qǐng)求信號(hào)§5.9中斷服務(wù)程序設(shè)計(jì)一.中斷服務(wù)程序設(shè)計(jì)的任務(wù)1.設(shè)置中斷允許控制寄存器IE2.設(shè)置中斷優(yōu)先級(jí)寄存器IP3.若是外部中斷源,還設(shè)置中斷請(qǐng)求的觸發(fā)方式IT1或IT04.編寫(xiě)中斷服務(wù)程序,處理中斷請(qǐng)求功能5.前三條程序一般放在主程序的初始化程序段中。例6.3假設(shè)允許外部中斷0中斷,并設(shè)定它為高級(jí)中斷,其它中斷源為低級(jí)中斷,采用邊沿觸發(fā)方式。解:(1)SETBEA(2)MOVIE,#81HSETBEX0MOVIP,#01HSETBPX0MOVTCON,#01HSETBIT0

100000010000000100000001§5.9中斷服務(wù)程序設(shè)計(jì)二.采用中斷時(shí)的主程序結(jié)構(gòu)常用中斷時(shí)的主程序結(jié)構(gòu)如下:

ORG0000HLJMPMAIN:ORG中斷入口地址(如果是外部中斷1,則為0013H)

LJMPINT:MAIN:主程序:INT:中斷服務(wù)程序:注意:對(duì)于多個(gè)中斷請(qǐng)求,就有多個(gè)對(duì)應(yīng)的“ORG中斷入口地址”,并且這多個(gè)中斷入口地址應(yīng)由小到大排列§5.9中斷服務(wù)程序設(shè)計(jì)三.中斷服務(wù)程序的流程結(jié)構(gòu)1.現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù)

PUSHACCPUSHPSW…POPPSWPOPACC2.關(guān)中斷和開(kāi)中斷

CLREA…SETBEA3.中斷處理4.中斷返回

RETI右邊程序流程圖用程序表示為:關(guān)中斷現(xiàn)場(chǎng)保護(hù)開(kāi)中斷中斷處理關(guān)中斷現(xiàn)場(chǎng)恢復(fù)開(kāi)中斷中斷返回INT:CLREAPUSHPSWPUSHACCSETBEA

CLREAPOPACCPOPPSWSETBEARETI中斷服務(wù)處理程序§5.9中斷服務(wù)程序設(shè)計(jì)若在一個(gè)MCS-51單片機(jī)應(yīng)用系統(tǒng)中,有四個(gè)中斷源,其中有外部中斷源INT0、INT1,定時(shí)器/計(jì)數(shù)器中斷源T0和T1。INT0為高級(jí)中斷,中斷信號(hào)為低電平信號(hào),中斷服務(wù)子程序入口地址(即存儲(chǔ)地址)為6000h;INT1為低級(jí)中斷,中斷信號(hào)為負(fù)脈沖信號(hào),中斷服務(wù)子程序的入口地址(存儲(chǔ)地址)為7000h;T0和T1均為高級(jí)中斷,它們的中斷服務(wù)子程序的入口地址(即存儲(chǔ)地址)分別為8000h和9000h。設(shè)系統(tǒng)中其它的中斷源不工作。要求:(1)編一段實(shí)現(xiàn)上述功能的中斷系統(tǒng)初始化程序。(2)如外部中斷INT0中斷產(chǎn)生時(shí),將外部數(shù)據(jù)存儲(chǔ)器8000H開(kāi)始的存儲(chǔ)器內(nèi)存放的10個(gè)數(shù)送到內(nèi)部數(shù)據(jù)存儲(chǔ)器40H到49H的單元里,傳送過(guò)中判斷是0則停止傳送。§5.9中斷服務(wù)程序設(shè)計(jì)解:(1)決定中斷功能寄存器的控制值

TCON=00000100

或IT0=0,IT1=1IE=10001111

或EA=1,EX0=1,EX1=1,

ET0=1,ET1=1IP=00001011

或PX0=1,PX1=0,PT0=1,PT1=1TMOD=00000000

§5.9中斷服務(wù)程序設(shè)計(jì)

(2)決定中斷入口地址

ORG0000HLJMPMAIN

ORG0003HLJMPINT0

ORG000BHLJMPT0

ORG0013HLJMPINT1

ORG001BHLJMPT1

:§5.9中斷服務(wù)程序設(shè)計(jì)

(3)編寫(xiě)中斷初始化主程序段

ORG0040hORG0040HMAIN:MOVSP,#60HMAIN:MOVSP,#60HMOVTCON,#04HCLRIT0MOVIE,#8FHSETBIT1MOVIP,#0BHSETBEA

:SETBEX0SETBEX1SETBET0SETBET1SETBPX0CLRPX1SETBPT0SETBPT1:§5.9中斷服務(wù)程序設(shè)計(jì)(4)編寫(xiě)外部中斷0(INN0)中斷服務(wù)字程序

ORG6000H INT0:PUSHACCPUSHPSWCLRRS0;改變工作寄存區(qū)

SETBRS1 MOVR0,#40H ;基礎(chǔ)地址

MOVR2,#10 ;傳遞數(shù)據(jù)的數(shù)量

MOVDPTR,#8000H ;數(shù)據(jù)地址LOOP:MOVXA,@DPTR;傳送循環(huán)

JZEXIT_LOOP ;遇到0跳出程序

MOV@R0,A INCR0 ;改變指針

INCDPTR DJNZR2,LOOPEXIT_LOOP:POPPSWPOPACC RETI§5.9中斷服務(wù)程序設(shè)計(jì)

其它中斷服務(wù)子程序

ORG7000HINT1:

ORG8000HT0::ORG9000HT1::§5.10多外部中斷源系統(tǒng)設(shè)計(jì)一.中斷和查詢(xún)結(jié)合的方法ORG0013HLJMPINT1:INT1:PUSHPSWPUSHACCJNBP1.0,IR1JNBP1.1,IR2JNBP1.2,IR3NJBP1.3,IR4INTIR:POP

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論