版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)中斷系統(tǒng)第4章
中斷系統(tǒng)是為了使單片機(jī)對(duì)外部或內(nèi)部隨機(jī)發(fā)生的事件能及時(shí)處理而設(shè)置的。中斷功能的存在在很大程度上增強(qiáng)了單片機(jī)處理突發(fā)事件的能力。本章從中斷的概念、中斷系統(tǒng)結(jié)構(gòu)、中斷允許與中斷優(yōu)先級(jí)的控制、響應(yīng)中斷請(qǐng)求的條件、外部中斷的響應(yīng)時(shí)間、外部中斷的觸發(fā)方式選擇、中斷服務(wù)子程序的設(shè)計(jì)和多外部中斷源擴(kuò)展設(shè)計(jì)等方面對(duì)中斷進(jìn)行介紹。引言目錄中斷概述1外部中斷應(yīng)用2本章小結(jié)3本章習(xí)題4行業(yè)PPT模板/hangye/4.1
中斷概述4.1.1中斷的概念
CPU在處理某一事件A時(shí),發(fā)生了另一事件B請(qǐng)求CPU迅速去處理(中斷發(fā)生);
CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù));待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷。
(a)中斷流程
(b)中斷嵌套流程4.1.28051系列單片機(jī)中斷系統(tǒng)及與中斷有關(guān)的SFR1、8051系列單片機(jī)的中斷系統(tǒng)
8051系列單片機(jī)共有5個(gè)中斷源:兩個(gè)外部中斷和、兩個(gè)定時(shí)/計(jì)數(shù)器T0和T1,以及一個(gè)串口(分為兩個(gè)優(yōu)先級(jí))。4.1.28051系列單片機(jī)中斷系統(tǒng)及與中斷有關(guān)的SFRIT0(TCON.0),外部中斷0觸發(fā)方式控制位。當(dāng)IT0=0時(shí),為電平觸發(fā)方式。當(dāng)IT0=1時(shí),為邊沿觸發(fā)方式(下降沿有效)。IE0(TCON.1),外部中斷0中斷請(qǐng)求標(biāo)志位。IT1(TCON.2),外部中斷1觸發(fā)方式控制位。IE1(TCON.3),外部中斷1中斷請(qǐng)求標(biāo)志位。TF0(TCON.5),定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位TF1(TCON.7),定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位。TCOND7D6D5D4D3D2D1D0位定義TF1—TF0—IE1IT1IE0IT02、與中斷系統(tǒng)有關(guān)的SFR(1)TCON(TimerControl)——中斷控制寄存器TCON中含有與定時(shí)器和外部中斷有關(guān)的標(biāo)志位。TCON的字節(jié)地址是88H,可以進(jìn)行位尋址和位操作。(2)IE(InterruptEnable)——中斷允許控制寄存器
CPU對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。EX0(IE.0),外部中斷0允許位;ET0(IE.1),定時(shí)/計(jì)數(shù)器T0中斷允許位;EX1(IE.2),外部中斷0允許位;ET1(IE.3),定時(shí)/計(jì)數(shù)器T1中斷允許位;ES(IE.4),串行口中斷允許位;EA(IE.7),CPU中斷允許(總允許)位。4.1.28051系列單片機(jī)中斷系統(tǒng)及與中斷有關(guān)的SFRIED7D6D5D4D3D2D1D0位定義EA——ESET1EX1ET0EX0(3)IP(InterruptPriority)——中斷優(yōu)先級(jí)控制寄存器8051單片機(jī)有兩個(gè)中斷優(yōu)先級(jí),即可實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套。每個(gè)中斷源的中斷優(yōu)先級(jí)都是由中斷優(yōu)先級(jí)寄存器IP中的相應(yīng)位的狀態(tài)來規(guī)定的。PX0(IP.0),外部中斷0優(yōu)先級(jí)設(shè)定位;PT0(IP.1),定時(shí)/計(jì)數(shù)器T0優(yōu)先級(jí)設(shè)定位;PX1(IP.2),外部中斷0優(yōu)先級(jí)設(shè)定位;PT1(IP.3),定時(shí)/計(jì)數(shù)器T1優(yōu)先級(jí)設(shè)定位;PS(IP.4),串行口優(yōu)先級(jí)設(shè)定位;PT2(IP.5),定時(shí)/計(jì)數(shù)器T2優(yōu)先級(jí)設(shè)定位。4.1.28051系列單片機(jī)中斷系統(tǒng)及與中斷有關(guān)的SFRIPD7D6D5D4D3D2D1D0位定義———PSPT1PX1PT0PX0
中斷源有請(qǐng)求時(shí)會(huì)產(chǎn)生請(qǐng)求標(biāo)志,如果中斷是被允許的,那么CPU會(huì)響應(yīng)該中斷,響應(yīng)中斷時(shí),PC轉(zhuǎn)移到該中斷向量地址(也稱入口地址)處運(yùn)行程序。8051單片機(jī)中斷源的入口地址固定在程序存儲(chǔ)器開頭的一段范圍內(nèi)(0003H~002BH),具體地址如下表所示。中斷源入口地址中斷編號(hào)0003H0T0000BH10013H2T1001BH3串口0023H43.中斷源向量地址4.1.28051系列單片機(jī)中斷系統(tǒng)及與中斷有關(guān)的SFR4.1.3中斷處理過程
中斷是一個(gè)過程,整個(gè)過程可以分為以下幾步:中斷請(qǐng)求、中斷響應(yīng)、中斷服務(wù)和中斷返回。1、中斷請(qǐng)求
中斷源只有在有中斷請(qǐng)求時(shí),CPU才可能響應(yīng)它,不同的中斷源產(chǎn)生中斷請(qǐng)求的方式是不同的。中斷源的中斷請(qǐng)求標(biāo)志由內(nèi)部硬件電路自動(dòng)置為“1”,CPU在執(zhí)行指令的每個(gè)機(jī)器周期里都會(huì)查詢這些中斷請(qǐng)求標(biāo)志,如果查詢到某個(gè)中斷請(qǐng)求標(biāo)志為“1”,那么CPU就可能響應(yīng)該中斷源的中斷請(qǐng)求。2、中斷響應(yīng)
有了中斷請(qǐng)求,CPU要響應(yīng)它還必須滿足以下幾個(gè)條件。
第一,該中斷源的中斷請(qǐng)求已經(jīng)被允許,即對(duì)應(yīng)的中斷允許標(biāo)志和總的中斷允許標(biāo)志EA都被設(shè)置為“1”。
第二,CPU此時(shí)沒有響應(yīng)同級(jí)或高級(jí)中斷。如果已經(jīng)有中斷服務(wù)程序在運(yùn)行,CPU不會(huì)響應(yīng)新的同級(jí)中斷請(qǐng)求,但可以響應(yīng)高級(jí)中斷。如果正在執(zhí)行高級(jí)中斷服務(wù)程序,那么單片機(jī)也不會(huì)響應(yīng)任何中斷。
第三,CPU正處于執(zhí)行某一條指令的最后一個(gè)機(jī)器周期。如果不是,就只有等到該條指令執(zhí)行完才能響應(yīng)。
第四,如果正在執(zhí)行的指令是對(duì)IE、IP進(jìn)行訪問的指令或中斷返回指令RETI,則只有等該指令執(zhí)行完再執(zhí)行一條其他指令才會(huì)響應(yīng)中斷請(qǐng)求。CPU在響應(yīng)某個(gè)中斷時(shí),先做了如下操作:
(1)保護(hù)斷點(diǎn)地址;
(2)撤除該中斷源的請(qǐng)求標(biāo)志;
(3)關(guān)閉同級(jí)中斷;
(4)將該中斷源的入口地址送給PC,程序?qū)⑥D(zhuǎn)到該程序的入口地址處運(yùn)行。
3.中斷服務(wù)
中斷服務(wù)就是中斷源請(qǐng)求CPU做的任務(wù),需要編程者用指令來實(shí)現(xiàn)。中斷服務(wù)程序的內(nèi)容包括3部分:保護(hù)現(xiàn)場(chǎng)、服務(wù)程序主體、恢復(fù)現(xiàn)場(chǎng),流程如圖所示。4.中斷返回
中斷返回與子程序的返回類似,在匯編語(yǔ)言程序中,需要執(zhí)行一條返回指令RETI。RETI指令的功能如下:
RETI; //①(SP)→PC15~8,SP-1→SP //②(SP)→PC7~0,SP-1→SP
中斷服務(wù)程序中最后執(zhí)行的指令必須是RETI,程序才能正確返回。執(zhí)行RETI指令時(shí),CPU自動(dòng)完成下面的操作:(1)恢復(fù)斷點(diǎn)地址;
(2)開放同級(jí)中斷,允許同級(jí)的其他中斷源響應(yīng)。注意:匯編語(yǔ)言在中斷服務(wù)程序中使用RETI指令返回,但在C語(yǔ)言的中斷服務(wù)程序中不使用返回語(yǔ)句,也不能返回任何數(shù)值。
4.1.3中斷處理過程4.1.4中斷響應(yīng)時(shí)間
中斷的設(shè)置是為了單片機(jī)能及時(shí)地處理隨機(jī)發(fā)生的事件,但從中斷請(qǐng)求到中斷被響應(yīng)需要一定的時(shí)間,只有在響應(yīng)的條件滿足時(shí)才能響應(yīng)。
如果在中斷請(qǐng)求階段已經(jīng)有高級(jí)中斷或同級(jí)中斷在運(yùn)行,則等待的時(shí)間主要決定于正在運(yùn)行的中斷程序的大小。需要考慮其他中斷程序?qū)Ρ局袛囗憫?yīng)速度的影響,對(duì)響應(yīng)速度要求高的中斷源可以設(shè)置為高優(yōu)先級(jí),其他中斷源設(shè)置為低優(yōu)先級(jí),高優(yōu)先級(jí)中斷源一般只設(shè)置1個(gè)。
如果沒有高級(jí)中斷或同級(jí)中斷正在運(yùn)行,則等待的時(shí)間取決于中斷請(qǐng)求時(shí)執(zhí)行的指令,如果執(zhí)行的是RETI或訪問IE、IP的指令,則需要先等這類指令執(zhí)行完畢,再執(zhí)行一條指令,只有這樣,才能響應(yīng)中斷(如果緊接的指令是乘除法指令,則等待的時(shí)間長(zhǎng)一些)。響應(yīng)中斷的時(shí)間為3~8個(gè)機(jī)器周期,一般情況下為3~4個(gè)機(jī)器周期。4.1.5C語(yǔ)言中斷程序結(jié)構(gòu)使用C語(yǔ)言編寫中斷服務(wù)程序十分簡(jiǎn)單,只需按照規(guī)定格式來編寫即可。具體格式如下:void中斷函數(shù)名(void)interrupt中斷編號(hào)[using寄存器組]{
中斷處理語(yǔ)句;
......
}
以上中斷服務(wù)程序不能有返回值,而且參數(shù)為空。其中,中斷編號(hào)根據(jù)所使用的中斷源來確定;寄存器組可以選0~3,也可以不選,由編譯器自動(dòng)分配。中斷程序處理完畢后自動(dòng)返回原斷點(diǎn)處。4.2
外部中斷的應(yīng)用4.2.1外部中斷應(yīng)用步驟1.硬件
硬件上的中斷比較簡(jiǎn)單,只需將低電平或下降沿信號(hào)加到相應(yīng)的中斷引腳上即可。用戶要做的就是通過一定的電路把按鍵、系統(tǒng)掉電、A/D轉(zhuǎn)換結(jié)束、傳感器、開關(guān)動(dòng)作等狀態(tài)轉(zhuǎn)變成有效的中斷請(qǐng)求信號(hào),并加到對(duì)應(yīng)的外部中斷的引腳上。2.軟件
外部中斷在軟件上的設(shè)計(jì)步驟可以分為3步:初始化、入口地址和服務(wù)程序。(1)初始化。外部中斷初始化內(nèi)容包括中斷觸發(fā)方式選擇、開放“中斷”和中斷優(yōu)先級(jí)設(shè)置。外部中斷有低電平觸發(fā)和下降沿觸發(fā)兩種方式,一般選用下降沿觸發(fā)方式。中斷優(yōu)先級(jí)設(shè)置是指根據(jù)實(shí)際情況,結(jié)合其他中斷源的統(tǒng)一設(shè)置。一般可以不設(shè)置,只有當(dāng)它用來處理系統(tǒng)優(yōu)先任務(wù)時(shí),才把它設(shè)置為高優(yōu)先級(jí)。(2)入口地址。CPU響應(yīng)中斷時(shí)會(huì)自動(dòng)轉(zhuǎn)移到中斷源的入口地址處運(yùn)行程序,因此在使用匯編語(yǔ)言來編寫中斷服務(wù)程序時(shí),就需要把程序放在入口地址處。采用C語(yǔ)言編程不需要入口地址,只需設(shè)置中斷編號(hào)。(3)服務(wù)程序。服務(wù)程序是具體的程序內(nèi)容,根據(jù)中斷源中斷要做的事情,編制相應(yīng)的程序。它與子程序有類似的地方,其名稱作為上面轉(zhuǎn)移指令的目的地址,在程序的最后要有RETI指令,服務(wù)程序完成后可以返回?cái)帱c(diǎn)處。4.2.2外部中斷應(yīng)用舉例【例4-1】
在LED流水燈電路的基礎(chǔ)上設(shè)計(jì)中斷接口電路,將按鍵信號(hào)轉(zhuǎn)變成外部中斷的請(qǐng)求信號(hào),如圖4-5所示。要求:按鍵每按一下,LED循環(huán)移一位。
實(shí)現(xiàn)原理分析:當(dāng)按鍵沒有被按下時(shí),P3.2引腳被上拉為高電平。在按鍵被按下的過程中,P3.2引腳有下降沿信號(hào),變?yōu)榈碗娖?。無論是低電平還是下降沿,都可以作為中斷的請(qǐng)求信號(hào)。voidsetup(void)//初始化設(shè)置子程序{LED=0xfe;
//亮燈初始信息IT0=1;
//外部中斷下降沿觸發(fā)EX0=1;
//允許外部中斷EA=1;
//允許全局中斷}voidINTEX0(void)interrupt0using1
//中斷服務(wù)程序{P1=LED;LED=LED<<1|0x01;//亮燈信息左移一位}4.2.2外部中斷應(yīng)用舉例名稱:INT1的中斷函數(shù)程序功能:實(shí)現(xiàn)9~0的遞減顯示voidINTEX1(void)interrupt2{charj;//設(shè)置有符號(hào)的變量for(j=9;j>=0;j--)//for循環(huán),共循環(huán)9次
{
display(j);//調(diào)用顯示函數(shù)
delayms(500);//延時(shí)0.5s
}}程序功能:實(shí)現(xiàn)數(shù)碼管的顯示入口參數(shù):待顯示的數(shù)字voiddisplay(unsignedcharnumber)
//顯示函數(shù){ P0=SEG[number];}【例4-2】
如圖4-6所示,系統(tǒng)上電時(shí),數(shù)碼管從0到9遞增循環(huán)顯示。當(dāng)按鍵被按下時(shí),用中斷方式控制數(shù)碼管從9到0遞減顯示一次。實(shí)現(xiàn)原理分析:在第3章的案例中已經(jīng)介紹過單個(gè)數(shù)碼管的循環(huán)遞增顯示原理,與之前不同的是,本例中的數(shù)碼管的顯示被按鍵中斷,顯示的數(shù)據(jù)有變化。這些變化的顯示可以放在中斷服務(wù)程序中實(shí)現(xiàn)。4.2.3外部中斷源的擴(kuò)展
8051單片機(jī)的外部中斷只有兩個(gè),有時(shí)會(huì)不夠用。當(dāng)有多個(gè)外部信號(hào)需要使用中斷方式工作時(shí),可以采用擴(kuò)展的方法。如圖所示。在中斷服務(wù)程序中,首先要判斷是哪個(gè)信號(hào)產(chǎn)生了中斷請(qǐng)求,可通過讀與之相連的I/O口來判斷。如果某個(gè)引腳電平為低,就是該引腳信號(hào)引起的中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《論說類文體寫作》課件
- 2024年浙江省金衢十二校中考英語(yǔ)模擬試卷(6月份)
- 《廣告培訓(xùn)》課件
- 函數(shù)思想課件
- 財(cái)務(wù)調(diào)查報(bào)告范文
- 會(huì)計(jì)賬簿教學(xué)課件
- 《信息之窗》課件
- 家庭教育的角色與責(zé)任
- 中職崗位體驗(yàn)報(bào)告范文
- 新員工培訓(xùn)與崗位晉升
- 液氨使用與儲(chǔ)存安全技術(shù)規(guī)范
- 烤煙煙葉等級(jí)圖庫(kù)課件
- 純電動(dòng)汽車整車控制器(VCU)設(shè)計(jì)方案
- CQJTGT D07-2021 重慶市高速公路環(huán)境保護(hù)與綠化景觀工程標(biāo)準(zhǔn)化設(shè)計(jì)指南
- (完整版)設(shè)計(jì)的進(jìn)度計(jì)劃保證措施
- 7的乘法口訣說課--完整版PPT課件
- 危大工程安全管理檔案
- 2022機(jī)械設(shè)備安全管理及保證措施
- 特困人員生活自理能力評(píng)估表
- 新風(fēng)系統(tǒng)安裝合同模板
- 狂暴戰(zhàn)一鍵輸出宏
評(píng)論
0/150
提交評(píng)論