項(xiàng)目四:中斷編程認(rèn)知課件_第1頁(yè)
項(xiàng)目四:中斷編程認(rèn)知課件_第2頁(yè)
項(xiàng)目四:中斷編程認(rèn)知課件_第3頁(yè)
項(xiàng)目四:中斷編程認(rèn)知課件_第4頁(yè)
項(xiàng)目四:中斷編程認(rèn)知課件_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目四:

MCS-51單片機(jī)的中斷系統(tǒng)《單片機(jī)原理及應(yīng)用>

教師:張為賓“中斷”——中途打斷某一正在進(jìn)行的工作,而去處理另外的事件,待處理完后,再繼續(xù)原來(lái)的工作。中斷包括意外中斷和企望發(fā)生的中斷。中斷

MCS-51單片機(jī)51子系列具有5個(gè)中斷源。1中斷源這五個(gè)中斷請(qǐng)求鎖存信號(hào)分別鎖存在特殊功能寄存器TCON(定時(shí)/計(jì)數(shù)控制寄存器)和SCON(串行口控制寄存器)中。8051中斷系統(tǒng)的5個(gè)中斷源為:

——外部中斷0請(qǐng)求,通過(guò)P3.2引腳輸入。

——外部中斷1請(qǐng)求,通過(guò)P3.3引腳輸入。T0——定時(shí)器/計(jì)數(shù)器0溢出中斷請(qǐng)求。T1——定時(shí)器/計(jì)數(shù)器1溢出中斷請(qǐng)求。TI/RI——串行口中斷請(qǐng)求。一、MCS-51的中斷系統(tǒng)及其管理

1)定時(shí)控制寄存器TCON(字節(jié)地址為88H)復(fù)位后,TCON被清“0”。位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8F8E8D8C8B8A8988IT0——選擇外部中斷請(qǐng)求0為邊沿觸發(fā)方式或電平觸發(fā)方式的控制位。

IT0=0,INT0為電平觸發(fā)方式,INT0低電平有效;

IT1=1,INT0為邊沿觸發(fā)方式,INT0輸入腳上電平由高到低的負(fù)跳變有效。

IT0可由軟件置“1”或清“0”。IT1——選擇外部中斷請(qǐng)求1為邊沿觸發(fā)方式或電平觸發(fā)方式的控制位,和IT0類似。位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8F8E8D8C8B8A8988IE0——外部沿觸發(fā)中斷0請(qǐng)求標(biāo)志,

當(dāng)IT0=0即電平觸發(fā)方式時(shí),每個(gè)機(jī)器周期的S5P2采樣INT0,若INT0為低電平,將直接觸發(fā)外部中斷,

當(dāng)IT0=1即邊沿觸發(fā)方式時(shí),當(dāng)?shù)谝粋€(gè)機(jī)器周期采樣到INT0為高電平,第二個(gè)機(jī)器周期采樣到INT0為低電平時(shí),由硬件置位IE0,并以此來(lái)向CPU請(qǐng)求中斷,當(dāng)CPU響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序時(shí)由硬件清“0”IE0。IE1——外部沿觸發(fā)中斷1請(qǐng)求標(biāo)志,和IE0類似。外部中斷輸入信號(hào)INTX和中斷申請(qǐng)標(biāo)志IEX及外部中斷申請(qǐng)觸發(fā)方式控制位ITX三者關(guān)系。INTxITx10IEx位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8F8E8D8C8B8A8988TR0——定時(shí)/計(jì)數(shù)器0的運(yùn)行控制位,由軟件置位/清除來(lái)控制其開(kāi)啟/關(guān)閉。TF0——時(shí)/計(jì)數(shù)器0溢出中斷申請(qǐng)標(biāo)志,在啟動(dòng)T0計(jì)數(shù)后,定時(shí)/計(jì)數(shù)器0從初值開(kāi)始加1計(jì)數(shù),當(dāng)最高位產(chǎn)生溢出時(shí),由硬件置位TF0,向CPU申請(qǐng)中斷,CPU響應(yīng)TF0中斷時(shí)清零該標(biāo)志位,TF0也可用軟件清零(查詢方式)。TR1——定時(shí)/計(jì)數(shù)器1的運(yùn)行控制位。由軟件置位/清除來(lái)控制其開(kāi)啟/關(guān)閉。TF1——8031片內(nèi)的定時(shí)/計(jì)數(shù)器1的溢出中斷申請(qǐng)標(biāo)志,和TF0類似。位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8F8E8D8C8B8A89882.串行口控制寄存器SCON(字節(jié)地址為98H)SCON的低二位鎖存串行口的接收中斷和發(fā)送中斷標(biāo)志(復(fù)位后,SCON被清“0”)位D7D6D5D4D3D2D1D0SCONSM0SM1SM2RENTB8RB8TIRI位地址9F9E9D9C9B9A9998TI——串行口的發(fā)送中斷標(biāo)志。在串行口以方式0發(fā)送時(shí),每當(dāng)發(fā)送完8位數(shù)據(jù),由硬件置“1”TI;若以方式1、方式2或方式3發(fā)送時(shí),在發(fā)送停止位的開(kāi)始時(shí)置“1”TI。

TI=1表示串行口發(fā)送器正在向CPU申請(qǐng)中斷。向串行口的數(shù)據(jù)緩沖器SBUF寫(xiě)入一個(gè)數(shù)據(jù)后就立即啟動(dòng)發(fā)送器繼續(xù)發(fā)送。RI——串行口接收中斷標(biāo)志。若串行口接收器允許接收,并以方式0工作,每當(dāng)接收到第8位數(shù)據(jù)時(shí),置位RI;若以方式1、2或3工作,且SM2=0時(shí),每當(dāng)接收器接收到停止位的中間時(shí)置位RI;當(dāng)串行口以方式2或方式3工作、且SM2=1時(shí),僅當(dāng)接收到的第9位數(shù)據(jù)RB8為1后,同時(shí)還要接收到停止位的中間時(shí)置位RI。RI為1表示串行口接收器正向CPU申請(qǐng)中斷。注意:在CPU響應(yīng)發(fā)送器中斷請(qǐng)求,轉(zhuǎn)向執(zhí)行中斷服務(wù)程序時(shí)并不清“0”TI或RI,TI或RI必須由用戶在中斷服務(wù)程序中清“0”,即在中斷服務(wù)程序中必須有CLRTI或ANLSCON,#0FDH等清“0”TI或RI的指令。位D7D6D5D4D3D2D1D0SCONSM0SM1SM2RENTB8RB8TIRI位地址9F9E9D9C9B9A99982中斷的開(kāi)放,禁止及優(yōu)先級(jí)中斷源是否響應(yīng)受中斷允許寄存器IE的控制,只有開(kāi)放某中斷源時(shí),該中斷才會(huì)被響應(yīng)。IE的每一位控制著一個(gè)中斷源,當(dāng)該位置位時(shí),對(duì)應(yīng)的中斷源能夠被CPU響應(yīng),清“0”則不被響應(yīng)。中斷的優(yōu)先級(jí)受中斷優(yōu)先級(jí)寄存器IP的控制,由IP中相應(yīng)位置“1”或清“0”決定其為高優(yōu)先級(jí)還是低優(yōu)先級(jí)。EA——中斷允許總控位。如EA=0,則不響應(yīng)中斷;EA=1,每個(gè)中斷源由各自的允許位控制。ES——允許串行通道中斷。如ES=0,禁止串行通道中斷;ES=1,允許串行通道中斷。ET1——允許定時(shí)器1溢出中斷。如ET1=0,則禁止定時(shí)器1中斷;ET1=1,則允許定時(shí)器1中斷。EX1——允許外部中斷源1。如果EX1=0,則禁止外部中斷1;EX1=1則允許外部中斷1。ET0——允許定時(shí)器0溢出中斷。如ET0=0,則禁止定時(shí)器0中斷;ET0=1,則允許定時(shí)器0中斷。EX0——允許外部中斷源0。如果EX0=0,則禁止外部中斷0;EX0=1則允許外部中斷0。1.中斷允許寄存器IE(字節(jié)地址為A8H)

位D7D6D5D4D3D2D1D0代號(hào)EA--ESET1EX1ET0EX02.中斷優(yōu)先級(jí)寄存器IP(字節(jié)地址為B8H)

位D7D6D5D4D3D2D1D0代號(hào)---PSPT1PX1PT0PX0PS——決定串行通道中斷優(yōu)先級(jí)。PS=1,則編程為高優(yōu)先級(jí)PT1——決定定時(shí)器1中斷優(yōu)先級(jí)。PT1=1,則編程為高優(yōu)先級(jí)PX1——決定外中斷1優(yōu)先級(jí)。PX1=1,則編程為高優(yōu)先級(jí)。PT0——決定定時(shí)器0中斷優(yōu)先級(jí)。PT0=1,則編程為高優(yōu)先級(jí)PX0——決定外中斷0優(yōu)先級(jí)。PX0=1,則編程為高優(yōu)先級(jí)。如果讓某中斷源允許中斷,必須同時(shí)使EA=1,使CPU開(kāi)放中斷,所以EA相當(dāng)于中斷允許的“總開(kāi)關(guān)”。至于中斷優(yōu)先級(jí)寄存器IP,其復(fù)位清零或置位將把相應(yīng)的中斷源置為低優(yōu)先級(jí)或高優(yōu)先級(jí)中斷,同樣,用戶也可對(duì)相應(yīng)位置位或清零來(lái)改變各中斷源的中斷優(yōu)先級(jí)。MCS-51單片機(jī)對(duì)中斷優(yōu)先級(jí)的處理原則是:①不同級(jí)的中斷源同時(shí)申請(qǐng)中斷時(shí):先高后低;②處理低級(jí)中斷又收到高級(jí)中斷請(qǐng)求時(shí):停低轉(zhuǎn)高;③處理高級(jí)中斷卻收到低級(jí)中斷請(qǐng)求時(shí),高不睬低;④同一級(jí)的中斷源同時(shí)申請(qǐng)中斷時(shí):事先預(yù)定。⑤對(duì)于同一優(yōu)先級(jí),單片機(jī)對(duì)其中斷次序安排如下:中斷源優(yōu)先級(jí)外部中斷0最高定時(shí)/計(jì)數(shù)器T0溢出中斷外部中斷1定時(shí)/計(jì)數(shù)器T1溢出中斷串行口中斷最低

中斷系統(tǒng)結(jié)構(gòu)外部中斷請(qǐng)求0內(nèi)部定時(shí)器0TRT—發(fā)送R—接收中斷請(qǐng)求標(biāo)志寄存器源允許總允許中斷允許寄存器中斷優(yōu)先級(jí)寄存器查詢硬件中斷源標(biāo)示符中斷源標(biāo)示符中斷矢量低優(yōu)先級(jí)中斷請(qǐng)求INT1外部中斷請(qǐng)求1內(nèi)部定時(shí)器1內(nèi)部串行口INT0中斷矢量高優(yōu)先級(jí)中斷請(qǐng)求二中斷響應(yīng)過(guò)程

1.中斷響應(yīng)條件CPU響應(yīng)中斷的條件有:有中斷源發(fā)出中斷請(qǐng)求。中斷總允許位EA=1,即CPU開(kāi)中斷。申請(qǐng)中斷的中斷源的中斷允許位為1,即中斷沒(méi)有被屏蔽。無(wú)同級(jí)或更高級(jí)中斷正在被服務(wù)。當(dāng)前的指令周期已經(jīng)結(jié)束。若現(xiàn)行指令為RETI或者是訪問(wèn)IE或IP指令時(shí),該指令以及緊接著的另一條指令已經(jīng)執(zhí)行完畢。2.中斷響應(yīng)操作過(guò)程表5.1中斷源及其對(duì)應(yīng)的中斷矢量中斷源中斷矢量外部中斷00003H定時(shí)器T0中斷000BH外部中斷10013H定時(shí)器T1中斷001BH串行口中斷0023H5.3.2中斷處理圖5.8中斷服務(wù)程序流程實(shí)現(xiàn)單步調(diào)試的程序如下。ORG 0000H LJMP MAIN ORG 0003H ;外部中斷0的中斷服務(wù)程序入口 LJMP INTSEV ORG 0030HMAIN: MOV SP,#70H CLR IT0 ;設(shè)INT0為電平方式 SETB EA ;開(kāi)中斷 SETB PX0 ;外部中斷為高優(yōu)先級(jí) SETB EX0 ;允許外部中斷0中斷 …… ;用戶程序 …… ……INTSEV: JNB P3.2,$ JB P3.2,$ RETI案例:4路數(shù)字顯示搶答器

回首頁(yè)項(xiàng)目任務(wù)應(yīng)用AT89C51芯片及簡(jiǎn)單的外圍電路,設(shè)計(jì)制作一個(gè)4人搶答器,當(dāng)按下“開(kāi)始”按鍵后,參賽選手進(jìn)行搶答,使用1位數(shù)碼管顯示最先按鍵的選手的號(hào)碼并保持到下一次搶答開(kāi)始。項(xiàng)目分析由于選手的搶答對(duì)于單片機(jī)系統(tǒng)來(lái)說(shuō),是突發(fā)事件,因此本項(xiàng)目利用單片機(jī)的中斷系統(tǒng)實(shí)現(xiàn)。返回一、硬件電路設(shè)計(jì)1、設(shè)計(jì)思路利用AT89C51芯片P1口控制1位數(shù)碼管進(jìn)行選手編號(hào)的顯示,利用P2口的P2.0~P2.3引腳連接4只按鍵。使用74LS14N芯片實(shí)現(xiàn)按鍵信號(hào)的識(shí)別及選手間的屏蔽。2、數(shù)碼管控制電路七段LED數(shù)碼管由七個(gè)發(fā)光二極管做成條狀,按圖c所示排列而成,除顯示數(shù)字的七段之外還有一個(gè)小數(shù)點(diǎn)dp,實(shí)為八段顯示。根據(jù)LED的連接方式不同,分為共陰極和共陽(yáng)極兩種。對(duì)于共陰極連接,如圖a所示,只有當(dāng)公共端(COM)接低電平,陽(yáng)極接高電平時(shí)對(duì)應(yīng)的字段才點(diǎn)亮;而對(duì)于共陽(yáng)極連接,如圖b所示,只有當(dāng)公共端(COM)接高電平,陰極接低電平時(shí)對(duì)應(yīng)的段才點(diǎn)亮。公共端(COM)作為數(shù)碼管的選通控制,稱為位選碼。3、搶答器控制電路

4只搶答按鍵分別連接到P2口的P2.0、P2.1、P2.2、P2.3引腳,通過(guò)按鍵是否動(dòng)作控制對(duì)應(yīng)引腳電平的變化;同時(shí)將電平的變化作為74LS14N芯片的輸入信號(hào)。當(dāng)有選手搶答而按下按鍵時(shí),74LS14N芯片的對(duì)應(yīng)輸出變?yōu)榈碗娖?,同時(shí)作為單片機(jī)的外部中斷信號(hào)引入INT0(P3.2)引腳。

下圖給出了74LS14N芯片的外形、內(nèi)部結(jié)構(gòu)及輸入/輸出關(guān)系。由上圖可知,此芯片為雙列直插封裝,共14個(gè)引腳。在使用時(shí),將7號(hào)引腳(GND)接地,14號(hào)引腳(Vcc)接電源正極,其余各引腳根據(jù)需要成對(duì)連接即可。本設(shè)計(jì)使用A1~A4輸入,Y1~Y4輸出。

當(dāng)有鍵被按下,芯片74LS14的輸入端會(huì)得到一個(gè)高電位(1)信號(hào),其對(duì)應(yīng)輸出端變?yōu)榈碗娢唬?),從而向單片機(jī)發(fā)出一個(gè)中斷請(qǐng)求信號(hào)。單片機(jī)收到中斷請(qǐng)求后,響應(yīng)中斷并到P2口查詢哪個(gè)按鍵按下,然后將其號(hào)碼顯示在LED數(shù)碼管上。電路如下圖所示。4、控制電路

(2)INT0(P3.2)引腳單片機(jī)外部中斷0的輸入引腳,與74LS14N的輸出連接。當(dāng)有選手按下按鍵時(shí),與非門(mén)有低電平輸出,而INT0為低電平有效,此時(shí)單片機(jī)響應(yīng)中斷。(三)材料表序號(hào)元件名稱元件型號(hào)元件數(shù)量備注1單片機(jī)芯片AT89C511片DIP封裝2集成非門(mén)芯片74LS141片DIP封裝3數(shù)碼管ArkSM420501只共陰極4晶振12MHz1只5電容30pF2只瓷片電容22uF1只電解電容6電阻200Ω8只碳膜電阻,可用排阻代替10kΩ1只碳膜電阻7按鍵1只無(wú)自鎖1只帶自鎖840腳IC座1片安裝AT89C51芯片914腳IC座1片安裝74LS14芯片10導(dǎo)線二、控制程序的編寫(xiě)

(一)繪制程序流程圖

本控制顯示的數(shù)字要根據(jù)按鍵的識(shí)別情況進(jìn)行顯示,因此程序的結(jié)構(gòu)應(yīng)使用分支程序結(jié)構(gòu)。(二)編制匯編源程序標(biāo)號(hào)操作碼操作數(shù)指令意義(注釋)ORG0000H;偽指令,指明程序從0000H單元開(kāi)始存放LJMPMAIN5;控制程序跳轉(zhuǎn)到“MAIN5”處執(zhí)行ORG0003H;外部中斷0的入口地址LJMPINTT0;控制程序跳轉(zhuǎn)到“INTT0”處執(zhí)行ORG0050H;主程序從0500H單元開(kāi)始MAIN5:MOVP1,#0FFH;沒(méi)有按鍵按下時(shí),無(wú)顯示SETBIT0;設(shè)置外部中斷0為負(fù)邊沿觸發(fā)SETBET0;打開(kāi)外部中斷0SETBEA;打開(kāi)所有中斷SJMP$;等待按鍵INTT0:PUSHPSW;保護(hù)狀態(tài)寄存器的內(nèi)容PUSHACC;保護(hù)A的內(nèi)容JBP2.0,XS1;1號(hào)鍵是否被按下JBP2.1,XS2;2號(hào)鍵是否被按下標(biāo)號(hào)操作碼操作數(shù)指令意義(注釋)JBP2.2,XS3;3號(hào)鍵是否被按下JBP2.3,XS4;4號(hào)鍵是否被按下BACK:POPACC;彈出APOPPSW;彈出狀態(tài)寄存器PSWCLREA;關(guān)所有中斷RETI;中斷程序返回XS1:MOVP1,#06H;1號(hào)鍵按下時(shí),顯示“1”AJMPBACKXS2:MOVP1,#5BH

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論