單片機(jī)原理及接口技術(shù)第五章_第1頁(yè)
單片機(jī)原理及接口技術(shù)第五章_第2頁(yè)
單片機(jī)原理及接口技術(shù)第五章_第3頁(yè)
單片機(jī)原理及接口技術(shù)第五章_第4頁(yè)
單片機(jī)原理及接口技術(shù)第五章_第5頁(yè)
已閱讀5頁(yè),還剩48頁(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)介

1、單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)華中科技大學(xué)出版社華中科技大學(xué)出版社2013-21單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)第第5 5章章 單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)194內(nèi)容概要內(nèi)容概要介紹片內(nèi)功能部件中斷系統(tǒng)的介紹片內(nèi)功能部件中斷系統(tǒng)的硬件結(jié)構(gòu)硬件結(jié)構(gòu)和和工作原理工作原理。掌握與中斷系統(tǒng)掌握與中斷系統(tǒng)有關(guān)的特殊功能寄存器有關(guān)的特殊功能寄存器以及中斷系統(tǒng)的應(yīng)用特性。以及中斷系統(tǒng)的應(yīng)用特性。應(yīng)能熟練地進(jìn)行中斷系統(tǒng)的應(yīng)能熟練地進(jìn)行中斷系統(tǒng)的初始化編程初始化編程以及以及中斷服務(wù)子程序的設(shè)計(jì)中斷服務(wù)子程序的設(shè)計(jì)。單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)1955.1 5.1 中斷概述中斷概

2、述5.2 515.2 51系列單片機(jī)中斷系統(tǒng)系列單片機(jī)中斷系統(tǒng) 5.2.1 5.2.1 中斷請(qǐng)求源中斷請(qǐng)求源 5.2.2 5.2.2 中斷控制中斷控制 5.2.3 5.2.3 中斷響應(yīng)中斷響應(yīng) 5.2.4 5.2.4 中斷請(qǐng)求撤銷(xiāo)中斷請(qǐng)求撤銷(xiāo)5.3 5.3 中斷系統(tǒng)編程舉例中斷系統(tǒng)編程舉例 第第5 5章章 單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)5.1 中斷概述 中斷技術(shù)主要用于實(shí)時(shí)監(jiān)測(cè)與控制,要求單片機(jī)能及時(shí)地響應(yīng)中斷請(qǐng)求源提出的服務(wù)請(qǐng)求,并作出快速響應(yīng)、及時(shí)處理。這是由片內(nèi)的中斷系統(tǒng)來(lái)實(shí)現(xiàn)的。 當(dāng)中斷請(qǐng)求源發(fā)出中斷請(qǐng)求時(shí),如果中斷請(qǐng)求被允許,單片機(jī)暫時(shí)中止當(dāng)

3、前正在執(zhí)行的主程序,轉(zhuǎn)到中斷服務(wù)處理程序處理中斷服務(wù)請(qǐng)求。 中斷服務(wù)處理程序處理完中斷服務(wù)請(qǐng)求后,再回到原來(lái)被中止的程序之處(斷點(diǎn)),繼續(xù)執(zhí)行被中斷的主程序。 圖5.1為整個(gè)中斷響應(yīng)和處理過(guò)程。196單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)197圖圖5.15.1 中斷響應(yīng)和處理過(guò)程中斷響應(yīng)和處理過(guò)程單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)如果單片機(jī)沒(méi)有中斷系統(tǒng),單片機(jī)的大量時(shí)間可能會(huì)浪費(fèi)在查詢是否有服務(wù)請(qǐng)求發(fā)生的定時(shí)查詢操作上。采用中斷技術(shù)完全消除了單片機(jī)在查詢方式中的等待現(xiàn)象,大大地提高了單片機(jī)的工作效率和實(shí)時(shí)性。5.2 51系列單片機(jī)中斷系統(tǒng)中斷系統(tǒng)結(jié)構(gòu)圖如圖5.2所示。中斷系統(tǒng)有5個(gè)中斷

4、請(qǐng)求源(簡(jiǎn)稱(chēng)中斷源),兩個(gè)中斷優(yōu)先級(jí),可實(shí)現(xiàn)兩級(jí)中斷服務(wù)程序嵌套。每一中斷源可用軟件獨(dú)立控制為允許中斷或關(guān)中斷狀態(tài),中斷優(yōu)先級(jí)均可用軟件來(lái)設(shè)置。198單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)199199圖圖5.2 5.2 MCS-51MCS-51的中斷系統(tǒng)結(jié)構(gòu)示意圖的中斷系統(tǒng)結(jié)構(gòu)示意圖單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)5.2.1 中斷請(qǐng)求源由由圖圖5.2可見(jiàn),可見(jiàn),MCS-51中斷系統(tǒng)共有中斷系統(tǒng)共有5個(gè)中斷請(qǐng)求源:個(gè)中斷請(qǐng)求源:(1) 外部中斷請(qǐng)求外部中斷請(qǐng)求0,中斷請(qǐng)求信號(hào)由,中斷請(qǐng)求信號(hào)由 引腳輸入,中引腳輸入,中斷請(qǐng)求標(biāo)志為斷請(qǐng)求標(biāo)志為IE0。(2) 外部中斷請(qǐng)求外部中斷請(qǐng)求1,

5、中斷請(qǐng)求信號(hào)由,中斷請(qǐng)求信號(hào)由 引腳輸入,中引腳輸入,中斷請(qǐng)求標(biāo)志為斷請(qǐng)求標(biāo)志為IE1。(3)定時(shí)器/計(jì)數(shù)器T0計(jì)數(shù)溢出發(fā)出的中斷請(qǐng)求,中斷請(qǐng)求標(biāo)志為計(jì)數(shù)溢出發(fā)出的中斷請(qǐng)求,中斷請(qǐng)求標(biāo)志為T(mén)F0。(4)定時(shí)器/計(jì)數(shù)器T1計(jì)數(shù)溢出發(fā)出的中斷請(qǐng)求,中斷請(qǐng)求標(biāo)志為計(jì)數(shù)溢出發(fā)出的中斷請(qǐng)求,中斷請(qǐng)求標(biāo)志為T(mén)F1。(5)串行口中斷請(qǐng)求,中斷請(qǐng)求標(biāo)志為發(fā)送中斷中斷請(qǐng)求,中斷請(qǐng)求標(biāo)志為發(fā)送中斷TI或接收中斷或接收中斷RI。2000INT1INT0INT1INT單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)5個(gè)中斷請(qǐng)求源的個(gè)中斷請(qǐng)求源的中斷請(qǐng)求標(biāo)志分別由分別由TCON和和SCON的相應(yīng)位鎖的相應(yīng)位鎖存。存。1. 特殊

6、功能寄存器特殊功能寄存器TCON中的標(biāo)志位中的標(biāo)志位為定時(shí)器/計(jì)數(shù)器的控制寄存器,字節(jié)地址為88H,可位尋址。特殊功能寄存器TCON的格式如圖5.3所示。201圖圖5.35.3 特殊功能寄存器特殊功能寄存器TCONTCON的格式的格式單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)TCON各標(biāo)志位功能如下:(1)TF1定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T1的溢出中斷請(qǐng)求標(biāo)志位。的溢出中斷請(qǐng)求標(biāo)志位。當(dāng)當(dāng)T1計(jì)數(shù)產(chǎn)生溢出時(shí),由硬件使計(jì)數(shù)產(chǎn)生溢出時(shí),由硬件使TF1置置“1”,向,向CPU申請(qǐng)中斷。申請(qǐng)中斷。CPU響應(yīng)響應(yīng)TF1中斷時(shí),中斷時(shí),TF1標(biāo)志標(biāo)志由硬件自動(dòng)清“0”,TF1也可由軟件清也可由軟件清“0”。

7、(2)TF0定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0的溢出中斷請(qǐng)求標(biāo)志位,功能與的溢出中斷請(qǐng)求標(biāo)志位,功能與TF1類(lèi)似類(lèi)似。(3)IE1外部中斷請(qǐng)求外部中斷請(qǐng)求1的中斷請(qǐng)求標(biāo)志位。的中斷請(qǐng)求標(biāo)志位。(4)IE0外部中斷請(qǐng)求外部中斷請(qǐng)求0中斷請(qǐng)求標(biāo)志位,功能與中斷請(qǐng)求標(biāo)志位,功能與IE1類(lèi)似。類(lèi)似。(5)IT1選擇外部中斷請(qǐng)求選擇外部中斷請(qǐng)求1為跳沿觸發(fā)還是電平觸發(fā)。為跳沿觸發(fā)還是電平觸發(fā)。202單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)IT1=0,電平觸發(fā)方式,引腳方式,引腳 上低電平有效,并把上低電平有效,并把IE1置置“1”。轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件自動(dòng)自動(dòng)把把IE1清清“

8、0”。IT1=1,跳沿觸發(fā)方式,加到引腳方式,加到引腳 上的外部中斷請(qǐng)求輸入信號(hào)電上的外部中斷請(qǐng)求輸入信號(hào)電平從高到低的平從高到低的負(fù)跳變有效,并把,并把IE1置置“1”。轉(zhuǎn)向中斷服務(wù)程序時(shí),。轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件由硬件自動(dòng)把把IE1清清“0”。(6)IT0選擇外部中斷請(qǐng)求選擇外部中斷請(qǐng)求0為跳沿觸發(fā)方式還是電平觸發(fā)方式,為跳沿觸發(fā)方式還是電平觸發(fā)方式,其意義與其意義與IT1類(lèi)似。類(lèi)似。MCS-51復(fù)位后,后,TCON被清“0”,5個(gè)中斷源的中斷請(qǐng)求標(biāo)志個(gè)中斷源的中斷請(qǐng)求標(biāo)志均為均為0。TR1(D6位)、位)、TR0(D4位)位)這這2位位與中斷系統(tǒng)無(wú)關(guān),將在第,將在第6章定時(shí)器章定時(shí)器

9、/計(jì)數(shù)器中介紹。計(jì)數(shù)器中介紹。203單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)2. 特殊功能寄存器特殊功能寄存器SCON中的標(biāo)志位中的標(biāo)志位串行口控制寄存器,字節(jié)地址為串行口控制寄存器,字節(jié)地址為98H,可位尋址。低二位鎖存串行口的發(fā)送中斷和接收中斷的中斷請(qǐng)求標(biāo)志低二位鎖存串行口的發(fā)送中斷和接收中斷的中斷請(qǐng)求標(biāo)志TI和和RI,格式如,格式如圖5.4所示。 圖5.4 SCON中的中斷請(qǐng)求標(biāo)志位各標(biāo)志位的功能:各標(biāo)志位的功能: (1)TI串行口的發(fā)送中斷請(qǐng)求標(biāo)志位。每發(fā)送完一幀串行數(shù)據(jù)串行口的發(fā)送中斷請(qǐng)求標(biāo)志位。每發(fā)送完一幀串行數(shù)據(jù)后,后,TI自動(dòng)置自動(dòng)置“1”。TI標(biāo)志標(biāo)志必須由軟件清“0”。20

10、4單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)(2)RI串行口接收中斷請(qǐng)求標(biāo)志位。串行口接收完一個(gè)串行數(shù)據(jù)幀,硬件自動(dòng)使RI中斷請(qǐng)求標(biāo)志置“1”。必須在中斷服務(wù)程序中用指令對(duì)RI清“0”。 5.2.2 中斷控制中斷允許控制由中斷允許寄存器IE控制。中斷優(yōu)先級(jí)控制由中斷優(yōu)先級(jí)寄存器IP控制。1、中斷允許寄存器IEMCS-51的對(duì)各中斷源的開(kāi)放或屏蔽,是由中斷允許寄存器IE控制的。IE字節(jié)地址為A8H,可位尋址,格式如圖5.5所示。205單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù) 圖圖5.5 中斷允許寄存器中斷允許寄存器IE的格式的格式IE對(duì)中斷的開(kāi)放和關(guān)閉實(shí)現(xiàn)對(duì)中斷的開(kāi)放和關(guān)閉實(shí)現(xiàn)兩級(jí)控制。有一個(gè)總的

11、開(kāi)關(guān)中斷控制位有一個(gè)總的開(kāi)關(guān)中斷控制位EA(IE.7位),位),EA=0時(shí),所有的中斷請(qǐng)求被屏蔽;時(shí),所有的中斷請(qǐng)求被屏蔽;EA=1時(shí),開(kāi)放中斷,但時(shí),開(kāi)放中斷,但5個(gè)中斷源的中斷請(qǐng)求是否允許,還要由個(gè)中斷源的中斷請(qǐng)求是否允許,還要由IE中的低5位所所對(duì)應(yīng)的5個(gè)中斷請(qǐng)求允許控制位的狀態(tài)來(lái)決定(圖的狀態(tài)來(lái)決定(圖5.5)。)。206單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)IE中各位功能如下:(1)EA中斷允許總開(kāi)關(guān)控制位。EA=0,所有的中斷請(qǐng)求被屏蔽。EA=1,所有的中斷請(qǐng)求被開(kāi)放。(2)ES串行口中斷允許位。ES=0,禁止串行口中斷。ES=1,允許串行口中斷。(3)ET1定時(shí)器/計(jì)數(shù)器T1的

12、溢出中斷允許位。ET1=0,禁止T1溢出中斷。ET1=1,允許T1溢出中斷。(4)EX1外部中斷1中斷允許位。207單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)EX1=0,禁止外部中斷1中斷。EX1=1,允許外部中斷1中斷。(5)ET0定時(shí)器/計(jì)數(shù)器T0的溢出中斷允許位。ET0=0,禁止T0溢出中斷。ET0=1,允許T0溢出中斷。(6)EX0外部中斷0中斷允許位。EX0=0,禁止外部中斷0中斷。EX0=1,允許外部中斷0中斷。208208單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)MCS-51復(fù)位以后,IE被清“0”,所有中斷請(qǐng)求被禁止。IE中與各個(gè)中斷源相應(yīng)的位可用指令置“1”或清“0”。若使某一個(gè)

13、中斷源被允許中斷,除了IE相應(yīng)的位被置“1”外,還必須使EA位置“1”。改變IE的內(nèi)容,可由位操作指令來(lái)實(shí)現(xiàn)(即SETB bit;CLR bit),也可用字節(jié)操作指令實(shí)現(xiàn)。209單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)【例5.1】 若允許片內(nèi)若允許片內(nèi)2個(gè)定時(shí)器個(gè)定時(shí)器/計(jì)數(shù)器中斷,并禁止其他中斷源計(jì)數(shù)器中斷,并禁止其他中斷源的中斷請(qǐng)求,請(qǐng)編寫(xiě)設(shè)置的中斷請(qǐng)求,請(qǐng)編寫(xiě)設(shè)置IE的相應(yīng)程序段。的相應(yīng)程序段。(1)用位操作指令CLRES;禁止串行口中斷 CLREX0;禁止外部中斷0中斷CLREX1;禁止外部中斷1中斷SETBET0;允許定時(shí)器/計(jì)數(shù)器T0中斷SETBET1;允許定時(shí)器/計(jì)數(shù)器T1中斷S

14、ETBEA ;總中斷開(kāi)關(guān)位開(kāi)放(2)用字節(jié)操作指令MOV IE,#8AH上述兩段程序?qū)ι鲜鰞啥纬绦驅(qū)E的設(shè)置是相同的。的設(shè)置是相同的。210單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)2、中斷優(yōu)先級(jí)寄存器IPMCS-51的中斷請(qǐng)求源有的中斷請(qǐng)求源有兩個(gè)中斷優(yōu)先級(jí),由軟件分別設(shè)置為,由軟件分別設(shè)置為高優(yōu)先級(jí)中斷或或低優(yōu)先級(jí)中斷,可實(shí)現(xiàn):,可實(shí)現(xiàn):兩級(jí)中斷嵌套MCS-51正在執(zhí)行低優(yōu)先級(jí)中斷的服務(wù)程序時(shí),可被高優(yōu)先級(jí)中斷請(qǐng)求正在執(zhí)行低優(yōu)先級(jí)中斷的服務(wù)程序時(shí),可被高優(yōu)先級(jí)中斷請(qǐng)求所中斷,待高優(yōu)先級(jí)中斷處理完畢后,再返回低優(yōu)先級(jí)中斷服務(wù)程序。所中斷,待高優(yōu)先級(jí)中斷處理完畢后,再返回低優(yōu)先級(jí)中斷服務(wù)程序。

15、兩級(jí)中斷嵌套的的過(guò)程如如圖5.6所示。所示。211單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)212圖圖5.65.6 兩級(jí)中斷嵌套的過(guò)程兩級(jí)中斷嵌套的過(guò)程單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)各中斷源的中斷優(yōu)先級(jí)關(guān)系,可歸納為各中斷源的中斷優(yōu)先級(jí)關(guān)系,可歸納為兩條基本規(guī)則:(1)低優(yōu)先級(jí)可被高優(yōu)先級(jí)中斷,高優(yōu)先級(jí)不能低優(yōu)先級(jí)中斷。如果某一中斷源被設(shè)置為高優(yōu)先級(jí)中斷,則不能被任何其他的中斷源如果某一中斷源被設(shè)置為高優(yōu)先級(jí)中斷,則不能被任何其他的中斷源的中斷請(qǐng)求所中斷。的中斷請(qǐng)求所中斷。(2)任何一種任何一種中斷一旦得到響應(yīng),一旦得到響應(yīng),不會(huì)再被它的同級(jí)中斷源所中斷。中斷優(yōu)先級(jí)寄存器中斷優(yōu)先級(jí)寄存

16、器IP,其,其字節(jié)地址為B8H,可位尋址。只要用程,可位尋址。只要用程序改變其內(nèi)容,可進(jìn)行各中斷源序改變其內(nèi)容,可進(jìn)行各中斷源中斷優(yōu)先級(jí)的設(shè)置,IP寄存器的格式寄存器的格式如如圖圖5.7所示。所示。213單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù) 圖圖5.7 IP寄存器的格式寄存器的格式中斷優(yōu)先級(jí)寄存器中斷優(yōu)先級(jí)寄存器IP各位的含義如下:如下:(1)PS串行口中斷優(yōu)先級(jí)控制位串行口中斷優(yōu)先級(jí)控制位 1:高優(yōu)先級(jí):高優(yōu)先級(jí)0:低優(yōu)先級(jí):低優(yōu)先級(jí)(2)PT1定時(shí)器定時(shí)器T1中斷優(yōu)先級(jí)控制位中斷優(yōu)先級(jí)控制位 1:高優(yōu)先級(jí):高優(yōu)先級(jí)0:低優(yōu)先級(jí):低優(yōu)先級(jí)214單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)(3

17、)PX1外部中斷外部中斷1中斷優(yōu)先級(jí)控制位中斷優(yōu)先級(jí)控制位1:高優(yōu)先級(jí):高優(yōu)先級(jí)0:低優(yōu)先級(jí):低優(yōu)先級(jí)(4)PT0定時(shí)器定時(shí)器T0中斷優(yōu)先級(jí)控制位中斷優(yōu)先級(jí)控制位1:高優(yōu)先級(jí):高優(yōu)先級(jí)0:低優(yōu)先級(jí):低優(yōu)先級(jí)(5)PX0外部中斷外部中斷0中斷優(yōu)先級(jí)控制位中斷優(yōu)先級(jí)控制位1:高優(yōu)先級(jí):高優(yōu)先級(jí)0:低優(yōu)先級(jí):低優(yōu)先級(jí)中斷優(yōu)先級(jí)控制寄存器中斷優(yōu)先級(jí)控制寄存器IP用位操作指令或字節(jié)操作指令可更新用位操作指令或字節(jié)操作指令可更新IP的內(nèi)容,以改變中斷優(yōu)先級(jí)。的內(nèi)容,以改變中斷優(yōu)先級(jí)。MCS-51復(fù)位以后,以后,IP的內(nèi)容為的內(nèi)容為0,各個(gè)中斷源,各個(gè)中斷源均為低優(yōu)先級(jí)中斷中斷。215單片機(jī)原理及接口技術(shù)單

18、片機(jī)原理及接口技術(shù)MCS-51的中斷系統(tǒng)有兩個(gè)不可尋址的“優(yōu)先級(jí)激活觸發(fā)器。一個(gè)指示某高優(yōu)先級(jí)的中斷正在執(zhí)行,所有后來(lái)的中斷均被阻止;另一個(gè)觸發(fā)器指示某低優(yōu)先級(jí)的中斷正在執(zhí)行,所有同級(jí)的中斷都被阻止,但不阻斷高優(yōu)先級(jí)的中斷請(qǐng)求。在同時(shí)收到幾個(gè)同優(yōu)先級(jí)的中斷請(qǐng)求時(shí),哪一個(gè)中斷請(qǐng)求能優(yōu)先得到響應(yīng),取決于內(nèi)部的查詢順序。這相當(dāng)于在同一個(gè)優(yōu)先級(jí)內(nèi),還同時(shí)存在另一個(gè)輔助優(yōu)先級(jí)結(jié)構(gòu),其查詢順序見(jiàn)表5.1。216單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)表5.1 同級(jí)中斷的查詢次序由此可見(jiàn),各中斷源在同一個(gè)優(yōu)先級(jí)的條件下,由此可見(jiàn),各中斷源在同一個(gè)優(yōu)先級(jí)的條件下,外部中斷0的中斷的中斷優(yōu)先權(quán)優(yōu)先權(quán)最高,串行口

19、中斷優(yōu)先權(quán)優(yōu)先權(quán)最低。217單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)【例5.2】 IP寄存器初始化,寄存器初始化,MCS-51的的兩個(gè)外中斷請(qǐng)求為請(qǐng)求為高優(yōu)先高優(yōu)先級(jí)級(jí),其他中斷請(qǐng)求為低優(yōu)先級(jí)其他中斷請(qǐng)求為低優(yōu)先級(jí)。(1)用位操作指令SETB PX0;外中斷0設(shè)置為高優(yōu)先級(jí)SETB PX1;外中斷1設(shè)置為高優(yōu)先級(jí)CLR PS;串行口設(shè)置為低優(yōu)先級(jí)CLR PT0;定時(shí)器/計(jì)數(shù)器T0為低優(yōu)先級(jí)CLR PT1;定時(shí)器/計(jì)數(shù)器T1為低優(yōu)先級(jí) (2)用字節(jié)操作指令MOV IP,#05H218單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)5.2.3 中斷響應(yīng)一個(gè)中斷源的中斷請(qǐng)求被響應(yīng),一個(gè)中斷源的中斷請(qǐng)求被響應(yīng)

20、,必須滿足以下必要條件:(1)總中斷允許開(kāi)關(guān)接通,即開(kāi)關(guān)接通,即IE寄存器中的中斷總允許位寄存器中的中斷總允許位EA=1。(2)該中斷源)該中斷源發(fā)出中斷請(qǐng)求,即,即對(duì)應(yīng)的中斷請(qǐng)求標(biāo)志為“1”。(3)該中斷源的)該中斷源的中斷允許位EA=1,即該中斷被允許。,即該中斷被允許。(4)無(wú)同級(jí)或或更高級(jí)中斷正在被服務(wù)。正在被服務(wù)。當(dāng)當(dāng)CPU查詢到有效的中斷請(qǐng)求時(shí),在滿足上述條件時(shí),緊接著就進(jìn)查詢到有效的中斷請(qǐng)求時(shí),在滿足上述條件時(shí),緊接著就進(jìn)行中斷響應(yīng)。行中斷響應(yīng)。219單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)中斷響應(yīng)的過(guò)程:首先由硬件首先由硬件自動(dòng)生成一條長(zhǎng)調(diào)用指令“LCALL addr16”。就

21、是程就是程序存儲(chǔ)區(qū)中序存儲(chǔ)區(qū)中相應(yīng)的中斷入口地址。例如,對(duì)于外部中斷對(duì)于外部中斷1的響應(yīng),硬件自動(dòng)生成的長(zhǎng)調(diào)用指令為的響應(yīng),硬件自動(dòng)生成的長(zhǎng)調(diào)用指令為L(zhǎng)CALL 0013H首先將程序計(jì)數(shù)器首先將程序計(jì)數(shù)器PC的內(nèi)容壓入堆棧以保護(hù)斷點(diǎn),再將以保護(hù)斷點(diǎn),再將中斷入口地址裝入PC,使程序轉(zhuǎn)向響應(yīng)中斷請(qǐng)求的中斷入口地址。,使程序轉(zhuǎn)向響應(yīng)中斷請(qǐng)求的中斷入口地址。各中斷源服務(wù)程序的各中斷源服務(wù)程序的入口地址,如,如表表5.2所示。所示。220單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù) 表5.2 中斷入口地址表 兩個(gè)中斷入口間只相隔8字節(jié),難以安放一個(gè)完整的中斷服務(wù)程序,難以安放一個(gè)完整的中斷服務(wù)程序。因此,

22、。因此,通常在中斷入口地址處放置一條無(wú)條件轉(zhuǎn)移指令,使程序執(zhí),使程序執(zhí)行轉(zhuǎn)向中斷服務(wù)程序入口。行轉(zhuǎn)向中斷服務(wù)程序入口。221單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)中斷響應(yīng)是有條件的,當(dāng)遇到下列中斷響應(yīng)是有條件的,當(dāng)遇到下列三種情況之一時(shí),中斷響應(yīng)被之一時(shí),中斷響應(yīng)被封鎖:封鎖:(1)CPU正在處理同級(jí)或更高優(yōu)先級(jí)的中斷。的中斷。(2)所查詢的機(jī)器周期)所查詢的機(jī)器周期不是當(dāng)前正在執(zhí)行指令的最后一個(gè)機(jī)器周期。只有在當(dāng)前指令執(zhí)行完畢后,才能進(jìn)行中斷響應(yīng),以確保當(dāng)前。只有在當(dāng)前指令執(zhí)行完畢后,才能進(jìn)行中斷響應(yīng),以確保當(dāng)前指令執(zhí)行的完整性。(3)正在執(zhí)行的指令是)正在執(zhí)行的指令是RETI或是訪問(wèn)或是

23、訪問(wèn)IE或或IP的指令。因?yàn)榘凑盏闹噶睢R驗(yàn)榘凑誐CS-51中斷系統(tǒng)的規(guī)定,在執(zhí)行完這些指令后,需要再執(zhí)行完一條中斷系統(tǒng)的規(guī)定,在執(zhí)行完這些指令后,需要再執(zhí)行完一條指令,才能響應(yīng)新的中斷請(qǐng)求。指令,才能響應(yīng)新的中斷請(qǐng)求。如果存在上述三種情況之一,如果存在上述三種情況之一,CPU將丟棄中斷查詢結(jié)果,不能對(duì)將丟棄中斷查詢結(jié)果,不能對(duì)中斷進(jìn)行響應(yīng)。中斷進(jìn)行響應(yīng)。222單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)1、 外部中斷的響應(yīng)時(shí)間 使用使用外部中斷時(shí),需考慮從時(shí),需考慮從外部中斷請(qǐng)求到轉(zhuǎn)向中斷入口地址所需的時(shí)間。 外部中斷的外部中斷的最短響應(yīng)時(shí)間為3個(gè)機(jī)器周期。其中中斷請(qǐng)求。其中中斷請(qǐng)求標(biāo)志位查詢占

24、1個(gè)機(jī)器周期,而這個(gè)機(jī)器周期,而這個(gè)機(jī)器周期恰好處于指令的最后一個(gè)機(jī)器周期恰好處于指令的最后一個(gè)機(jī)器周期。在這個(gè)機(jī)器周期結(jié)束后,中斷即被響應(yīng),在這個(gè)機(jī)器周期結(jié)束后,中斷即被響應(yīng),CPU接著執(zhí)行一條接著執(zhí)行一條硬件子程序調(diào)用指令LCALL到相中斷服務(wù)程序入口,到相中斷服務(wù)程序入口,需要2個(gè)機(jī)器周期。 外部中斷響應(yīng)的外部中斷響應(yīng)的最長(zhǎng)時(shí)間為8個(gè)機(jī)器周期。在在CPU進(jìn)行中斷標(biāo)志查進(jìn)行中斷標(biāo)志查詢時(shí),剛好才開(kāi)始執(zhí)行詢時(shí),剛好才開(kāi)始執(zhí)行RETI或訪問(wèn)或訪問(wèn)IE或或IP的指令,需執(zhí)行完指令再繼的指令,需執(zhí)行完指令再繼續(xù)執(zhí)行一條指令后,才響應(yīng)中斷。續(xù)執(zhí)行一條指令后,才響應(yīng)中斷。223單片機(jī)原理及接口技術(shù)單片

25、機(jī)原理及接口技術(shù)執(zhí)行執(zhí)行RETI或訪問(wèn)或訪問(wèn)IE或或IP的指令,最長(zhǎng)需要的指令,最長(zhǎng)需要2個(gè)機(jī)器周期。接著再執(zhí)行一條指令,最長(zhǎng)指令(乘法指令接著再執(zhí)行一條指令,最長(zhǎng)指令(乘法指令MUL和除法指令和除法指令DIV)來(lái)算,也只有來(lái)算,也只有4個(gè)機(jī)器周期。再加上硬件子程序調(diào)用指令。再加上硬件子程序調(diào)用指令LCALL的執(zhí)的執(zhí)行,需要行,需要2個(gè)機(jī)器周期,所以,外部中斷響應(yīng)的最長(zhǎng)時(shí)間為,所以,外部中斷響應(yīng)的最長(zhǎng)時(shí)間為8個(gè)機(jī)器周個(gè)機(jī)器周期。期。如果已經(jīng)在如果已經(jīng)在處理同級(jí)或更高級(jí)中斷,外部中斷請(qǐng)求的響應(yīng)時(shí)間取,外部中斷請(qǐng)求的響應(yīng)時(shí)間取決于正在執(zhí)行的中斷服務(wù)程序的處理時(shí)間,這種情況下,響應(yīng)時(shí)間就決于正在執(zhí)行

26、的中斷服務(wù)程序的處理時(shí)間,這種情況下,響應(yīng)時(shí)間就無(wú)法計(jì)算了。無(wú)法計(jì)算了。這樣,在一個(gè)這樣,在一個(gè)單一中斷的系統(tǒng)里,的系統(tǒng)里,MCS-51單片機(jī)對(duì)外部中斷請(qǐng)求單片機(jī)對(duì)外部中斷請(qǐng)求的響應(yīng)時(shí)間總是在的響應(yīng)時(shí)間總是在38個(gè)機(jī)器周期之間。之間。224單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)2、 外部中斷的觸發(fā)方式選擇兩種觸發(fā)方式:電平觸發(fā)方式和跳沿觸發(fā)方式。兩種觸發(fā)方式:電平觸發(fā)方式和跳沿觸發(fā)方式。1)電平觸發(fā)方式外部中斷申請(qǐng)觸發(fā)器的狀態(tài)隨著外部中斷申請(qǐng)觸發(fā)器的狀態(tài)隨著CPU在每個(gè)機(jī)器周期采樣到的外在每個(gè)機(jī)器周期采樣到的外部中斷輸入引腳的電平變化而變化。部中斷輸入引腳的電平變化而變化。在在中斷服務(wù)程序返

27、回之前,外中斷請(qǐng)求輸入必須無(wú)效(即外部中(即外部中斷請(qǐng)求輸入已由低電平變?yōu)楦唠娖剑駝t會(huì)再次響應(yīng)中斷。斷請(qǐng)求輸入已由低電平變?yōu)楦唠娖剑?,否則會(huì)再次響應(yīng)中斷。所以本方式所以本方式適合于外部中斷外部中斷以低電平輸入且中斷服務(wù)程序能且中斷服務(wù)程序能清除外部中斷請(qǐng)求源(即外中斷輸入電平又變?yōu)楦唠娖剑┑那闆r。(即外中斷輸入電平又變?yōu)楦唠娖剑┑那闆r。225單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)2)邊沿觸發(fā)方式外部中斷申請(qǐng)觸發(fā)器能外部中斷申請(qǐng)觸發(fā)器能鎖存外部中斷輸入線上的負(fù)跳變。即使不。即使不能響應(yīng),中斷請(qǐng)求標(biāo)志不丟失。能響應(yīng),中斷請(qǐng)求標(biāo)志不丟失。相繼連續(xù)兩次采樣,一個(gè)機(jī)器周期為高,下一個(gè)機(jī)器周期采樣為

28、相繼連續(xù)兩次采樣,一個(gè)機(jī)器周期為高,下一個(gè)機(jī)器周期采樣為低,則中斷申請(qǐng)觸發(fā)器置低,則中斷申請(qǐng)觸發(fā)器置1,直到,直到CPU響應(yīng)此中斷時(shí),才清響應(yīng)此中斷時(shí),才清0。輸入的負(fù)脈沖寬度至少保持輸入的負(fù)脈沖寬度至少保持12個(gè)時(shí)鐘周期,才能被采樣到。適合個(gè)時(shí)鐘周期,才能被采樣到。適合于以負(fù)脈沖形式輸入的外部中斷請(qǐng)求。于以負(fù)脈沖形式輸入的外部中斷請(qǐng)求。5.2.4 中斷請(qǐng)求撤銷(xiāo)某個(gè)中斷請(qǐng)求被響應(yīng)后,就存在著一個(gè)中斷請(qǐng)求的撤銷(xiāo)問(wèn)題。某個(gè)中斷請(qǐng)求被響應(yīng)后,就存在著一個(gè)中斷請(qǐng)求的撤銷(xiāo)問(wèn)題。226單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)1、定時(shí)器/計(jì)數(shù)器中斷請(qǐng)求的撤銷(xiāo)硬件會(huì)自動(dòng)把中斷請(qǐng)求標(biāo)志位(硬件會(huì)自動(dòng)把中斷請(qǐng)求標(biāo)

29、志位(TF0或或TF1)清)清0,自動(dòng)撤銷(xiāo)。2、外部中斷請(qǐng)求的撤銷(xiāo)1)跳沿方式外部中斷請(qǐng)求的撤銷(xiāo)包括兩項(xiàng):包括兩項(xiàng):中斷標(biāo)志位清0和和外中斷信號(hào)的撤銷(xiāo)。中斷標(biāo)志位清0是在中斷響應(yīng)后由硬件自動(dòng)完成的。是在中斷響應(yīng)后由硬件自動(dòng)完成的。外中斷請(qǐng)求信號(hào)的撤銷(xiāo),由于跳沿信號(hào)過(guò)后也就消失了,自動(dòng)撤,由于跳沿信號(hào)過(guò)后也就消失了,自動(dòng)撤銷(xiāo)。銷(xiāo)。227單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)2)電平方式外部中斷請(qǐng)求的撤銷(xiāo)電平方式外中斷請(qǐng)求的撤銷(xiāo),其中中斷請(qǐng)求標(biāo)志自動(dòng)撤銷(xiāo),但中斷請(qǐng)求信號(hào)的低電平可能繼續(xù)存在,為此,除了標(biāo)志位清“0”之外,還需在中斷響應(yīng)后把中斷請(qǐng)求信號(hào)輸入引腳從低電平強(qiáng)制改變?yōu)楦唠娖剑鐖D5.8所

30、示。 228圖圖5.8 5.8 電平方式的外部中斷請(qǐng)求的撤銷(xiāo)電路電平方式的外部中斷請(qǐng)求的撤銷(xiāo)電路單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)由圖由圖5.8,用,用D觸發(fā)器鎖存外來(lái)的中斷請(qǐng)求低電平,并通過(guò),并通過(guò)D觸發(fā)器觸發(fā)器的輸出端的輸出端Q接到接到 (或(或 )。所以,增加的)。所以,增加的D觸發(fā)器不影響中觸發(fā)器不影響中斷請(qǐng)求。斷請(qǐng)求。中斷響應(yīng)后,利用中斷響應(yīng)后,利用D觸發(fā)器的觸發(fā)器的SD端接端接MCS-51的的P1.0端。因此,只端。因此,只要要P1.0端輸出一個(gè)負(fù)脈沖就可以使D觸發(fā)器置“1”,撤銷(xiāo)低電平的撤銷(xiāo)低電平的中斷請(qǐng)求信號(hào)。中斷請(qǐng)求信號(hào)。負(fù)脈沖可在中斷服務(wù)程序中增加如下指令:可在中斷服

31、務(wù)程序中增加如下指令:ORL P1,#01H;P1.0為“1”ANL P1,#0FEH;P1.0為“0”O(jiān)RL P1,#01H;P1.0為“1”229INT01INT單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)3)串行口中斷請(qǐng)求的撤銷(xiāo)響應(yīng)串行口的中斷后,響應(yīng)串行口的中斷后,CPU無(wú)法知道是接收中斷還是發(fā)送中斷,無(wú)法知道是接收中斷還是發(fā)送中斷,還需測(cè)試這兩個(gè)中斷標(biāo)志位,以還需測(cè)試這兩個(gè)中斷標(biāo)志位,以判定是接收操作還是發(fā)送操作,然后,然后才清除。所以串行口中斷請(qǐng)求的撤銷(xiāo)才清除。所以串行口中斷請(qǐng)求的撤銷(xiāo)只能使用軟件的方法,在中斷服,在中斷服務(wù)程序中進(jìn)行,即用如下指令在中斷服務(wù)程序中對(duì)串行口中斷標(biāo)志位務(wù)程

32、序中進(jìn)行,即用如下指令在中斷服務(wù)程序中對(duì)串行口中斷標(biāo)志位進(jìn)行清除:進(jìn)行清除:CLR TI ;清TI標(biāo)志位CLR RI ;清RI標(biāo)志位5.3 中斷系統(tǒng)編程舉例中斷系統(tǒng)的運(yùn)行必須與中斷服務(wù)子程序配合才能正確使用。設(shè)計(jì)中斷系統(tǒng)的運(yùn)行必須與中斷服務(wù)子程序配合才能正確使用。設(shè)計(jì)中斷服務(wù)子程序需要首先明確以下幾個(gè)問(wèn)題。中斷服務(wù)子程序需要首先明確以下幾個(gè)問(wèn)題。230單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)1中斷服務(wù)子程序設(shè)計(jì)的任務(wù)任務(wù)有下列任務(wù)有下列4條:條:(1)設(shè)置中斷允許控制寄存器IE,允許相應(yīng)的中斷請(qǐng)求源中斷。,允許相應(yīng)的中斷請(qǐng)求源中斷。(2)設(shè)置中斷優(yōu)先級(jí)寄存器IP,確定所使用的中斷源的優(yōu)先級(jí)。,

33、確定所使用的中斷源的優(yōu)先級(jí)。(3)若是外部中斷源,還要設(shè)置中斷請(qǐng)求的,還要設(shè)置中斷請(qǐng)求的觸發(fā)方式?jīng)Q定采用電決定采用電平觸發(fā)方式還是跳沿觸發(fā)方式。平觸發(fā)方式還是跳沿觸發(fā)方式。(4)編寫(xiě)中斷服務(wù)子程序,處理中斷請(qǐng)求。,處理中斷請(qǐng)求。231單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)前前3條一般放在主程序的初始化程序段中。條一般放在主程序的初始化程序段中?!纠?.3】 假設(shè)允許假設(shè)允許外部中斷0中斷,設(shè)定為,設(shè)定為高級(jí)中斷,采用跳沿中斷,采用跳沿觸發(fā)方式,觸發(fā)方式,其他中斷源為低級(jí)中斷其他中斷源為低級(jí)中斷。初始化程序如下:。初始化程序如下:SETB EA;EA 位置位置1,總中斷開(kāi)關(guān)位開(kāi)放,總中斷開(kāi)關(guān)位

34、開(kāi)放SETB ET0;ET0位置位置1,允許外部中斷,允許外部中斷0產(chǎn)生中斷產(chǎn)生中斷SETB PX0;PX0位置位置1,外部中斷,外部中斷0為高優(yōu)先級(jí)中斷為高優(yōu)先級(jí)中斷SETB IT0 ;IT0位置位置1,外部中斷,外部中斷0為跳沿觸發(fā)方式為跳沿觸發(fā)方式232單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)2采用中斷時(shí)的主程序結(jié)構(gòu)程序必須先從程序必須先從主程序起始地址0000H執(zhí)行。所以,執(zhí)行。所以,在0000H起始地址的幾個(gè)字節(jié)中,用無(wú)條件轉(zhuǎn)移指令,跳向主程序。,跳向主程序。另外,各中斷入口地址之間依次相差另外,各中斷入口地址之間依次相差8字節(jié),中斷服務(wù)子程序稍長(zhǎng)字節(jié),中斷服務(wù)子程序稍長(zhǎng)就超過(guò)就超過(guò)

35、8字節(jié),這樣中斷服務(wù)子程序就占用了其他的中斷入口地址,字節(jié),這樣中斷服務(wù)子程序就占用了其他的中斷入口地址,影響其他中斷源的中斷處理。為此,影響其他中斷源的中斷處理。為此,一般在進(jìn)入中斷后,用一條無(wú)條件轉(zhuǎn)移指令,把中斷服務(wù)子程序跳轉(zhuǎn)到遠(yuǎn)離其他中斷入口的入口地址處。233單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)常用的常用的主程序結(jié)構(gòu)如下:如下: ORG0000H LJMP MAIN ORG X1X2X3X4H;X1X2X3X4H為某中斷源的中斷入口為某中斷源的中斷入口 LJMP INT;INT為某中斷源的中斷入口標(biāo)號(hào)為某中斷源的中斷入口標(biāo)號(hào) ORG Y1Y2Y3Y4H;Y1Y2Y3Y4H為主程序入

36、口為主程序入口MAIN:主程序主程序INT: 中斷服務(wù)子程序中斷服務(wù)子程序注意:如果有多個(gè)中斷源,就有多個(gè)如果有多個(gè)中斷源,就有多個(gè)“ORG X1X2X3X4H”的入口地址的入口地址,多個(gè),多個(gè)“中斷入口地址中斷入口地址”必須依次由小到大排列。主程序。主程序MAIN的起始地的起始地址址Y1Y2Y3Y4H,根據(jù)具體情況來(lái)安排。,根據(jù)具體情況來(lái)安排。234單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)3中斷服務(wù)子程序的流程 中斷服務(wù)子程序的基本中斷服務(wù)子程序的基本流程如流程如圖圖5.9所示所示。下面。下面對(duì)有關(guān)中斷服務(wù)子程序?qū)τ嘘P(guān)中斷服務(wù)子程序執(zhí)行過(guò)程中的一些問(wèn)題執(zhí)行過(guò)程中的一些問(wèn)題進(jìn)行說(shuō)明。進(jìn)行說(shuō)明。

37、 235圖圖5.95.9 中斷子服務(wù)程序的基本流程中斷子服務(wù)程序的基本流程單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)1)現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)是指單片機(jī)中某些寄存器和存儲(chǔ)器單元中的數(shù)據(jù)或狀態(tài)。為現(xiàn)場(chǎng)是指單片機(jī)中某些寄存器和存儲(chǔ)器單元中的數(shù)據(jù)或狀態(tài)。為使中斷服務(wù)子程序的執(zhí)行不破壞這些數(shù)據(jù)或狀態(tài),因此要送入堆棧保使中斷服務(wù)子程序的執(zhí)行不破壞這些數(shù)據(jù)或狀態(tài),因此要送入堆棧保存起來(lái),這就是存起來(lái),這就是現(xiàn)場(chǎng)保護(hù)。 現(xiàn)場(chǎng)保護(hù)一定要一定要位于中斷處理程序的前面。中斷處理結(jié)束后,在。中斷處理結(jié)束后,在返回主程序前,則需要把保存的現(xiàn)場(chǎng)內(nèi)容從堆棧中彈出恢復(fù)原有內(nèi)容返回主程序前,則需要把保存的現(xiàn)場(chǎng)內(nèi)容從堆棧中彈出恢

38、復(fù)原有內(nèi)容,這就是,這就是現(xiàn)場(chǎng)恢復(fù)?,F(xiàn)場(chǎng)恢復(fù)一定要位于一定要位于中斷處理的后面。MCS-51的堆棧操作指令:的堆棧操作指令:“PUSH direct”和和“POP direct”,是供現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù),是供現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù)使用的。要保護(hù)哪些內(nèi)容,應(yīng)根據(jù)具體情況來(lái)定。使用的。要保護(hù)哪些內(nèi)容,應(yīng)根據(jù)具體情況來(lái)定。236單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)2)關(guān)中斷和開(kāi)中斷 現(xiàn)場(chǎng)保護(hù)前和和現(xiàn)場(chǎng)恢復(fù)前關(guān)中斷,是為防止此時(shí)有高一級(jí)的中斷關(guān)中斷,是為防止此時(shí)有高一級(jí)的中斷進(jìn)入,避免現(xiàn)場(chǎng)被破壞。進(jìn)入,避免現(xiàn)場(chǎng)被破壞。在現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù)之后的開(kāi)中斷是為下一次的中斷做好準(zhǔn)備是為下一次的中斷做好準(zhǔn)備,也

39、為了允許有更高級(jí)的中斷進(jìn)入。這樣,中斷處理可以被打斷,但,也為了允許有更高級(jí)的中斷進(jìn)入。這樣,中斷處理可以被打斷,但原來(lái)的現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù)不允許更改,除了現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù)的原來(lái)的現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù)不允許更改,除了現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù)的片刻外,仍然保持著中斷嵌套的功能。片刻外,仍然保持著中斷嵌套的功能。但有時(shí)候,一個(gè)重要的中斷,必須執(zhí)行完畢,不允許被其他的中斷嵌套??稍诂F(xiàn)場(chǎng)保護(hù)前先關(guān)閉總中斷開(kāi)關(guān)位,待中斷處理完畢后再可在現(xiàn)場(chǎng)保護(hù)前先關(guān)閉總中斷開(kāi)關(guān)位,待中斷處理完畢后再開(kāi)總中斷開(kāi)關(guān)位。這樣,需把開(kāi)總中斷開(kāi)關(guān)位。這樣,需把圖圖5.9中的中的“中斷處理中斷處理”步驟前后的步驟前后的“開(kāi)中斷開(kāi)中斷”和

40、和“關(guān)中斷關(guān)中斷” 去掉。去掉。237單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)3)中斷處理 應(yīng)用設(shè)計(jì)者根據(jù)任務(wù)的具體要求,來(lái)編寫(xiě)中斷處理部分的程序。應(yīng)用設(shè)計(jì)者根據(jù)任務(wù)的具體要求,來(lái)編寫(xiě)中斷處理部分的程序。4)中斷返回中斷服務(wù)子程序中斷服務(wù)子程序最后一條指令必須是返回指令RETI。CPU執(zhí)行完執(zhí)行完這條指令后,這條指令后,把響應(yīng)中斷時(shí)所置1的不可尋址的優(yōu)先級(jí)狀態(tài)觸發(fā)器清0,然后從堆棧中彈出棧頂上的兩個(gè)字節(jié)的斷點(diǎn)地址送到程序計(jì)數(shù)器然后從堆棧中彈出棧頂上的兩個(gè)字節(jié)的斷點(diǎn)地址送到程序計(jì)數(shù)器PC,彈出的第一個(gè)字節(jié)送入,彈出的第一個(gè)字節(jié)送入PCH,彈出的第二個(gè)字節(jié)送入,彈出的第二個(gè)字節(jié)送入PCL,從,從斷

41、點(diǎn)處重新執(zhí)行主程序。斷點(diǎn)處重新執(zhí)行主程序。238單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)【例5.4】 根據(jù)根據(jù)圖圖5.9流程,編寫(xiě)中斷服務(wù)程序。設(shè)現(xiàn)場(chǎng)保護(hù)只將流程,編寫(xiě)中斷服務(wù)程序。設(shè)現(xiàn)場(chǎng)保護(hù)只將PSW寄存器和累加器寄存器和累加器A的內(nèi)容壓入堆棧中保護(hù)。一個(gè)典型的中斷服務(wù)子程序如的內(nèi)容壓入堆棧中保護(hù)。一個(gè)典型的中斷服務(wù)子程序如下:下:INT:CLR EA;CPU關(guān)中斷關(guān)中斷PUSH PSW;現(xiàn)場(chǎng)保護(hù);現(xiàn)場(chǎng)保護(hù)PUSH AccSETB EA;總中斷允許;總中斷允許中斷處理段 CLR EA;關(guān)中斷;關(guān)中斷POP Acc;現(xiàn)場(chǎng)恢復(fù);現(xiàn)場(chǎng)恢復(fù)POP PSWSETBEA;總中斷允許;總中斷允許RETI;

42、中斷返回,恢復(fù)斷點(diǎn);中斷返回,恢復(fù)斷點(diǎn)239單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)上述程序上述程序幾點(diǎn)說(shuō)明:(1)本例的)本例的現(xiàn)場(chǎng)保護(hù)假設(shè)僅僅涉及現(xiàn)場(chǎng)保護(hù)假設(shè)僅僅涉及PSW和和A的內(nèi)容,如有其他需的內(nèi)容,如有其他需要保護(hù)的內(nèi)容,只需在相應(yīng)位置再加幾條要保護(hù)的內(nèi)容,只需在相應(yīng)位置再加幾條PUSH和和POP指令即可。注指令即可。注意,堆棧的操作是先進(jìn)后出。意,堆棧的操作是先進(jìn)后出。(2) “中斷處理程序段中斷處理程序段”,設(shè)計(jì)者應(yīng)根據(jù)中斷任務(wù)的具體要求,設(shè)計(jì)者應(yīng)根據(jù)中斷任務(wù)的具體要求,來(lái)編寫(xiě)中斷處理程序。來(lái)編寫(xiě)中斷處理程序。(3)如果不允許被其他的中斷所中斷,可將)如果不允許被其他的中斷所中斷,可將“中斷處理程序段中斷處理程序段”前后的前后的“SETB EA”和和“CLR EA”兩條指令去掉。兩條指令去掉。(4)最后一條指令必須是返回指令RETI,不可缺少,不可缺少,CPU執(zhí)行執(zhí)行完這條指令后,返回?cái)帱c(diǎn)處,重新執(zhí)行被中斷的主程序。完這條指令后,返回?cái)帱c(diǎn)處,重新執(zhí)行被中斷的主程序。 240單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)4、多外部中斷源系統(tǒng)設(shè)計(jì)實(shí)際的應(yīng)用中,實(shí)際的應(yīng)用中,兩個(gè)外部中斷請(qǐng)求源往往不夠用,需對(duì)外部中斷源進(jìn),需對(duì)外部中斷源進(jìn)行擴(kuò)充,如行擴(kuò)充,如圖圖5.10所示所示

溫馨提示

  • 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)論