




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第6章輸入/輸出和中斷系統(tǒng)
單片機原理及應(yīng)用16.1微機的輸入/輸出方式CPU與外部設(shè)備交換信息通常有以下幾種方式:(1)程序控制傳送方式,又分為無條件傳送方式和查詢傳送方式(2)中斷傳送方式(3)直接存儲器存取(DMA)方式
無條件傳送流程圖查詢傳送流程圖2◆無條件傳送的缺點必須確認外設(shè)是準(zhǔn)備好的◆查詢傳送的缺點
CPU在查詢過程中什么都不能做,CPU的工作效率低下◆解決的方法采用中斷方式◆中斷方式與以上兩種方式的根本區(qū)別
CPU由數(shù)據(jù)傳送的主動方變?yōu)楸粍臃酵庠O(shè)需要傳送數(shù)據(jù),向CPU發(fā)出中斷請求,CPU響應(yīng)后,轉(zhuǎn)去為外設(shè)服務(wù)(傳送數(shù)據(jù)),服務(wù)后CPU繼續(xù)執(zhí)行原來的程序3◆應(yīng)用程序的一般形式從本章開始,涉及到單片機的應(yīng)用(設(shè)計單片機的應(yīng)用電路、編制單片機的應(yīng)用程序)許多單片機的初學(xué)者都普遍存在這樣的問題:對自己要設(shè)計的作品的功能很清楚,但不知道如何安排各個部分程序,也就是不太會設(shè)計程序流程圖4◆應(yīng)用程序的一般形式(以你們?yōu)槔┏跏蓟鞒绦驘o限循環(huán)執(zhí)行的幾件事(可能包含幾個子程序)其中如果有緊急事情的話,還需要有中斷服務(wù)程序56.2中斷系統(tǒng)概念中斷的定義:
當(dāng)中央處理器CPU正在處理某事件時,外界發(fā)生了更為緊急的請求,要求CPU暫停當(dāng)前的工作,轉(zhuǎn)而去處理這個緊急事件,處理完畢后,再回到原來被中斷的地方,繼續(xù)原來的工作,這樣的過程稱為中斷。主程序斷點正在執(zhí)行中的某條指令中斷服務(wù)程序RETI響應(yīng)中斷請求返回主程序中斷響應(yīng)中斷返回中斷服務(wù)中斷過程流程6◆當(dāng)CPU正在處理一個中斷源請求時,發(fā)生了另一個優(yōu)先級比它高的中斷源請求。如果CPU能夠暫停對原來的中斷源的處理程序,轉(zhuǎn)而去處理優(yōu)先級更高的中斷源請求,處理完以后,再回到原來的低級中斷處理程序,這樣的過程稱為中斷嵌套?!艟哂羞@種功能的中斷系統(tǒng)稱為多級中斷系統(tǒng);沒有中斷嵌套功能的則稱為單級中斷系統(tǒng)。主程序響應(yīng)低級別中斷請求響應(yīng)高級別中斷請求二級中斷嵌套示意76.3MCS-51中斷系統(tǒng)結(jié)構(gòu)80C51單片機有5個中斷源,具有兩個中斷優(yōu)先級,可以實現(xiàn)二級中斷嵌套5個中斷源的排列順序由中斷優(yōu)先級控制寄存器IP和順序查詢邏輯電路(圖6-4中的自然優(yōu)先級排隊電路)共同決定5個中斷源對應(yīng)5個固定的中斷入口地址(中斷矢量,見p.146)與中斷系統(tǒng)有關(guān)的特殊功能寄存器(4個):
定時器控制寄存器TCON、串口控制寄存器SCON、中斷允許寄存器IE、中斷優(yōu)先級控制寄存器IP5個中斷源:外部中斷:INT0和INT1
定時器/計數(shù)器溢出中斷:定時器/計數(shù)器T0和T1
串口中斷:TX或RX(發(fā)送或接收中斷)89
6.3.1中斷源與中斷請求標(biāo)志
MCS-51單片機設(shè)有5個中斷源,中斷請求標(biāo)志分別是:2個外部中斷請求標(biāo)志:IE0(INT0)、IE1(INT1)2個內(nèi)部定時器/計數(shù)器溢出中斷請求標(biāo)志:TF0(定時器/計數(shù)器T0)、TF1(定時器/計數(shù)器T1)1個內(nèi)部串行口中斷請求標(biāo)志:TI或RI
這些中斷請求標(biāo)志分別由特殊功能寄存器TCON和SCON的相應(yīng)位鎖存10定時器/計數(shù)器控制寄存器(TCON)TF1TF0IE1IT1IE0IT088HT1溢出中斷請求標(biāo)志T0溢出中斷請求標(biāo)志外中斷0觸發(fā)方式0:低電平觸發(fā)1:邊沿觸發(fā)外中斷0中斷請求標(biāo)志0:無中斷請求1:有中斷請求外中斷1觸發(fā)方式外中斷1中斷請求標(biāo)志CPU相應(yīng)中斷后,將TF1自動清0若查詢方式,則需軟件清011串口控制寄存器(SCON)TIRI98H串口發(fā)送中斷請求標(biāo)志每發(fā)送1幀數(shù)據(jù)后硬件置1軟件清0串口接收中斷請求標(biāo)志每接收1幀數(shù)據(jù)后硬件置1軟件清0注:CPU響應(yīng)中斷后,并不清除TI或RI,所以必須由軟件清0126.3.2MCS-51的中斷控制中斷的開放和屏蔽中斷 中斷允許寄存器IE的作用,是控制所有中斷源的開放或禁止,以及每個中斷源是否被允許。寄存器IE的位格式如下:中斷允許寄存器(IE)EA××ESET1EX1ET0EX0A8H總允許位串口外中斷0定時器T0外中斷1定時器T11:允許中斷0:禁止中斷13中斷優(yōu)先級別的設(shè)定MCS-51系列單片機具有兩個中斷優(yōu)先級。對于所有的中斷源,均可由軟件設(shè)置為高優(yōu)先級中斷或低優(yōu)先級中斷每個中斷源的中斷優(yōu)先級都可以通過程序來設(shè)定,由中斷優(yōu)先級寄存器IP統(tǒng)一管理中斷優(yōu)先級寄存器(IP)×××PSPT1PX1PT0PX0B8H串口外中斷0定時器T0外中斷1定時器T10:低優(yōu)先級1:高優(yōu)先級14例如CPU開中斷可由以下兩條指令來實現(xiàn):
SETBEA;EA置1或ORLIE,#80H;按位“或”,EA置1CPU關(guān)中斷可由以下兩條指令來實現(xiàn):
CLREA;EA清0或ANLIE,#7FH;按位“與”,EA清0
又如設(shè)置外部中斷源0為高優(yōu)先級,外部中斷源1為低優(yōu)先級,可由下面指令來實現(xiàn):
SETBPX0;PX0置1CLRPX1;PX1清015
優(yōu)先級結(jié)構(gòu)在工作過程中中斷系統(tǒng)對各中斷源的處理遵循以下基本原則:低優(yōu)先級中斷可以被高優(yōu)先級中斷所中斷,反之不能。中斷源的自然優(yōu)先級中斷源同級自然優(yōu)先級外部中斷0最高級定時器0中斷↓外部中斷1┆
定時器1中斷↓串行口中斷最低級16例:設(shè)80C51的片外中斷為高優(yōu)先級,片內(nèi)中斷為低優(yōu)先級,試設(shè)置IP相應(yīng)值。解:(a)用字節(jié)操作指令
MOVIP,#05H
(b)用位操作指令
SETBPX0SETBPX1CLRPSCLRPT0CLRPT1176.3.3中斷處理過程中斷處理過程可分為三個階段,即中斷響應(yīng)、中斷處理和中斷返回。
(1)中斷響應(yīng)◆響應(yīng)條件有中斷源發(fā)出中斷請求中斷總允許位EA=1,即CPU開中斷申請中斷的中斷源的中斷允許位為1,即中斷沒有被屏蔽無同級或更高級中斷正在被服務(wù)當(dāng)前的指令周期已經(jīng)結(jié)束若現(xiàn)行指令為RETI或者是訪問IE或IP指令時,該指令以及緊接著的另一條指令已執(zhí)行完18◆
中斷響應(yīng)操作過程
MCS-51的CPU在第1個機器周期按優(yōu)先級順序查詢中斷標(biāo)志,如查詢到某個中斷標(biāo)志為1,將在接下來的2個機器周期按優(yōu)先級進行中斷處理:中斷系統(tǒng)首先將斷點地址進棧保護,并通過硬件自動將相應(yīng)的中斷矢量地址裝入PC,以便進入相應(yīng)的中斷服務(wù)程序?!?/p>
中斷響應(yīng)時間
在一般情況下,MCS-51響應(yīng)中斷的時間至少為3個機器周期。中斷源中斷矢量地址中斷源中斷矢量地址外中斷00003H定時器T0000BH外中斷10013H定時器T1001BH串口0023H19(2)中斷處理◆各中斷源的入口矢量地址之間只相隔8個單元,一般的中斷服務(wù)程序是容納不下的,因而最常用的方法是在中斷入口地址單元處存放一條無條件轉(zhuǎn)移指令,轉(zhuǎn)至存儲器其他的任何空間?!羧粼趫?zhí)行當(dāng)前中斷程序時禁止更高優(yōu)先級中斷,應(yīng)用軟件關(guān)閉CPU中斷(屏蔽該高級中斷),在中斷返回前再開放中斷?!粼诒Wo現(xiàn)場和恢復(fù)現(xiàn)場時,為了不使現(xiàn)場信息受到破壞或造成混亂,一般應(yīng)關(guān)閉CPU中斷,使CPU暫不響應(yīng)新的中斷請求(用于在應(yīng)用中使用了兩個以上的中斷)0003H(INT0的中斷矢量):LJMPINT_0(INT0程序入口地址)中斷服務(wù)程序:保護現(xiàn)場
…………中斷服務(wù)恢復(fù)現(xiàn)場
RETI20(3)中斷返回在中斷服務(wù)程序中,最后一條指令必須為中斷返回指令RETI
返回到程序斷點處繼續(xù)執(zhí)行6.4中斷請求的撤除6.4.1.定時器/計數(shù)器中斷請求的撤除 其中斷請求是自動撤除的,無需采取其他措施。6.4.2.串行口中斷請求的撤除通過如下指令將RI和TI撤除:
CLRRI;撤除接收中斷
CLRTI;撤除發(fā)送中斷216.4.3.外部中斷請求的撤除(電平觸發(fā))
INSVR:ANLP1,#0FEHORLP1,#01H┇RETIEND22用單穩(wěn)態(tài)觸發(fā)器構(gòu)成的外部中斷請求電路(電平觸發(fā))單穩(wěn)態(tài)觸發(fā)器中斷請求信號由于電平觸發(fā)的外部中斷請求需人為撤消,所以,外部中斷請求一般設(shè)置為邊沿觸發(fā)236.5中斷系統(tǒng)的初始化及應(yīng)用6.5.1.中斷系統(tǒng)的初始化(1)開放某中斷源的中斷請求
(2)設(shè)定所用中斷的中斷優(yōu)先級*(3)若為外部中斷,則應(yīng)規(guī)定中斷觸發(fā)方式(低電平或邊沿觸發(fā))(4)CPU開中斷24例6-2:寫出INT1為低電平觸發(fā)、高優(yōu)先級的中斷系統(tǒng)初始化程序。解:(1)采用位操作指令
SETBEX1
;外中斷1開中斷
SETBPX1;令其為高優(yōu)先級
CLRIT1;令其為電平觸發(fā)
SETBEA;CPU開總中斷
(2)采用字節(jié)型指令
MOVIE,#84H
;開中斷
ORLIP,#04H;高優(yōu)先級
ANLTCON,#0FBH;電平觸發(fā)256.5.2.中斷系統(tǒng)的應(yīng)用(中斷處理)
ORGADDRESS;ADDRESS為中斷矢量(5個中斷矢量之一)
LJMPINTVS;INTVS為中斷服務(wù)程序入口MAIN: ……..┇
LJMPMAIN
INTVS:CLREA;關(guān)中斷
PUSHPSW;保護現(xiàn)場
PUSHACC┇SETBEA;開中斷,允許CPU響應(yīng)高級中斷┇中斷服務(wù)┇
CLREA;關(guān)中斷
POPACC;恢復(fù)現(xiàn)場
POPPSW┇SETBEA;開中斷
RETI;中斷返回若系統(tǒng)中只使用了一個中斷源,則CPU開、關(guān)中斷可以略去26
中斷源及其對應(yīng)的中斷矢量(表6-1p.146)外部中斷0(INT0):0003H
定時器0中斷:000BH
外部中斷1(INT1):0013H
定時器1中斷:001BH
串口中斷:0023H
中斷矢量的間隔為8個單元,所以應(yīng)在中斷矢量地址處安排一條無條件轉(zhuǎn)移指令LJMP中斷服務(wù)程序標(biāo)號(或AJMP)6.5.3中斷應(yīng)用舉例例6-3P1.7~P1.4為輸入口,P1.3~P1.0為輸出口,反映輸入口開關(guān)的狀態(tài),輸入為高電平時,相應(yīng)的LED亮。每中斷一次,對外部狀態(tài)檢測一次,外部中斷采用邊沿觸發(fā)方式。(R-S觸發(fā)器作用:消除開關(guān)抖動
1-S2-R)27流程圖28;機器碼必須從0000H開始存放;轉(zhuǎn)到主程序;INT0的中斷矢量;轉(zhuǎn)到INT0中斷服務(wù)程序;定義主程序;允許INT0中斷;設(shè)為邊沿觸發(fā);CPU開中斷;CPU等中斷;定義中斷服務(wù)程序;設(shè)P1口高4位輸入和低4位輸出初態(tài);將狀態(tài)送到P1口;讀開關(guān)狀態(tài);將高4位狀態(tài)交換到低4位;輸出到低4位;中斷返回 ORG0000HLJMPMAIN
ORG0003H
LJMPINSER
ORG0050HMAIN:SETBEX0
SETBIT0
SETBEAHERE:SJMPHERE
ORG0200H
INSER:MOVA,#0F0HMOVP1,A
MOVA,P1
SWAPA
MOVP1,A
RETIEND
初始化296.6MCS-51外部中斷擴展方法
MCS-51單片機有兩個外部中斷請求輸入端
INT0和INT1。在實際應(yīng)用中,若外部中斷源有兩個以上時,就需要進行外部中斷擴展。擴展外部中斷源的方法有兩種:用定時器擴展外部中斷源(定時器章節(jié)介紹)I/O口查詢方式擴展外部中斷源306.6.2.硬件申請軟件查詢擴展中斷源注:反相器一定是OC門輸出,否則輸出短路!用4個反相器構(gòu)成的4輸入或非門31中斷服務(wù)程序是一個查詢程序32 ORG0003H LJMPINTRP ………INTRP:PUSHPSW PUSHACC JBP1.0,DV1 JBP1.1,DV2 JBP1.2,DV3 JBP1.3,DV4EXIT: POPACC POPPSW RETIDV1: ……..
裝置1中斷服務(wù)
AJMPEXITDV2: ……..
裝置2中斷服務(wù)
AJMPEXITDV3: ……..
裝置3中斷服務(wù)
AJMPEXITDV4: ……..
裝置4中斷服務(wù)
AJMPEXIT33例6-4利用中斷顯示系統(tǒng)故障正常時監(jiān)測點為低電平故障時監(jiān)測點為高電平系統(tǒng)工作正常時,4個監(jiān)測點均為低電平,LED不亮某個部分出現(xiàn)故障時,相應(yīng)的監(jiān)測點為高電平,對應(yīng)的LED點亮LED1LED2LED3LED434
ORG0000H
AJMPMAIN
;上電復(fù)位,轉(zhuǎn)向主程序
ORG0003H
;外部中斷0入口地址
AJMPINSER
;轉(zhuǎn)向中斷服務(wù)程序
ORG0050HMAIN:ANLP1,#55H;P1.0,P1.2,P1.4,P1.6為輸入;P1.1,P1.3,P1.5,P1.7輸出為0SETBEX0;允許外部中斷0中斷
SETBIT0;選擇邊沿觸發(fā)方式
SETBEA;CPU開中斷HERE:SJMPHERE
;等待中斷INSER:JNBP1.0,L1;查詢中斷源,P1.0=0,轉(zhuǎn)L1SETBP1.1;是P1.0引起的中斷,使相應(yīng)的二極管亮L1:JNBP1.2,L2;繼續(xù)查詢
SETBP1.3L2:JNBP1.4,L3SETBP1.5L3:JNBP1.6,L4SETBP1.7L4:RETIEND
注意查詢的方法監(jiān)測點低電平為正常P1.0、P1.2、P1.4、P1.6接監(jiān)測點
設(shè)置堆棧35中斷應(yīng)用:
1.LED控制S1S2用按鍵開關(guān)S1、S2控制LED閃亮與熄滅P1.0=0,LED亮P1.0=1,LED滅36流程圖延時子程序(略)控制熄滅控制閃亮37
LIANGBIT00H ORG0000H LJMPST ORG0003H LJMPINT_0
ORG0013H LJMPINT_1
ORG0050HST: SETBP1.0
SETBEX0
SETBIT0
SETBEX1
SETBIT1
SETBEA CLRLIANG
MOVSP,#60H;定義一個位標(biāo)志,LIANG=1,LED閃亮;轉(zhuǎn)到主程序;轉(zhuǎn)到INT0服務(wù),控制熄滅;轉(zhuǎn)到INT1服務(wù),控制閃亮;定義主程序;外設(shè)初始化,LED熄滅;允許INT0中斷;INT0邊沿觸發(fā);允許INT1中斷;INT1邊沿觸發(fā);CPU開中斷;標(biāo)志初始化;設(shè)置堆棧38MAIN: JNBLIANG,LED_MIE CLRP1.0 LCALLDELAY SETBP1.0 LCALLDELAY SJMPMAINLED_MIE:SETBP1.0 SJMPMAININT_0:CLRLIANG RETIINT_1:SETBLIANG RETI;亮標(biāo)志≠1,轉(zhuǎn)LED滅;否則LED閃亮;LED熄滅;亮標(biāo)志=0;中斷返回;亮標(biāo)志=1;中斷返回CPLP1.0LCALLDELAY39DELAY: MOVR7,#250DL1: MOVR6,#250DL2: NOP;1機器周期(1uS)
NOP;1機器周期(1uS)
DJNZR6,DL2;2機器周期(2uS)
DJNZR7,DL1 RET;延時250mS END ;fosc=12MHz40中斷應(yīng)用:
2.中斷控制流水燈循環(huán)方向用開關(guān)控制流水燈的循環(huán)方向采用中斷控制方式在中斷服務(wù)程序中設(shè)置循環(huán)方向標(biāo)志41主程序流程圖中斷服務(wù)程序流程圖(有鍵按下進入)F_L為循環(huán)方向標(biāo)志42 F_LBIT00H ORG0000H LJMPMAIN ORG0003H LJMPINT_0 ORG0050H;********主程序初始化********MAIN: SETBEX0 SETBIT0 SETBEA MOVSP,#60H MOVA,#0FEH SET
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安裝消防噴淋工程合同
- 清理生活垃圾合同書
- 技術(shù)服務(wù)合同含技術(shù)培訓(xùn)技
- 工業(yè)設(shè)計委托合同
- 漢字書寫技巧與理解:七年級語文課程專題
- 財務(wù)報告分析與說明
- 人工智能在制造業(yè)的應(yīng)用統(tǒng)計表
- 教育考試得分統(tǒng)計表
- 人防設(shè)備施工合同
- 冷凍庫施工方案
- 新版人音版小學(xué)音樂一年級下冊全冊教案
- 昆明理工大學(xué)物理習(xí)題冊帶答案
- 中考英語過去將來時趣味講解動態(tài)課件(43張課件)
- 2024年北京九年級中考英語聽力常見話題高頻詞匯和表達梳理
- hidlibrary使用操作手冊
- 足療店禁止涉黃協(xié)議書模板
- 醫(yī)師定期考核題庫-公衛(wèi)
- 小學(xué)數(shù)學(xué)教學(xué)中數(shù)學(xué)邏輯思維的啟蒙與培養(yǎng)
- 港口大數(shù)據(jù)安全與隱私保護
- 校外培訓(xùn)機構(gòu)規(guī)范辦學(xué)承諾書
- 非遺文化之漆扇介紹課件
評論
0/150
提交評論