單片機原理及智能儀表技術(shù)第6章中斷系統(tǒng)_第1頁
單片機原理及智能儀表技術(shù)第6章中斷系統(tǒng)_第2頁
單片機原理及智能儀表技術(shù)第6章中斷系統(tǒng)_第3頁
單片機原理及智能儀表技術(shù)第6章中斷系統(tǒng)_第4頁
單片機原理及智能儀表技術(shù)第6章中斷系統(tǒng)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

⒈實現(xiàn)CPU與外部設(shè)備的速度配合⒉實現(xiàn)實時控制⒊實現(xiàn)故障的及時發(fā)現(xiàn)及處理⒋實現(xiàn)人機聯(lián)系6中斷系統(tǒng)一、中斷的主要功能1.什么是中斷2.什么是中斷源3.什么是中斷優(yōu)先級4.什么是中斷嵌套5.MCS-51單片機中斷系統(tǒng)概述二、中斷的概念日常中斷的例子你正在專心看書,突然電話鈴響,于是你記下正在看的書的頁數(shù),去接電話,接完電話后再回來接著看書。中斷響應(yīng)的過程中斷響應(yīng)流程圖MCS-51單片機的中斷系統(tǒng)能處理5種事件,外部中斷0、外部中斷1、定時器T0溢出中斷、定時器T1溢出中斷、串口中斷。中斷方式優(yōu)點:大大地提高了CPU的工作效率。6.1.1中斷請求源6.1中斷請求源和中斷請求標(biāo)志中斷源就是中斷請求信號產(chǎn)生的源頭。

MCS-51單片機中斷系統(tǒng)有5個中斷源,其中3個在片內(nèi),2個在片外。

(1)外部中斷源

1)/INT0:外部中斷0中斷請求,由P3.2端口線引入,低電平或下降沿引起。

2)/INT1:外部中斷1中斷請求,由P3.3端口線引入,低電平或下降沿引起。

(2)內(nèi)部中斷源

1)T0:定時/計數(shù)器0中斷,由T0計數(shù)溢出引起。

2)T1:定時/計數(shù)器1中斷,由T1計數(shù)溢出引起。

3)TI/RI:串行I/O中斷,完成一幀字符發(fā)送/接收引起6.1.2中斷標(biāo)志及結(jié)構(gòu)每一個中斷源都對應(yīng)一個中斷請求標(biāo)志位,用于指示中斷的狀態(tài)。由特殊功能寄存器TCON和SCON來鎖存管理。

1、定時器控制寄存器TCON(88H)圖1.23定時器控制寄存器TCON定時器控制寄存器除了具有定時器運行/停止控制功能外,同時也鎖存定時器0、1,外部中斷0、1的中斷標(biāo)志。各標(biāo)志位的功能:(1)IT0—外部中斷0觸發(fā)方式選擇位。IT0=0,為電平觸發(fā)方式。IT0=1,為跳沿觸發(fā)方式??捎绍浖谩?”或清“0”。(2)IE0—外部中斷0的中斷請求標(biāo)志位。IE0=0,無中斷請求。IE0=1,外部中斷0有中斷請求。當(dāng)CPU響應(yīng)該中斷,轉(zhuǎn)向中斷服務(wù)程序時,由硬件清“0”IE0。(3)IT1—外部中斷1觸發(fā)方式選擇位。意義與IT0類似。(4)IE1—外部中斷1的中斷請求標(biāo)志位,意義與IE0類似。(5)TF0—T0溢出中斷請求標(biāo)志位。T0計數(shù)后,當(dāng)最高位產(chǎn)生溢出時,由硬件置“1”TF0,向CPU申請中斷,CPU響應(yīng)TF0中斷時,清“0”TF0,TF0也可由軟件清0。(6)TF1—T1的溢出中斷請求標(biāo)志位,功能和TF0類似。TR1、TR02個位與中斷無關(guān)。當(dāng)MCS-51復(fù)位后,TCON被清0,則CPU關(guān)中斷,所有中斷請求被禁止。

2、串行口控制寄存器SCON(98H)串行口控制寄存器除了具有串口控制功能外,同時也鎖存了串口發(fā)送和接收中斷標(biāo)志位,其格式如圖1.24所示。圖1.24串行口控制寄存器SCON各標(biāo)志位的功能:(1)TI—發(fā)送中斷請求標(biāo)志位。串口每發(fā)送完一幀串行數(shù)據(jù)后,硬件自動置“1”TI。必須在中斷服務(wù)程序中用軟件對TI標(biāo)志清“0”。(2)RI—接收中斷請求標(biāo)志位。串口接收完一個數(shù)據(jù)幀,硬件自動置“1”RI標(biāo)志。必須在中斷服務(wù)程序中用軟件對RI標(biāo)志清“0”。

6.2中斷控制與管理

1、中斷允許寄存器IE(A8H)圖1.21中斷允許寄存器IE

IE字節(jié)地址A8H,位地址分別是A8H~AFH。IE控制各中斷源的開放或禁止。MCS51單片機對中斷的開放和關(guān)閉實行兩級控制。所謂兩級控制是指有一個中斷允許總控制位EA,配合各中斷源的中斷允許控制位共同實現(xiàn)對中斷請求的控制。其格式如圖1.21所示。利用位操作指令SETB和CLR設(shè)置IE寄存器狀態(tài),從而控制各中斷源的開發(fā)和禁止。舉例開放和關(guān)閉中斷。IE中各位的功能如下:(1)EA:中斷允許總控制位。

0:CPU屏蔽所有的中斷請求(CPU關(guān)中斷);

1:CPU開放所有中斷(CPU開中斷)。(2)ES:串行口中斷允許位

0:禁止串行口中斷;

1:允許串行口中斷。(3)ET1:定時器/計數(shù)器T1的溢出中斷允許位

0:禁止T1溢出中斷;

1:允許T1溢出中斷。(4)EX1:外部中斷1中斷允許位

0:禁止外部中斷1中斷;

1:允許外部中斷1中斷。(5)ET0:定時器/計數(shù)器T0的溢出中斷允許位

0:禁止T0溢出中斷;

1:允許T0溢出中斷。(6)EX0:外部中斷0中斷允許位。

0:禁止外部中斷0中斷;

1:允許外部中斷0中斷。注意:MCS-51復(fù)位后,IE清0,所有中斷請求被禁止。若使某一個中斷源被允許中斷,除了IE相應(yīng)的位的被置“1”,還必須使EA位=1。改變IE的內(nèi)容,可由位操作指令來實現(xiàn),即:

SETBbit;CLRbit。例若允許片內(nèi)2個定時器/計數(shù)器中斷,禁止其它中斷源的中斷請求。編寫設(shè)置IE的相應(yīng)程序段(1)用位操作指令來編寫如下程序段: CLRES ;禁止串行口中斷 CLREX1 ;禁止外部中斷1中斷 CLREX0 ;禁止外部中斷0中斷SETBET0;允許定時器/計數(shù)器T0中斷SETBET1;允許定時器/計數(shù)器T1中斷SETBEA;CPU開中斷(2)用字節(jié)操作指令來編寫:MOVIE,#8AH

2、中斷優(yōu)先級寄存器IP(B8H)圖1.22中斷優(yōu)先寄存器IP

IP字節(jié)地址為B8H,位地址分別是B8H~BFH,IP用來鎖存各中斷源優(yōu)先級的控制位,其格式如圖1.22所示。利用位操作指令SETB和CLR設(shè)置IP寄存器狀態(tài),從而控制各中斷源的優(yōu)先級。

MCS-51中斷響應(yīng)的原則:

1)相同優(yōu)先級的中斷,一旦得到響應(yīng),不能被其它同級中斷源中斷。多個同級中斷源同時向CPU申請中斷時,按自然優(yōu)先級順序確定首先響應(yīng)哪個中斷請求。

2)不同優(yōu)先級的中斷允許嵌套調(diào)用,即當(dāng)CPU在執(zhí)行用戶程序的時候,響應(yīng)了某一低優(yōu)先級中斷源的中斷請求,正在執(zhí)行低優(yōu)先級中斷源的中斷服務(wù)程序過程中,可以響應(yīng)另一個高優(yōu)先級中斷源的中斷請求,去執(zhí)行它的高優(yōu)先級中斷服務(wù)程序。即高優(yōu)先級中斷可以中斷低優(yōu)先級中斷,反之不可例

設(shè)置IP寄存器的初始值,使2個外中斷請求為高優(yōu)先級,其它中斷請求為低優(yōu)先級。(1)用位操作指令

SETBPX0;2個外中斷為高優(yōu)先級 SETBPX1 CLRPS;串行口、2個定時器為低優(yōu)先級中斷CLRPT0 CLRPT1(2)用字節(jié)操作指令

MOVIP,#05H復(fù)位時各寄存器有定義的位為01)T0、串行口關(guān)中斷,其余開中斷;2)T0、串行口開中斷,其余保持不變;3)全部禁中斷;4)全部開中斷;MOVIE,#10001101BORLIE,#10010010BCLREA或MOVIE,#data1MOVIE,#data2習(xí)題

下列中斷優(yōu)先順序排列,有可能實現(xiàn)的有()。A.T1、T0、INT0、INT1、串行口B.INT0、T1、T0、INT1、串行口C.INT0、INT1、串行口、T1、T0D.INT1、串行口、T0、INT0、T1從哪幾方面考慮?B中斷系統(tǒng)的結(jié)構(gòu)中斷源中斷選擇中斷標(biāo)志中斷允許優(yōu)先級選擇

6.3中斷處理過程

中斷處理過程可分為中斷請求、中斷響應(yīng)、中斷服務(wù)和中斷返回。

(1)中斷請求:中斷源滿足中斷條件后,置1相應(yīng)的中斷請求標(biāo)志位,CPU如查詢到某個中斷標(biāo)志為1,則認(rèn)為該中斷發(fā)出請求,準(zhǔn)備響應(yīng)。

(2)中斷響應(yīng):中斷響應(yīng)過程包括保護斷點和將程序轉(zhuǎn)向中斷服務(wù)程序的入口地址。中斷得到響應(yīng)后自動清除中斷標(biāo)志,由硬件將程序計數(shù)器PC內(nèi)容壓入堆棧保護,然后將對應(yīng)的中斷矢量裝入程序計數(shù)器PC,使程序轉(zhuǎn)向中斷矢量地址單元中去執(zhí)行相應(yīng)的中斷服務(wù)程序。

中斷響應(yīng)是有條件的,遇到下列三種情況之一時,中斷響應(yīng)被封鎖:(1)CPU正在處理同級的或更高優(yōu)先級的中斷。(2)所查詢的機器周期不是所當(dāng)前正在執(zhí)行指令的最后一個機器周期。只有在當(dāng)前指令執(zhí)行完畢后,才能進(jìn)行中斷響應(yīng)。(3)正在執(zhí)行的指令是RETI或是訪問IE或IP的指令。需要再去執(zhí)行完一條指令,才能響應(yīng)新的中斷請求。如果存在上述三種情況之一,CPU將丟棄中斷查詢結(jié)果,不能對中斷進(jìn)行響應(yīng)。

(3)中斷服務(wù):中斷服務(wù)程序從中斷入口地址開始執(zhí)行,直到返回指令RETI為止,一般包括四部分內(nèi)容:一是保護現(xiàn)場,二是完成中斷源請求的服務(wù),三是恢復(fù)現(xiàn)場,四是中斷返回。右圖為外部中斷0的中斷服務(wù)程序架構(gòu)。

(4)中斷返回:通常是指中斷服務(wù)完成以后,計算機返回斷點,繼續(xù)執(zhí)行原來的程序。中斷返回由中斷返回指令RETI來實現(xiàn)。該指令的功能是把斷點地址從堆棧中彈出,送回到程序計數(shù)器PC,此外還通知中斷系統(tǒng)已完成中斷處理。

中斷響應(yīng)時間:正常中斷響應(yīng)時間為3~8個機器周期。中斷的最短的響應(yīng)時間為3個機器周期:(1)中斷請求標(biāo)志位查詢占1個機器周期。(2)子程序調(diào)用指令LCALL轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序入口,需2個機器周期。3T:中斷請求標(biāo)志查詢:1T

產(chǎn)生、執(zhí)行LCALL:2T

中斷響應(yīng)的最長時間為8個機器周期:發(fā)生在CPU進(jìn)行中斷標(biāo)志查詢時,剛好是開始執(zhí)行RETI或是訪問IE或IP的指令,則需把當(dāng)前指令執(zhí)行完再繼續(xù)執(zhí)行一條指令后,才能響應(yīng)中斷,最長需2個機器周期。接著再執(zhí)行一條指令,按最長指令(乘法指令MUL和除法指令DIV)來算,也只有4個機器周期。加上硬件子程序調(diào)用指令LCALL的執(zhí)行,需要2個機器周期。所以,外部中斷響應(yīng)最長時間為8個機器周期。

8T:執(zhí)行RET/RETI(訪問IP/IE):2T

主程序中MUL/DIV指令:4T

執(zhí)行LCALL指令:2T6.4外部中斷觸發(fā)方式1、兩種觸發(fā)方式:電平觸發(fā)方式和負(fù)邊沿觸發(fā)方式。2、設(shè)置方法:IT0、IT1清0或置1。3、觸發(fā)信號的特點:對于電平觸發(fā)方式,低電平信號至少要保持12個振蕩周期,以保證信號被采樣;且在中斷服務(wù)程序返回之前,外部中斷請求輸入必須無效(即變?yōu)楦唠娖剑駝tCPU返回主程序后會再次響應(yīng)中斷。對于負(fù)邊沿觸發(fā)方式,連續(xù)兩次采樣,一個機器周期采樣到外部中斷輸入為高,下一個機器周期采樣為低,則置“1”中斷請求標(biāo)志,直到CPU響應(yīng)此中斷時,該標(biāo)志才清0。這樣不會丟失中斷,但輸入的負(fù)脈沖寬度至少保持1個機器周期。以保證檢測到引腳上的電平跳變。6.5多個外部中斷源系統(tǒng)設(shè)計1、定時器中斷作為外部中斷使用(負(fù)邊沿觸發(fā))定時器設(shè)置為方式2,即自動裝載常數(shù),外部計數(shù)方式,且時間常數(shù)為0FFH;中斷請求信號從T0或T1引腳引入,當(dāng)發(fā)生負(fù)跳變時,定時器加1,溢出,觸發(fā)中斷。2、中斷和查詢結(jié)合方式(電平觸發(fā))中斷源用線或的方法連接到外部中斷輸入引腳;同時連接到IO引腳,以供查詢。6.6中斷請求的撤消1.中斷請求撤消的概念和原因。中斷響應(yīng)后,TCON或SCON中的中斷請求標(biāo)志應(yīng)及時清除。否則就意味著中斷請求仍然存在。2.定時器/計數(shù)器中斷請求的撤消中斷請求被響應(yīng)后。硬件會自動清TF0或TF1。3.外部中斷請求的撤消(1)負(fù)邊沿方式外部中斷請求的撤消是自動撤消的。(2)電平方式的外部中斷請求信號的撤消,是通過軟硬件相結(jié)合的方法來實現(xiàn)的。除了標(biāo)志位清“0”之外,還需在中斷響應(yīng)后把中斷請求信號引腳從低電平強制改變?yōu)楦唠娖剑缦聢D所示。只要P1.0端輸出一個負(fù)脈沖就可以使D觸發(fā)器置“1”,從而撤消了低電平的中斷請求信號。所需的負(fù)脈沖可增加如下兩條指令得到:

ORLP1,#01H ;P1.0為“1” ANLP1,#0FEH ;P1.0為“0”

ORLP1,#01H ;P1.0為“1”

4.串行口中斷請求的撤消響應(yīng)串行口的中斷后,CPU無法知道是接收中斷還是發(fā)送中斷,還需測試這兩個中斷標(biāo)志位的狀態(tài),以判定是接收操作還是發(fā)送操作,然后才能清除。所以串行口中斷請求的撤消只能使用軟件的方法 CLRTI;清TI標(biāo)志位 CLRRI;清RI標(biāo)志位

6.7中斷程序的編程方法

(1)中斷初始化中斷初始化通常在產(chǎn)生中斷請求前完成,放在主程序中,與主程序其他初始化內(nèi)容一起完成設(shè)置。

1)設(shè)置堆棧指針SP:SP=60H或50H,對應(yīng)的堆棧深度為32字節(jié)和48字節(jié),用于保護斷點現(xiàn)場數(shù)據(jù)。

2)定義中斷優(yōu)先級:使用“MOVIP,#xxH”或“SETBxx”指令即可設(shè)置。

3)定義外部中斷觸發(fā)方式:邊沿觸發(fā)或電平觸發(fā)。

4)開放中斷:使用“MOVIE,#xxH”或“SETBEA”和“SETBxx”指令即可設(shè)置。

(2)中斷服務(wù)子程序

1)在中斷服務(wù)入口地址設(shè)置一條跳轉(zhuǎn)指令,轉(zhuǎn)移到中斷服務(wù)程序的實際入口地址。通常用LJMP指令。

2)根據(jù)需要保護現(xiàn)場。

3)中斷服務(wù)程序主體。

4)中斷源恢復(fù)現(xiàn)場。與保護現(xiàn)場相對應(yīng),注意先進(jìn)后出、后進(jìn)先出的操作順序。

5)中斷返回,最后一條指令必須是RETI。采用中斷時的主程序結(jié)構(gòu)如下: ORG0000H LJMPMAIN ORG中斷入口地址 LJMPINT ?

ORGXXXXHMAIN:主程序

INT:中斷服務(wù)程序要求每次按動按鍵,使外接發(fā)光二極管LED改變一次亮滅狀態(tài)。解:INT0輸入按鍵信號,P1.0輸出改變LED狀態(tài)。

ORG 0000H;復(fù)位入口

AJMPMAIN ORG 0003H;中斷入口

AJMP PINT0 ORG 0100H ;主程序MAIN:MOVSP,#40H;設(shè)棧底

SETB EA ;開總允許開關(guān)

SETB EX0 ;開INT0中斷

SETB IT0

;負(fù)跳變觸發(fā)中斷

H:

SJMP H ;執(zhí)行其它任務(wù)

ORG 0200H;中斷服務(wù)程序PINT0:CPLP1.0 ;改變LED

RETI ;返回主程序單片機INT0P1.01+5V

中斷服務(wù)程序的設(shè)計【例】出租車計價器計程方法是車輪每運轉(zhuǎn)一圈產(chǎn)生一個負(fù)脈沖,從外中斷(P3.2)引腳輸入,行駛里程為輪胎周長×運轉(zhuǎn)圈數(shù),設(shè)輪胎周長為2m,試實時計算出租車行駛里程(單位米),數(shù)據(jù)存32H、31H、30H。解:編程:ORG 0000H ;復(fù)位地址

LJMPSTAT ;轉(zhuǎn)初始化

ORG 0003H ;中斷入口地址

LJMPINT ;轉(zhuǎn)中斷服務(wù)程序

ORG0100H;初始化程序首地址

STAT:MOVSP,#60H ;置堆棧指針

SETBITO;置邊沿觸發(fā)方式

MOVIP,#01H ;置高優(yōu)先級

MOVIE,#81H

;開中斷

MOV30H,#0 ;里程計數(shù)器清0MOV31H,#0 MOV32H,#0 LJMPMAIN;轉(zhuǎn)主程序,并等待中斷ORG0200H ;中斷服務(wù)子程序首地址CLREA

PUSHAcc ;保護現(xiàn)場

PUSHPSW

SETBEA MOVA,30H ;讀低8位計數(shù)器

ADDA,#2 ;低8位計數(shù)器加2m MOV30H,A ;回存

CLRA ; ADDCA,31H ;中8位計數(shù)器加進(jìn)位

MOV31H,A ;回存

CLRA ; ADDCA,32H ;高8位計數(shù)器加進(jìn)位

MOV32H,A ;回存

CLREA

POPPSW ;恢復(fù)現(xiàn)場

POPAcc SETBEA RETI ;中斷返回INT:

6、中斷應(yīng)用實例圖1.25中斷方式處理按鍵電路圖(1)電路組成:按鍵接口電路和單片機最小系統(tǒng)。(2)電路功能:利用LED指示按鍵狀態(tài),即S1閉合,LED1點亮,S1斷開,LED1熄滅;S2~S8以此類

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論