《單片機(jī)技術(shù)及 仿真與應(yīng)用》-6_第1頁
《單片機(jī)技術(shù)及 仿真與應(yīng)用》-6_第2頁
《單片機(jī)技術(shù)及 仿真與應(yīng)用》-6_第3頁
《單片機(jī)技術(shù)及 仿真與應(yīng)用》-6_第4頁
《單片機(jī)技術(shù)及 仿真與應(yīng)用》-6_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

6.1中斷概念中斷(interrupt)是暫時(shí)停下目前所執(zhí)行的程序,先去執(zhí)行特定的程序(即中斷子程序),待完成特定的程序后,再返回接著執(zhí)行剛才停下的程序,這樣的過程稱為中斷,如圖6.1所示。譬如,十字路口的交通崗正常工作時(shí),紅綠燈遵循既定的規(guī)律進(jìn)行變換;一旦有急救車或消防車等特殊情況時(shí),進(jìn)入特殊處理程序,即相當(dāng)于進(jìn)行中斷處理,這時(shí)需要兩個(gè)方向都亮起紅燈,讓急救車過去,等特殊情況過去后,再恢復(fù)之前狀態(tài)。如果整個(gè)過程用單片機(jī)控制,則紅綠燈按照既定規(guī)律進(jìn)行變換時(shí),相當(dāng)于單片機(jī)再重復(fù)執(zhí)行主程序;急救車或消防車來臨進(jìn)入特殊處理程序時(shí),相當(dāng)于單片機(jī)進(jìn)入中斷服務(wù)程序;急救車或消防車過去,相當(dāng)于單片機(jī)從中斷程序返回到主程序。中斷機(jī)制的引入,提高了單片機(jī)的工作效率。返回6.251單片機(jī)中斷源51系列單片機(jī)的中斷系統(tǒng)有5個(gè)中斷源,2個(gè)中斷優(yōu)先級,可實(shí)現(xiàn)二級中斷服務(wù)嵌套,如圖6.2所示。51單片機(jī)的5個(gè)中斷源是外部中斷INT0、外部中斷INT1、定時(shí)/計(jì)數(shù)器中斷TF0、定時(shí)/計(jì)數(shù)器中斷TF1和串行口中斷UART(RI/TI).返回6.3中斷寄存器要想讓51單片機(jī)中斷系統(tǒng)良好地運(yùn)行,需要用到以下4個(gè)特殊功能寄存器:(1)中斷允許寄存器IE(InterruptEnableRegister)。(2)定時(shí)器控制寄存器TCON(Timer/CounterControlRegister)。(3)串行口控制寄存器SCON(SerialControlRegister)。(4)中斷優(yōu)先級寄存器IP(InterruptPriorityRegister)。下一頁返回6.3中斷寄存器6.3.1中斷允許寄存器IE51單片機(jī)中斷系統(tǒng)的所有中斷通過寄存器IE控制,當(dāng)IE某二進(jìn)制位設(shè)定為1時(shí),相應(yīng)的中斷源允許中斷處理;當(dāng)IE的某個(gè)二進(jìn)制位設(shè)定為0時(shí),相應(yīng)的中斷源被屏蔽中斷。51單片機(jī)通過寄存器IE對中斷系統(tǒng)實(shí)現(xiàn)兩級控制,所謂兩級控制,就是有一個(gè)總的開關(guān)中斷控制位EA(即IE.7)和子中斷開關(guān)控制位。當(dāng)EA=0時(shí),屏蔽所有的中斷申請,任何中斷申請都不接受;當(dāng)EA=1時(shí),CPU開放總中斷,但5個(gè)中斷源還要由IE低5位的各對應(yīng)控制位進(jìn)行控制(見圖6.2)。IE寄存器(字節(jié)地址為A8H)各位地址如表6.1所示。上一頁下一頁返回6.3中斷寄存器CPU復(fù)位時(shí),IE各位清0,禁止所有中斷。IE的數(shù)值可通過程序語句設(shè)定。6.3.2定時(shí)/計(jì)數(shù)器控制寄存器TCON在51單片機(jī)中斷系統(tǒng)中,要采用什么中斷,選擇何種觸發(fā)方式,就要由TCON和SCON設(shè)置,TCON設(shè)置除串口中斷外的其余四種中斷觸發(fā)方式和中斷標(biāo)志位,SCON設(shè)置串口的接收中斷標(biāo)志位RI和發(fā)送中斷標(biāo)志位TI。TCON的字節(jié)地址是88H,可以按位尋址,各位地址如表6.2所示。TCON中各位的含義如下:(1)IT0(TCON.0):外部中斷0(即INT0)的觸發(fā)方式設(shè)置位。上一頁下一頁返回6.3中斷寄存器(2)IE0(TCON.1):外部中斷INT0中斷請求標(biāo)志位。IE0=1時(shí),表示INT0向CPU請求中斷。當(dāng)INT0為電平觸發(fā)方式,且CPU響應(yīng)中斷時(shí),不自動將該位清0;當(dāng)INT0為邊沿觸發(fā)方式,且CPU響應(yīng)中斷時(shí),自動將該位清0。(3)IT1(TCON.2):外部中斷1(即INT1)的觸發(fā)方式設(shè)置位,含義與IT0類似。(4)IE1(TCON.3):外部中斷INT1請求標(biāo)志位。IE1=1時(shí),表示INT1向CPU請求中斷,含義與IE0類似。上一頁下一頁返回6.3中斷寄存器(5)TF0(TCON5):定時(shí)/計(jì)數(shù)器T0的溢出中斷請求標(biāo)志位。當(dāng)啟動定時(shí)/計(jì)數(shù)器T0以后,T0從初值開始加1計(jì)數(shù),計(jì)數(shù)器最高位產(chǎn)生溢出時(shí),由硬件使TF0置1,并向CPU發(fā)出中斷請求。當(dāng)CPU響應(yīng)中斷時(shí),硬件將自動對TF0清0,也有軟件清0的情況,具體在第7章講解。(6)TF1(TCON.7):定時(shí)/計(jì)數(shù)器T1的溢出中斷請求標(biāo)志位,含義與TF0類似。(7)TR0(TCON.4)和TR1(TCON.6),兩位的具體含義在第7章講解。6.3.3串行口控制寄存器SCON串行口控制寄存器SCON有兩個(gè)串行中斷標(biāo)志位,分別是串口接收中斷標(biāo)志位RI和串口發(fā)送中斷標(biāo)志位TI。SCON的字節(jié)地址是98H,各位地址如表6.3所示。上一頁下一頁返回6.3中斷寄存器SCON中的RI和TI含義如下:(1)RI:接收中斷標(biāo)志位。當(dāng)串行接收數(shù)據(jù)時(shí),每接收完一幀,由硬件自動將RI位置1,即向CPU發(fā)出接收中斷請求;在中斷服務(wù)程序中,通過程序語句將其清0,撤銷該中斷申請。(2)TI:發(fā)送中斷標(biāo)志位。當(dāng)CPU將一個(gè)發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時(shí),就啟動了發(fā)送過程。每發(fā)送完一個(gè)串行幀,由硬件自動將TI位置1,即向CPU發(fā)出發(fā)送中斷請求;在中斷服務(wù)程序中,通過程序語句將其清0,撤銷該中斷申請。故CPU響應(yīng)串行接收/發(fā)送中斷請求時(shí),不能自動清除RI/TI位,RI/TI位必須由軟件清除。上一頁下一頁返回6.3中斷寄存器6.3.4中斷優(yōu)先級寄存器IP51單片機(jī)有兩個(gè)中斷優(yōu)先級,可實(shí)現(xiàn)二級中斷服務(wù)嵌套。每個(gè)中斷源的中斷優(yōu)先級都是由中斷優(yōu)先級寄存器IP中相應(yīng)位的狀態(tài)來規(guī)定的。IP的狀態(tài)由軟件設(shè)定,某位設(shè)定為1,則相應(yīng)的中斷源為高優(yōu)先級中斷;某位設(shè)定為0,則相應(yīng)的中斷源為低優(yōu)先級中斷。單片機(jī)復(fù)位時(shí),IP各位清0,各中斷源同為低優(yōu)先級中斷。IP寄存器的字節(jié)地址為B8H,與中斷允許寄存器相對應(yīng)的位地址如表6.4所示。當(dāng)同時(shí)接收到幾個(gè)同一優(yōu)先級的中斷請求時(shí),響應(yīng)哪個(gè)中斷源則取決于內(nèi)部硬件查詢順序。其優(yōu)先級順序排列如表6.5所示。上一頁返回6.4中斷處理過程6.4.1中斷響應(yīng)條件CPU響應(yīng)中斷必須同時(shí)滿足以下三個(gè)條件:(1)中斷源有中斷請求。(2)中斷源的中斷允許位為1。(3)CPU總中斷允許位為1(即EA=1)。若遇到下列任一條件,中斷響應(yīng)將受阻:(1)CPU正在處理同級或更高優(yōu)先級中斷。(2)當(dāng)前查詢周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期。即在完成所執(zhí)行指令前,不會響應(yīng)中斷,從而保證指令在執(zhí)行過程中不被打斷。(3)正在執(zhí)行的指令為RETI或任何訪問IE或IP寄存器的指令(防止中斷處理機(jī)制失控)。即只有在這些指令后面至少再執(zhí)行一條指令時(shí)才能接受中斷請求。下一頁返回6.4中斷處理過程6.4.2中斷響應(yīng)時(shí)間圖6.3為某中斷的響應(yīng)時(shí)序圖。從中斷源提出中斷申請,到CPU響應(yīng)中斷,需要經(jīng)歷一定的時(shí)間。若M1周期的S5P2前某中斷請求有效,在S5P2時(shí)刻其中斷請求被鎖存在相應(yīng)的標(biāo)志位中;下一個(gè)機(jī)器周期M2恰逢某指令的最后一個(gè)機(jī)器周期,且該指令不是RET、RETI或訪問IE、IP的指令。于是,后面兩個(gè)機(jī)器周期M3和M4便可以執(zhí)行硬件LCALL指令,M5周期將進(jìn)入中斷服務(wù)程序。6.4.3中斷響應(yīng)過程CPU中斷的響應(yīng)過程如下:(1)將相應(yīng)優(yōu)先級狀態(tài)觸發(fā)器設(shè)置成“1”(以阻斷后來的同級或低級的中斷請求)。上一頁下一頁返回6.4中斷處理過程(2)執(zhí)行硬件LCALL指令,把程序計(jì)數(shù)器PC的內(nèi)容壓入堆棧保存,再將相應(yīng)的中斷服務(wù)程序的入口地址送入PC。(3)執(zhí)行中斷服務(wù)程序。(3)執(zhí)行中斷服務(wù)程序。中斷響應(yīng)過程的前兩步是由中斷系統(tǒng)內(nèi)部自動完成的,而中斷服務(wù)程序則要由用戶編寫程序來完成。6.4.4中斷返回中斷服務(wù)程序的最后一條指令必須是中斷返回指令RETI。RETI指令能使CPU結(jié)束中斷服務(wù)程序的執(zhí)行,返回到主程序斷點(diǎn)處繼續(xù)執(zhí)行主程序。RETI指令的具體功能是:(1)將之前壓入堆棧保存的斷點(diǎn)地址從棧頂彈出送回PC,CPU從原來中斷的地方繼續(xù)執(zhí)行程序。上一頁下一頁返回6.4中斷處理過程(2)將相應(yīng)中斷優(yōu)先級狀態(tài)觸發(fā)器清0,恢復(fù)原來工作狀態(tài)。不能用RET指令代替RETI指令,因?yàn)橛茫遥牛灾噶铍m然也能控制PC返回到原來中斷的地方,但RET指令沒有清零中斷優(yōu)先級狀態(tài)觸發(fā)器的功能,中斷控制系統(tǒng)會認(rèn)為中斷仍在進(jìn)行,其后果是與此同級的中斷請求將不被響應(yīng)。上一頁返回6.5中斷程序舉例6.5.1主程序說明1.主程序的起始地址51系列單片機(jī)復(fù)位后,(PC)=0000H,而0003H~002BH分別為各中斷源的入口地址。所以,編程時(shí)應(yīng)在0000H處寫一跳轉(zhuǎn)指令(一般為長跳轉(zhuǎn)指令),使CPU在執(zhí)行程序時(shí),從0000H跳過各中斷源的入口地址。主程序則是以跳轉(zhuǎn)的目標(biāo)地址作為起始地址開始編寫的,一般從0030H開始,如圖6.4所示。2.主程序的初始化51單片機(jī)復(fù)位后,特殊功能寄存器IE和IP的內(nèi)容均為00H,表示所有的中斷全部關(guān)閉,且均為低優(yōu)先級。所以編程時(shí),應(yīng)先對IE和IP進(jìn)行初始化編程,以開放某些中斷源中斷,并設(shè)置其優(yōu)先級等。下一頁返回6.5中斷程序舉例6.5.2中斷服務(wù)程序說明1.中斷服務(wù)程序的起始地址當(dāng)CPU開始響應(yīng)中斷請求信號時(shí),CPU要把當(dāng)前PC內(nèi)容入棧保護(hù),然后轉(zhuǎn)去相應(yīng)的中斷服務(wù)程序入口處執(zhí)行。51單片機(jī)中斷系統(tǒng)的5個(gè)中斷源分別有自己固定的入口地址(見表6.5),但這些入口地址僅相距8字節(jié)。如果中斷服務(wù)程序的指令代碼少于8字節(jié),則可從規(guī)定的中斷服務(wù)程序入口地址開始,直接編寫中斷服務(wù)程序;若中斷服務(wù)程序的指令代碼大于8字節(jié),則應(yīng)采用與主程序相同的方法,在相應(yīng)的入口處寫一條跳轉(zhuǎn)指令,并以跳轉(zhuǎn)指令的目標(biāo)地址作為中斷服務(wù)程序的起始地址進(jìn)行編程。上一頁下一頁返回6.5中斷程序舉例2.中斷服務(wù)程序編寫中的注意事項(xiàng)(1)需要確定是否保護(hù)現(xiàn)場。(2)及時(shí)清除那些不能被硬件自動清除的中斷請求標(biāo)志,以免產(chǎn)生錯(cuò)誤的中斷。6.5.3外部中斷INT0程序舉例程序流程圖如圖6.6所示。上一頁返回圖6.1中斷流程返回圖6.251單片機(jī)中斷系統(tǒng)結(jié)構(gòu)圖返回表6.1中斷允許寄存器IE返回表6.2定時(shí)/計(jì)數(shù)

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論