MCS-51單片機(jī)的中斷_第1頁
MCS-51單片機(jī)的中斷_第2頁
MCS-51單片機(jī)的中斷_第3頁
MCS-51單片機(jī)的中斷_第4頁
MCS-51單片機(jī)的中斷_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第5章 MCS - 51單片機(jī)的中斷 第第4章章 MCS - 51單片機(jī)的中斷單片機(jī)的中斷 4.1 中斷的概述中斷的概述 4.2 MCS - 51中斷系統(tǒng)中斷系統(tǒng)4.3 中斷系統(tǒng)的應(yīng)用中斷系統(tǒng)的應(yīng)用 第5章 MCS - 51單片機(jī)的中斷 4.1 中中 斷斷 的的 概概 述述 1. 中斷中斷 中斷是指計(jì)算機(jī)在執(zhí)行某一程序的過程中, 由于計(jì)算機(jī)系統(tǒng)內(nèi)、 外的某種原因, 而必須中止原程序的執(zhí)行, 轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序, 待處理結(jié)束之后, 再回來繼續(xù)執(zhí)行被中止的原程序的過程。 采用了中斷技術(shù)后的計(jì)算機(jī), 可以解決CPU與外設(shè)之間速度匹配的問題, 使計(jì)算機(jī)可以及時處理系統(tǒng)中許多隨機(jī)的參數(shù)和信息, 同時

2、, 它也提高了計(jì)算機(jī)處理故障與應(yīng)變的能力。 第5章 MCS - 51單片機(jī)的中斷 2. 中斷源中斷源 中斷源是指在計(jì)算機(jī)系統(tǒng)中向CPU發(fā)出中斷請求的來源, 中斷可以人為設(shè)定, 也可以是為響應(yīng)突發(fā)性隨機(jī)事件而設(shè)置。通常有I/O設(shè)備、實(shí)時控制系統(tǒng)中的隨機(jī)參數(shù)和信息故障源等。 第5章 MCS - 51單片機(jī)的中斷 3. 中斷優(yōu)先級中斷優(yōu)先級 中斷優(yōu)先級越高, 則響應(yīng)優(yōu)先權(quán)就越高。當(dāng)CPU正在執(zhí)行中斷服務(wù)程序時, 又有中斷優(yōu)先級更高的中斷申請產(chǎn)生, 這時CPU就會暫停當(dāng)前的中斷服務(wù)轉(zhuǎn)而處理高級中斷申請, 待高級中斷處理程序完畢再返回原中斷程序斷點(diǎn)處繼續(xù)執(zhí)行, 這一過程稱為中斷嵌套。 第5章 MCS -

3、 51單片機(jī)的中斷 4. 中斷響應(yīng)的過程中斷響應(yīng)的過程 (1) 在每條指令結(jié)束后, 系統(tǒng)都自動檢測中斷請求信號, 如果有中斷請求,且CPU處于開中斷狀態(tài)下, 則響應(yīng)中斷。 (2) 保護(hù)現(xiàn)場, 在保護(hù)現(xiàn)場前, 一般要關(guān)中斷, 以防止現(xiàn)場被破壞。保護(hù)現(xiàn)場一般是用堆棧指令將原程序中用到的寄存器推入堆棧。 (3) 中斷服務(wù), 即為相應(yīng)的中斷源服務(wù)。 (4) 恢復(fù)現(xiàn)場, 用堆棧指令將保護(hù)在堆棧中的數(shù)據(jù)彈出來, 在恢復(fù)現(xiàn)場前要關(guān)中斷, 以防止現(xiàn)場被破壞。在恢復(fù)現(xiàn)場后應(yīng)及時開中斷。 (5) 返回, 此時 CPU將推入到堆棧的斷點(diǎn)地址彈回到程序計(jì)數(shù)器, 從而使CPU繼續(xù)執(zhí)行剛才被中斷的程序。 第5章 MCS

4、- 51單片機(jī)的中斷 4.2 MCS - 51中斷系統(tǒng)中斷系統(tǒng)圖圖5.1 MCS - 51中斷系統(tǒng)結(jié)構(gòu)框圖中斷系統(tǒng)結(jié)構(gòu)框圖 第5章 MCS - 51單片機(jī)的中斷 5.2.1 中斷源中斷源 表表 5.1 8051 中中 斷斷 源源第5章 MCS - 51單片機(jī)的中斷 MCS-51單片機(jī)5個中斷源的中斷請求信號分別鎖存在特殊功能寄存器TCON和SCON中:(1)TCON為定時/計(jì)數(shù)器控制寄存器,字節(jié)地址為88H,其中鎖存的中斷源請求標(biāo)志如表51所示。 表51 TCON鎖存的中斷源 第5章 MCS - 51單片機(jī)的中斷 1. 特殊功能寄存器特殊功能寄存器TCON中的標(biāo)志中的標(biāo)志 TF1TR1TF0T

5、R0IE1IT1IE0IT0(MSB)(LSB)圖 5.2 TCON格式 IT0: INT0觸發(fā)方式控制位,0:低電平觸發(fā)。1:下降邊沿觸發(fā)IE0: INT0中斷標(biāo)志位。1:中斷觸發(fā)。轉(zhuǎn)向中斷處理由硬件清0TF0: T0溢出中斷標(biāo)志位。1:中斷觸發(fā)。轉(zhuǎn)向中斷處理由硬件清0。 如果為查詢方式,可由軟件清0。TR0: T0起動位。1:開始記數(shù)。0:停止記數(shù)第5章 MCS - 51單片機(jī)的中斷 2. 特殊功能寄存器特殊功能寄存器SCON 圖圖 5.3 SCON格式 SM0SM1SM2RENTB0RB0TIRI(MSB)LSB SCON串行口控制寄存器,字節(jié)地址為98H。 SCON的低2位鎖存串行口的

6、接收中斷和發(fā)送中斷標(biāo)志,其格式如表52所示。第5章 MCS - 51單片機(jī)的中斷 TI:串行口發(fā)送中斷標(biāo)志。在串行口以方式0發(fā)送時,每當(dāng)發(fā)送完8位數(shù)據(jù)后,由硬件置位TI;若以方式1、2、3發(fā)送時,在發(fā)送停止位的開始時置位TI。TI=1表示串行口發(fā)送器正在向CPU申請中斷。值得注意的是當(dāng)CPU響應(yīng)該中斷后,轉(zhuǎn)向中斷服務(wù)程序時并不復(fù)位TI,TI必須由用戶在中斷服務(wù)程序中用軟件清0(可用CLRTI或其它指令)。 第5章 MCS - 51單片機(jī)的中斷 RI:串行口接收中斷標(biāo)志。若串行口接收器允許接收并以方式0工作,則每當(dāng)接收到第8位數(shù)據(jù)時置位RI;若以方式1、2、3工作,且SM2=0時,則每當(dāng)接收器接

7、收到停止位的中間時置位RI;當(dāng)串行口以方式2或方式3工作,且SM2=1時,僅當(dāng)接收到的第9位數(shù)據(jù)RB8為1后,同時還要接收到停止位的中間時置位RI。RI為1表示串行口接收器正向CPU申請中斷,同樣RI必須由用戶在中斷服務(wù)程序中清0。8051復(fù)位后,SCON也被清0。第5章 MCS - 51單片機(jī)的中斷 5.2.2 中斷控制中斷控制 1. 中斷允許控制中斷允許控制 MCS - 51單片機(jī)有 5個(8052有 6個)中斷源, 為了使每個中斷源都能獨(dú)立地被允許或禁止, 以便用戶能靈活使用, 它在每個中斷信號的通道中設(shè)置了一個中斷屏蔽觸發(fā)器。 只有該觸發(fā)器無效, 它所對應(yīng)的中斷請求信號才能進(jìn)入CPU,

8、 即此類型中斷開放。 否則, 即使其對應(yīng)的中斷標(biāo)志位置1, CPU也不會響應(yīng)中斷, 即此類型中斷被屏蔽了。同時CPU內(nèi)還設(shè)置了一個中斷允許觸發(fā)器, 它控制CPU能否響應(yīng)中斷。 第5章 MCS - 51單片機(jī)的中斷 圖 5.4 IE格式 EAXET2ESET1EX1ET0EX0(MSB)(LSB)第5章 MCS - 51單片機(jī)的中斷 2. 中斷優(yōu)先級中斷優(yōu)先級 XXPT2PSPT1PX1PT0PX0(MSB)(LSB)圖 5.5 IP的格式 其中:PX0:外部中斷0優(yōu)先級控制位。PT0:定時器0中斷優(yōu)先級控制位。PX1:外部中斷1優(yōu)先級控制位。PT1:定時器1中斷優(yōu)先級控制位。PS:串行口中斷優(yōu)

9、先級控制位。上面優(yōu)先級控制位規(guī)定1為高優(yōu)先級,0為低優(yōu)先級。第5章 MCS - 51單片機(jī)的中斷 表 5.2 同級內(nèi)第二優(yōu)先級次序 第5章 MCS - 51單片機(jī)的中斷 例如, 某軟件中對寄存器IE、 IP設(shè)置如下: MOV IE, 8FH MOV IP, 06H 則此時該系統(tǒng)中: CPU中斷允許; 允許外部中斷 0、 外部中斷 1、 定時器 /計(jì)數(shù)器 0、 定時器 /計(jì)數(shù)器1提出的中斷申請; 允許中斷源的中斷優(yōu)先次序?yàn)? 定時器 /計(jì)數(shù)器 0外部中斷 1外部中斷 0定時器/計(jì)數(shù)器 1。 第5章 MCS - 51單片機(jī)的中斷 5.2.3 中斷響應(yīng)中斷響應(yīng) 1. 中斷響應(yīng)的條件中斷響應(yīng)的條件 (

10、1) 同級或高優(yōu)先級的中斷已在進(jìn)行中; (2) 當(dāng)前的機(jī)器周期還不是正在執(zhí)行指令的最后一個機(jī)器周期(換言之, 正在執(zhí)行的指令完成前, 任何中斷請求都得不到響應(yīng)); (3) 正在執(zhí)行的是一條 RETI或者訪問特殊功能寄存器 IE或 IP的指令(換言之, 在 RETI或讀寫 IE或 IP之后, 不會馬上響應(yīng)中斷請求, 而至少執(zhí)行一條其它指令之后才會響應(yīng))。 第5章 MCS - 51單片機(jī)的中斷 2. 中斷響應(yīng)過程中斷響應(yīng)過程 單片機(jī)一旦響應(yīng)中斷請求, 就由硬件完成以下功能: (1) 根據(jù)響應(yīng)的中斷源的中斷優(yōu)先級, 使相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器置 1; (2) 執(zhí)行硬件中斷服務(wù)子程序調(diào)用, 并把當(dāng)前程序

11、計(jì)數(shù)器PC的內(nèi)容壓入堆棧; (3) 清除相應(yīng)的中斷請求標(biāo)志位(串行口中斷請求標(biāo)志 RI和 TI除外); (4) 把被響應(yīng)的中斷源所對應(yīng)的中斷服務(wù)程序的入口地址(中斷矢量)送入PC, 從而轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。 第5章 MCS - 51單片機(jī)的中斷 表 5.3 中斷服務(wù)程序入口地址表 第5章 MCS - 51單片機(jī)的中斷 3.中斷響應(yīng)時間 所謂中斷響應(yīng)時間是指從查詢中斷請求標(biāo)志位到轉(zhuǎn)入中斷服務(wù)程序入口地址所需的機(jī)器周期數(shù)(對單一中斷源而言)。 響應(yīng)中斷最短需要3個機(jī)器周期。若CPU查詢中斷請求標(biāo)志的周期正好是執(zhí)行1條指令的最后1個機(jī)器周期,則不需等待就可以響應(yīng)。而響應(yīng)中斷執(zhí)行1條長調(diào)用指令需要

12、2個機(jī)器周期,加上查詢的1個機(jī)器周期,一共需要3個機(jī)器周期才開始執(zhí)行中斷服務(wù)程序。 第5章 MCS - 51單片機(jī)的中斷 4:中斷程序 在中斷服務(wù)程序編程時,首先要對中斷系統(tǒng)進(jìn)行初始化,也就是對幾個特殊功能寄存器的有關(guān)控制位進(jìn)行賦值。具體來說,就是要完成下列工作: (1)開中斷和允許中斷源中斷; (2)確定各中斷源的優(yōu)先級; (3)若是外部中斷,則應(yīng)規(guī)定是電平觸發(fā)還是邊沿觸發(fā)。第5章 MCS - 51單片機(jī)的中斷 例如, 現(xiàn)有外部中斷 1 提出申請, 且主程序中有R0、 R1、 DPTR、累加器A需保護(hù), 則編制程序應(yīng)為: ORG 0000H AJMP MAIN ORG 0013H LJMP

13、INT1 ORG 0100H MAIN: ; 主程序 ORG 1000H 第5章 MCS - 51單片機(jī)的中斷 INT1: PUSH ACC ; 中斷服務(wù)程序 PUSH DPH PUSH DPL PUSH 0 PUSH 1 POP 1 POP 0 POP DPL POP DPH POP ACC RETI 第5章 MCS - 51單片機(jī)的中斷 編程中應(yīng)注意: (1) 在 0000H放一條跳轉(zhuǎn)到主程序的跳轉(zhuǎn)指令, 這是因?yàn)?MCS-51單片機(jī)復(fù)位后, PC的內(nèi)容變?yōu)?0000H, 程序從 0000H 開始執(zhí)行, 緊接著 0003H是中斷程序入口地址, 故在此中間只能插入一條轉(zhuǎn)移指令; (2) 響應(yīng)

14、中斷時, 先自動執(zhí)行一條隱指令“LCALL 0013H”, 而 0013H至 001BH(定時器 1 溢出中斷入口地址)之間可利用的存儲單元不夠, 故放一條無條件轉(zhuǎn)移指令。 (3) 在中斷服務(wù)程序的末尾, 必須安排一條中斷返回指令RETI, 使程序自動返回主程序。 第5章 MCS - 51單片機(jī)的中斷 例1:若規(guī)定外部中斷0為電平觸發(fā)方式,高優(yōu)先級,試寫出有關(guān)的初始化程序。 解:一般可采用位操作指令來實(shí)現(xiàn): SETB EA ;開中斷SETB EX0 ;允許外中斷0中斷SETB PX0 ;外中斷0定為高優(yōu)先級CLR IT0 ;電平觸發(fā)第5章 MCS - 51單片機(jī)的中斷 例2:若規(guī)定外部中斷1為

15、邊沿觸發(fā)方式,低優(yōu)先級,在中斷服務(wù)程序中將寄存器B的內(nèi)容左環(huán)移一位,B的初值設(shè)為01H。試編寫主程序與中斷服務(wù)程序。解:程序如下 ORG 0000H ;主程序LJMP MAIN ;主程序轉(zhuǎn)至MAIN處ORG 0013H ;中斷服務(wù)程序LJMP INT ;中斷服務(wù)程序轉(zhuǎn)至INT處 第5章 MCS - 51單片機(jī)的中斷 MAIN:SETB EA ;開中斷 SETB EX1 ;允許外中斷1中斷CLRP X1 ;設(shè)為低優(yōu)先級SETB IT1 ;邊沿觸發(fā)MOV B,01H ;設(shè)B的初值HALT:SJMP HALT ;暫停等待中斷INT:MOVA,B;ABRL A ;左環(huán)移一位MOV B,A ;回送RET

16、I ;中斷返回第5章 MCS - 51單片機(jī)的中斷 5.3 中斷系統(tǒng)的應(yīng)用中斷系統(tǒng)的應(yīng)用 例例 1 單步操作的中斷實(shí)現(xiàn)。 把一個外部中斷(設(shè)為INT0)設(shè)置為電平激活方式。其中斷服務(wù)程序的末尾寫上如下幾條指令: JNB P3.2, $ ; 在INT0變高前原地等待(死循環(huán)) JB P3.2, $; 在 INT0變低前原地等待(死循環(huán)) RETI ; 返回并執(zhí)行一條指令 第5章 MCS - 51單片機(jī)的中斷 現(xiàn)在,若INT0保持低電平, 且允許INT0中斷, 則CPU就進(jìn)入外部中斷 0 服務(wù)程序, 由于有上述幾條指令, 它就會停在 JNB處, 原地等待。當(dāng)INT0 端出現(xiàn)一個正脈沖(由低到高,

17、再到低)時, 程序就會往下執(zhí)行, 執(zhí)行RETI后, 將返回主程序, 往下執(zhí)行一條指令, 然后又立即響應(yīng)中斷,以等待INT0端出現(xiàn)的下一個正脈沖。 這樣在INT0端每出現(xiàn)一個正脈沖, 主程序就執(zhí)行一條指令, 實(shí)現(xiàn)了單步執(zhí)行的目的, 要注意的是, 這個正脈沖的高電平持續(xù)時間不小于 3個周期, 以確保 CPU能采集到高電平值。 第5章 MCS - 51單片機(jī)的中斷 例例 2 多中斷源。多中斷源。 MCS - 51 單片機(jī)有兩個外部中斷輸入端, 當(dāng)有 2 個以上中斷源時, 它的中斷輸入端就不夠了。此時, 可以采用中斷與查詢相結(jié)合的方法來實(shí)現(xiàn)。 可以使每個中斷源都接在同一個外部中斷輸入端上, 同時利用輸入口線作為多中斷源情況下各中斷源的識別線。第5章 MCS - 51單片機(jī)的中斷 圖 5.6 多中斷源 第5章 MCS - 51單片機(jī)的中斷 ORG 0003H LJMP INT0INT0: PUSH PSW PUSH ACC JB P0.7, DV1 JB P0.6, DV2 JB P0

溫馨提示

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

最新文檔

評論

0/150

提交評論