版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單片機中斷系統(tǒng)第4章
中斷系統(tǒng)是為了使單片機對外部或內(nèi)部隨機發(fā)生的事件能及時處理而設(shè)置的。中斷功能的存在在很大程度上增強了單片機處理突發(fā)事件的能力。本章從中斷的概念、中斷系統(tǒng)結(jié)構(gòu)、中斷允許與中斷優(yōu)先級的控制、響應(yīng)中斷請求的條件、外部中斷的響應(yīng)時間、外部中斷的觸發(fā)方式選擇、中斷服務(wù)子程序的設(shè)計和多外部中斷源擴展設(shè)計等方面對中斷進行介紹。引言目錄中斷概述1外部中斷應(yīng)用2本章小結(jié)3本章習(xí)題4行業(yè)PPT模板/hangye/4.1
中斷概述4.1.1中斷的概念
CPU在處理某一事件A時,發(fā)生了另一事件B請求CPU迅速去處理(中斷發(fā)生);
CPU暫時中斷當前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù));待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷。
(a)中斷流程
(b)中斷嵌套流程4.1.28051系列單片機中斷系統(tǒng)及與中斷有關(guān)的SFR1、8051系列單片機的中斷系統(tǒng)
8051系列單片機共有5個中斷源:兩個外部中斷和、兩個定時/計數(shù)器T0和T1,以及一個串口(分為兩個優(yōu)先級)。4.1.28051系列單片機中斷系統(tǒng)及與中斷有關(guān)的SFRIT0(TCON.0),外部中斷0觸發(fā)方式控制位。當IT0=0時,為電平觸發(fā)方式。當IT0=1時,為邊沿觸發(fā)方式(下降沿有效)。IE0(TCON.1),外部中斷0中斷請求標志位。IT1(TCON.2),外部中斷1觸發(fā)方式控制位。IE1(TCON.3),外部中斷1中斷請求標志位。TF0(TCON.5),定時/計數(shù)器T0溢出中斷請求標志位TF1(TCON.7),定時/計數(shù)器T1溢出中斷請求標志位。TCOND7D6D5D4D3D2D1D0位定義TF1—TF0—IE1IT1IE0IT02、與中斷系統(tǒng)有關(guān)的SFR(1)TCON(TimerControl)——中斷控制寄存器TCON中含有與定時器和外部中斷有關(guān)的標志位。TCON的字節(jié)地址是88H,可以進行位尋址和位操作。(2)IE(InterruptEnable)——中斷允許控制寄存器
CPU對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。EX0(IE.0),外部中斷0允許位;ET0(IE.1),定時/計數(shù)器T0中斷允許位;EX1(IE.2),外部中斷0允許位;ET1(IE.3),定時/計數(shù)器T1中斷允許位;ES(IE.4),串行口中斷允許位;EA(IE.7),CPU中斷允許(總允許)位。4.1.28051系列單片機中斷系統(tǒng)及與中斷有關(guān)的SFRIED7D6D5D4D3D2D1D0位定義EA——ESET1EX1ET0EX0(3)IP(InterruptPriority)——中斷優(yōu)先級控制寄存器8051單片機有兩個中斷優(yōu)先級,即可實現(xiàn)二級中斷服務(wù)嵌套。每個中斷源的中斷優(yōu)先級都是由中斷優(yōu)先級寄存器IP中的相應(yīng)位的狀態(tài)來規(guī)定的。PX0(IP.0),外部中斷0優(yōu)先級設(shè)定位;PT0(IP.1),定時/計數(shù)器T0優(yōu)先級設(shè)定位;PX1(IP.2),外部中斷0優(yōu)先級設(shè)定位;PT1(IP.3),定時/計數(shù)器T1優(yōu)先級設(shè)定位;PS(IP.4),串行口優(yōu)先級設(shè)定位;PT2(IP.5),定時/計數(shù)器T2優(yōu)先級設(shè)定位。4.1.28051系列單片機中斷系統(tǒng)及與中斷有關(guān)的SFRIPD7D6D5D4D3D2D1D0位定義———PSPT1PX1PT0PX0
中斷源有請求時會產(chǎn)生請求標志,如果中斷是被允許的,那么CPU會響應(yīng)該中斷,響應(yīng)中斷時,PC轉(zhuǎn)移到該中斷向量地址(也稱入口地址)處運行程序。8051單片機中斷源的入口地址固定在程序存儲器開頭的一段范圍內(nèi)(0003H~002BH),具體地址如下表所示。中斷源入口地址中斷編號0003H0T0000BH10013H2T1001BH3串口0023H43.中斷源向量地址4.1.28051系列單片機中斷系統(tǒng)及與中斷有關(guān)的SFR4.1.3中斷處理過程
中斷是一個過程,整個過程可以分為以下幾步:中斷請求、中斷響應(yīng)、中斷服務(wù)和中斷返回。1、中斷請求
中斷源只有在有中斷請求時,CPU才可能響應(yīng)它,不同的中斷源產(chǎn)生中斷請求的方式是不同的。中斷源的中斷請求標志由內(nèi)部硬件電路自動置為“1”,CPU在執(zhí)行指令的每個機器周期里都會查詢這些中斷請求標志,如果查詢到某個中斷請求標志為“1”,那么CPU就可能響應(yīng)該中斷源的中斷請求。2、中斷響應(yīng)
有了中斷請求,CPU要響應(yīng)它還必須滿足以下幾個條件。
第一,該中斷源的中斷請求已經(jīng)被允許,即對應(yīng)的中斷允許標志和總的中斷允許標志EA都被設(shè)置為“1”。
第二,CPU此時沒有響應(yīng)同級或高級中斷。如果已經(jīng)有中斷服務(wù)程序在運行,CPU不會響應(yīng)新的同級中斷請求,但可以響應(yīng)高級中斷。如果正在執(zhí)行高級中斷服務(wù)程序,那么單片機也不會響應(yīng)任何中斷。
第三,CPU正處于執(zhí)行某一條指令的最后一個機器周期。如果不是,就只有等到該條指令執(zhí)行完才能響應(yīng)。
第四,如果正在執(zhí)行的指令是對IE、IP進行訪問的指令或中斷返回指令RETI,則只有等該指令執(zhí)行完再執(zhí)行一條其他指令才會響應(yīng)中斷請求。CPU在響應(yīng)某個中斷時,先做了如下操作:
(1)保護斷點地址;
(2)撤除該中斷源的請求標志;
(3)關(guān)閉同級中斷;
(4)將該中斷源的入口地址送給PC,程序?qū)⑥D(zhuǎn)到該程序的入口地址處運行。
3.中斷服務(wù)
中斷服務(wù)就是中斷源請求CPU做的任務(wù),需要編程者用指令來實現(xiàn)。中斷服務(wù)程序的內(nèi)容包括3部分:保護現(xiàn)場、服務(wù)程序主體、恢復(fù)現(xiàn)場,流程如圖所示。4.中斷返回
中斷返回與子程序的返回類似,在匯編語言程序中,需要執(zhí)行一條返回指令RETI。RETI指令的功能如下:
RETI; //①(SP)→PC15~8,SP-1→SP //②(SP)→PC7~0,SP-1→SP
中斷服務(wù)程序中最后執(zhí)行的指令必須是RETI,程序才能正確返回。執(zhí)行RETI指令時,CPU自動完成下面的操作:(1)恢復(fù)斷點地址;
(2)開放同級中斷,允許同級的其他中斷源響應(yīng)。注意:匯編語言在中斷服務(wù)程序中使用RETI指令返回,但在C語言的中斷服務(wù)程序中不使用返回語句,也不能返回任何數(shù)值。
4.1.3中斷處理過程4.1.4中斷響應(yīng)時間
中斷的設(shè)置是為了單片機能及時地處理隨機發(fā)生的事件,但從中斷請求到中斷被響應(yīng)需要一定的時間,只有在響應(yīng)的條件滿足時才能響應(yīng)。
如果在中斷請求階段已經(jīng)有高級中斷或同級中斷在運行,則等待的時間主要決定于正在運行的中斷程序的大小。需要考慮其他中斷程序?qū)Ρ局袛囗憫?yīng)速度的影響,對響應(yīng)速度要求高的中斷源可以設(shè)置為高優(yōu)先級,其他中斷源設(shè)置為低優(yōu)先級,高優(yōu)先級中斷源一般只設(shè)置1個。
如果沒有高級中斷或同級中斷正在運行,則等待的時間取決于中斷請求時執(zhí)行的指令,如果執(zhí)行的是RETI或訪問IE、IP的指令,則需要先等這類指令執(zhí)行完畢,再執(zhí)行一條指令,只有這樣,才能響應(yīng)中斷(如果緊接的指令是乘除法指令,則等待的時間長一些)。響應(yīng)中斷的時間為3~8個機器周期,一般情況下為3~4個機器周期。4.1.5C語言中斷程序結(jié)構(gòu)使用C語言編寫中斷服務(wù)程序十分簡單,只需按照規(guī)定格式來編寫即可。具體格式如下:void中斷函數(shù)名(void)interrupt中斷編號[using寄存器組]{
中斷處理語句;
......
}
以上中斷服務(wù)程序不能有返回值,而且參數(shù)為空。其中,中斷編號根據(jù)所使用的中斷源來確定;寄存器組可以選0~3,也可以不選,由編譯器自動分配。中斷程序處理完畢后自動返回原斷點處。4.2
外部中斷的應(yīng)用4.2.1外部中斷應(yīng)用步驟1.硬件
硬件上的中斷比較簡單,只需將低電平或下降沿信號加到相應(yīng)的中斷引腳上即可。用戶要做的就是通過一定的電路把按鍵、系統(tǒng)掉電、A/D轉(zhuǎn)換結(jié)束、傳感器、開關(guān)動作等狀態(tài)轉(zhuǎn)變成有效的中斷請求信號,并加到對應(yīng)的外部中斷的引腳上。2.軟件
外部中斷在軟件上的設(shè)計步驟可以分為3步:初始化、入口地址和服務(wù)程序。(1)初始化。外部中斷初始化內(nèi)容包括中斷觸發(fā)方式選擇、開放“中斷”和中斷優(yōu)先級設(shè)置。外部中斷有低電平觸發(fā)和下降沿觸發(fā)兩種方式,一般選用下降沿觸發(fā)方式。中斷優(yōu)先級設(shè)置是指根據(jù)實際情況,結(jié)合其他中斷源的統(tǒng)一設(shè)置。一般可以不設(shè)置,只有當它用來處理系統(tǒng)優(yōu)先任務(wù)時,才把它設(shè)置為高優(yōu)先級。(2)入口地址。CPU響應(yīng)中斷時會自動轉(zhuǎn)移到中斷源的入口地址處運行程序,因此在使用匯編語言來編寫中斷服務(wù)程序時,就需要把程序放在入口地址處。采用C語言編程不需要入口地址,只需設(shè)置中斷編號。(3)服務(wù)程序。服務(wù)程序是具體的程序內(nèi)容,根據(jù)中斷源中斷要做的事情,編制相應(yīng)的程序。它與子程序有類似的地方,其名稱作為上面轉(zhuǎn)移指令的目的地址,在程序的最后要有RETI指令,服務(wù)程序完成后可以返回斷點處。4.2.2外部中斷應(yīng)用舉例【例4-1】
在LED流水燈電路的基礎(chǔ)上設(shè)計中斷接口電路,將按鍵信號轉(zhuǎn)變成外部中斷的請求信號,如圖4-5所示。要求:按鍵每按一下,LED循環(huán)移一位。
實現(xiàn)原理分析:當按鍵沒有被按下時,P3.2引腳被上拉為高電平。在按鍵被按下的過程中,P3.2引腳有下降沿信號,變?yōu)榈碗娖健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ù)程序功能:實現(xiàn)9~0的遞減顯示voidINTEX1(void)interrupt2{charj;//設(shè)置有符號的變量for(j=9;j>=0;j--)//for循環(huán),共循環(huán)9次
{
display(j);//調(diào)用顯示函數(shù)
delayms(500);//延時0.5s
}}程序功能:實現(xiàn)數(shù)碼管的顯示入口參數(shù):待顯示的數(shù)字voiddisplay(unsignedcharnumber)
//顯示函數(shù){ P0=SEG[number];}【例4-2】
如圖4-6所示,系統(tǒng)上電時,數(shù)碼管從0到9遞增循環(huán)顯示。當按鍵被按下時,用中斷方式控制數(shù)碼管從9到0遞減顯示一次。實現(xiàn)原理分析:在第3章的案例中已經(jīng)介紹過單個數(shù)碼管的循環(huán)遞增顯示原理,與之前不同的是,本例中的數(shù)碼管的顯示被按鍵中斷,顯示的數(shù)據(jù)有變化。這些變化的顯示可以放在中斷服務(wù)程序中實現(xiàn)。4.2.3外部中斷源的擴展
8051單片機的外部中斷只有兩個,有時會不夠用。當有多個外部信號需要使用中斷方式工作時,可以采用擴展的方法。如圖所示。在中斷服務(wù)程序中,首先要判斷是哪個信號產(chǎn)生了中斷請求,可通過讀與之相連的I/O口來判斷。如果某個引腳電平為低,就是該引腳信號引起的中
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 室內(nèi)設(shè)計服務(wù)員工作總結(jié)
- 能源化工行業(yè)市場總結(jié)
- 酒店員工培訓(xùn)計劃設(shè)計
- 音樂學(xué)校前臺服務(wù)心得
- 互聯(lián)網(wǎng)產(chǎn)品設(shè)計師工作總結(jié)
- 《易坦靜的臨床應(yīng)用》課件
- 2023-2024學(xué)年上海市徐匯區(qū)南洋模范中學(xué)高二(下)期中地理試卷
- 《燃氣基礎(chǔ)知識》課件
- 2022年廣東省河源市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年湖北省隨州市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 醫(yī)療儀器安裝與調(diào)試方案
- 陜西省陜西師大附中2025屆高一物理第一學(xué)期期末統(tǒng)考模擬試題含解析
- 人教版2024年小學(xué)二年級上學(xué)期語文期末考試往年真題
- 2024年保安員證考試題庫及答案(共130題)
- 2024壓鑄機安全技術(shù)規(guī)范
- 期末綜合素養(yǎng)評價 (三)(試題)-2024-2025學(xué)年一年級上冊數(shù)學(xué)
- 腸易激綜合征護理查房
- 綿陽小升初數(shù)學(xué)試題-(綿中英才學(xué)校)
- 數(shù)據(jù)中心數(shù)據(jù)中心建設(shè)項目電氣工程設(shè)計方案
- 2023-2024學(xué)年衢州市八年級語文上學(xué)期期末試卷(附答案解析)
- 《稅費計算與申報》課程標準(含課程思政)
評論
0/150
提交評論