單片機應(yīng)用技術(shù)項目化教程課件-項目3外部中斷控制才燈的設(shè)計_第1頁
單片機應(yīng)用技術(shù)項目化教程課件-項目3外部中斷控制才燈的設(shè)計_第2頁
單片機應(yīng)用技術(shù)項目化教程課件-項目3外部中斷控制才燈的設(shè)計_第3頁
單片機應(yīng)用技術(shù)項目化教程課件-項目3外部中斷控制才燈的設(shè)計_第4頁
單片機應(yīng)用技術(shù)項目化教程課件-項目3外部中斷控制才燈的設(shè)計_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

*開封大學(xué)教學(xué)資源課件制作組項目3外部中斷控制彩燈的設(shè)計【項目導(dǎo)入】早期的單片機系統(tǒng)中并沒有引入中斷機制,隨著工業(yè)技術(shù)的發(fā)展,要求在工業(yè)控制系統(tǒng)中能實時、快速、準(zhǔn)確地處理一些突發(fā)事件,由此導(dǎo)致了中斷技術(shù)的出現(xiàn)。現(xiàn)在中斷技術(shù)在單片機中應(yīng)用越來越廣泛。在此,我們通過設(shè)計一個項目——外部中斷控制的彩燈控制,讓同學(xué)們掌握中斷技術(shù)在單片機中的使用。*開封大學(xué)教學(xué)資源課件制作組項目3閃爍LED燈的設(shè)計【項目目標(biāo)】1.知識目標(biāo)(1)掌握中斷相關(guān)的基本概念;(2)理解中斷控制寄存器的各位含義和使用;(3)掌握中斷的處理過程;2.能力目標(biāo)(1)編程中會使用中斷各寄存器;(2)掌握中斷的入口地址的安排;(3)能熟練對中斷應(yīng)用程序進行編程。3.態(tài)度目標(biāo)(1)具有良好的思想政治素質(zhì)與職業(yè)道德;(2)養(yǎng)成良好的學(xué)習(xí)習(xí)慣;(3)具有團隊協(xié)作、互幫互助的良好協(xié)作精神。*開封大學(xué)教學(xué)資源課件制作組3.1項目描述單片機的中斷技術(shù)在工業(yè)控制與測量領(lǐng)域有著廣泛的應(yīng)用。本項目就是通過用一個按鍵產(chǎn)生的中斷信號來控制彩燈的閃亮方式。通過該項目的學(xué)習(xí),使學(xué)生掌握單片機中斷的基本概念、中斷的處理過程以及中斷服務(wù)程序的編寫,為以后單片機系統(tǒng)的開發(fā)奠定扎實的基礎(chǔ)。*開封大學(xué)教學(xué)資源課件制作組3.2項目目的與要求本項目的目的就是采用外部中斷方式控制彩燈的運行,通過按動按鍵產(chǎn)生中斷,使得彩燈以3種方式閃亮。項目在實施過程中需要解決一下關(guān)鍵問題:(1)采用何種中斷信號?如何處理該中斷過程?(2)按鍵按下后,中斷如何響應(yīng)?(3)中斷服務(wù)程序的編寫。*開封大學(xué)教學(xué)資源課件制作組3.3項目支撐知識連接3.3.1中斷系統(tǒng)的結(jié)構(gòu)及功能1.中斷的概念看電視中斷處理中斷請求中斷返回電話鈴響接聽電話看電視主程序事件發(fā)生事件處理主程序?qū)嶋H生活計算機*開封大學(xué)教學(xué)資源課件制作組中斷系統(tǒng)示意圖*開封大學(xué)教學(xué)資源課件制作組中斷:

在計算機執(zhí)行程序的過程中,當(dāng)外部設(shè)備發(fā)生某一事件去請求CPU處理時(中斷發(fā)生);CPU暫時中斷當(dāng)前程序的執(zhí)行,轉(zhuǎn)去處理所發(fā)生的事件(中斷響應(yīng)和中斷服務(wù));待處理完畢后,再返回來執(zhí)行原來被中斷的程序(中斷返回),這一處理過程稱之為中斷。中斷要注意2點:保護斷點和保護現(xiàn)場*開封大學(xué)教學(xué)資源課件制作組IE0TCONSCONINT0IT0=0

IT0=1INT1IT1=0

IT1=1TF0IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然優(yōu)先級矢量地址高級中斷請求自然優(yōu)先級矢量地址低級中斷請求PX0PT0PX1PT1PSIEIP中斷標(biāo)志位中斷源允許總允許EA中斷優(yōu)先級二、MCS-51中斷系統(tǒng)的結(jié)構(gòu)*開封大學(xué)教學(xué)資源課件制作組MCS-51系列單片機的中斷系統(tǒng)有5個中斷源分別是:,,T0,T1和串行端口。

三、中斷的功能(1)提高CPU的工作效率(2)處理故障(3)實現(xiàn)實時控制(4)實現(xiàn)人機交互*開封大學(xué)教學(xué)資源課件制作組3.3.2中斷源與中斷處理一、中斷源(5個)

INT0:由IT0選擇為低電平有效還是下降沿有效。此引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志IE0置1,申請中斷。

INT1:由IT1選擇為低電平有效還是下降沿有效。此引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志IE1置1,申請中斷。TF0(TCON.5):片內(nèi)定時/計數(shù)器T0溢出中斷請求標(biāo)志。當(dāng)定時/計數(shù)器T0發(fā)生溢出時,置位TF0,向CPU申請斷。*開封大學(xué)教學(xué)資源課件制作組TF1(TCON.7):片內(nèi)定時/計數(shù)器T1溢出中斷請求標(biāo)志。當(dāng)定時/計數(shù)器T1發(fā)生溢出時,置位TF1,向CPU申請中斷。RI、TI:

串行口中斷請求標(biāo)志。當(dāng)串行口接收完一幀數(shù)據(jù)時置位RI或當(dāng)串行口發(fā)送完一幀數(shù)據(jù)時置位TI,向CPU申請中斷。*開封大學(xué)教學(xué)資源課件制作組二、.中斷申請標(biāo)志(TCON和SCON)(1)定時/計數(shù)器控制寄存器TCONTF1TR1TF0TR0IE1IT1IE0IT0TCON(88H)IT0(TCON.0):外中斷0觸發(fā)方式控制位。

IT0=0,電平觸發(fā)方式。

IT0=1,邊沿觸發(fā)方式(下降沿有效)。IT1(TCON.2):選擇外部中斷1的中斷觸發(fā)方式同IT0IE0(TCON.1):

外中斷0中斷請求標(biāo)志位。TF0,T0溢出中斷請求標(biāo)志位。IT1、IE1、TF1類同

*開封大學(xué)教學(xué)資源課件制作組(2)串行口控制寄存器SCONSCON(98H)SM0SM1SM2RENTB8RB8TIRIRI(SCON.0):串行口接收中斷請求標(biāo)志位。TI(SCON.1):串行口發(fā)送中斷請求標(biāo)志位。注意:RI和TI由硬件置位、由軟件清除。*開封大學(xué)教學(xué)資源課件制作組中斷允許控制EAESET1EX1ET0EX0

IE(A8H)EX0:外中斷0允許位;ET0:T0中斷允許位;EX1:外中斷0允許位;ET1:T1中斷允許位;ES:串口中斷允許位;EA:CPU中斷允許(總允許)位。*開封大學(xué)教學(xué)資源課件制作組四、中斷優(yōu)先級控制PSPT1PX1PT0PX0

IP(B8H)IP寄存器各位的含義如下:PX0:外中斷0優(yōu)先級設(shè)定位;PT0:T0優(yōu)先級設(shè)定位;PX1:外中斷0優(yōu)先級設(shè)定位;PT1:T1優(yōu)先級設(shè)定位;PS:串口優(yōu)先級設(shè)定位。*開封大學(xué)教學(xué)資源課件制作組各中斷源響應(yīng)優(yōu)先級及中斷服務(wù)程序入口表如下:中斷源中斷標(biāo)志中斷服務(wù)程序入口優(yōu)先級順序外部中斷0IE00003H高定時/計數(shù)器0(T0)TF0000BH↓外部中斷1IE10013H↓定時/計數(shù)器1(T1)TF1001BH↓串行口中斷RI或TI0023H低*開封大學(xué)教學(xué)資源課件制作組二、中斷嵌套當(dāng)CPU正在執(zhí)行中斷服務(wù)程序時,如果出現(xiàn)了另一個優(yōu)先級比它高的中斷請求,這時CPU就暫時中止執(zhí)行原來優(yōu)先級較低的中斷源的服務(wù)程序,保護當(dāng)前的斷點,轉(zhuǎn)去響應(yīng)優(yōu)先級更高的中斷請求,并為其服務(wù)。待服務(wù)結(jié)束后,再去執(zhí)行優(yōu)先級別較低的原中斷服務(wù)程序。該過程被稱為中斷嵌套(類似于子程序的嵌套),該中斷系統(tǒng)稱為多級中斷系統(tǒng),中斷嵌套的過程如圖*開封大學(xué)教學(xué)資源課件制作組*開封大學(xué)教學(xué)資源課件制作組MCS-51單片機的中斷處理過程可分為三個階段中斷響應(yīng)中斷處理中斷返回五、中斷處理過程程序被中斷前斷點中斷處理后中斷響應(yīng)(1)響應(yīng)條件:①有中斷請求;②EA=1,中斷開放;③請求中斷的中斷源中斷允許為1,開中斷。(2)響應(yīng)過程:①保存斷點,CPU自動把斷點壓入堆棧進行保存;②把對應(yīng)的中斷服務(wù)子程序入口地址裝入。中斷返回執(zhí)行RETI指令:中斷服務(wù)子程序最后一條指令是中斷返回指令RETI它的功能是將斷點地址彈出送回PC中,使程序能返回到原來被中斷的程序繼續(xù)執(zhí)行。中斷處理(1)保護現(xiàn)場:現(xiàn)場通常有PSW、工作寄存器、專用寄存器等,若在中斷服務(wù)子程序中要用這些寄存器,則在進入中斷服務(wù)子程序前將它們保護起來,以便在執(zhí)行RETI指令前將它們恢復(fù)。(2)執(zhí)行中斷服務(wù)子程序,為中斷源服務(wù)。*開封大學(xué)教學(xué)資源課件制作組六、中斷應(yīng)用編寫中斷服務(wù)程序時應(yīng)注意以下幾點:各中斷源的入口向量地址之間,只相隔8個單元,一般的中斷服務(wù)程序是容納不下的,因而最常用的方法是在中斷入口向量地址單元處存放一條轉(zhuǎn)移指令,轉(zhuǎn)至存儲器其他的任何空間去。若在執(zhí)行當(dāng)前中斷程序時禁止更高優(yōu)先級中斷,應(yīng)用軟件關(guān)閉CPU中斷或屏蔽更高級中斷源的中斷,在中斷返回前再開放中斷。在保護現(xiàn)場和恢復(fù)現(xiàn)場時,一般應(yīng)關(guān)閉CPU中斷,使CPU暫時不響應(yīng)新的中斷請求;在保護現(xiàn)場之后若允許響應(yīng)高優(yōu)先級中斷,則應(yīng)開中斷。同樣在恢復(fù)現(xiàn)場之前應(yīng)關(guān)中斷,恢復(fù)之后再開中斷。*開封大學(xué)教學(xué)資源課件制作組編寫中斷服務(wù)程序時應(yīng)注意以下幾點:C51編譯器支持在C源程序中直接開發(fā)中斷過程,在中斷服務(wù)程序中,必須要指定對應(yīng)的中斷號,用中斷號確定該中斷服務(wù)程序是哪個中斷所對應(yīng)的中斷服務(wù)程序。中斷服務(wù)程序格式:Void函數(shù)名(參數(shù))interruptnusingm{函數(shù)體語句;}其中interrupt后面的n是中斷號;關(guān)鍵字using后面的m是所選擇的寄存器組,取值范圍為(0~3),定義中斷時using是個選項,可以省略不用。*開封大學(xué)教學(xué)資源課件制作組【小提示】在使用中斷函數(shù)時要注意以下幾點:1.設(shè)計中斷時,要注意哪些功能應(yīng)該放在中斷中,哪些功能應(yīng)該放在主程序中;2.中斷函數(shù)不能傳遞參數(shù);中斷函數(shù)沒有返回值;3.中斷函數(shù)在調(diào)用其它函數(shù)時,要保證使用相同的寄存器;4.中斷函數(shù)使用浮點運算,要保證浮點寄存器的狀態(tài)。*開封大學(xué)教學(xué)資源課件制作組【例3-1】利用單片機的外部中斷0響應(yīng)按鍵開關(guān)信號,當(dāng)有按鍵按下時,會觸發(fā)INT0中斷,中斷發(fā)生時將LED狀態(tài)取反,產(chǎn)生LED的亮滅由按鍵(中斷)控制,電路圖如圖3-6所示。中斷控制的單個LED燈。*開封大學(xué)教學(xué)資源課件制作組C51程序如下:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitLED=P0^0;/*********主程序************/voidmain(){LED=1;EA=1;//允許中斷EX0=1;//使用外部中斷0T0=1;//選擇外部的中斷的中斷觸發(fā)方式

while(1);}/*********INT0中斷函數(shù)************/voidEX_INT0()interrupt0{LED=~LED; //控制LED亮滅

}*開封大學(xué)教學(xué)資源課件制作組例3-2】設(shè)計INT0中斷計數(shù):要求每次按下按鍵時觸發(fā)INT0中斷,中斷程序累加計數(shù),計數(shù)值顯示在3只數(shù)碼管上,按下清零鍵時數(shù)碼管清零,硬件電路如圖所示。

*開封大學(xué)教學(xué)資源課件制作組C51程序如下:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedint//0~9的段碼ucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//計數(shù)值分解后各個待顯示的數(shù)位ucharDSY_Buffer[]={0,0,0};ucharCount=0;sbitClear_Key=P3^6;*開封大學(xué)教學(xué)資源課件制作組//數(shù)碼管上顯示計數(shù)值voidShow_Count_ON_DSY(){ DSY_Buffer[2]=Count/100; //獲取3個數(shù)

DSY_Buffer[1]=Count%100/10; DSY_Buffer[0]=Count%10; if(DSY_Buffer[2]==0)//高位為0時不顯示

{ DSY_Buffer[2]=0x0a; if(DSY_Buffer[1]==0)//高位為0,若第二位為0同樣不顯示

DSY_Buffer[1]=0x0a; } P0=DSY_CODE[DSY_Buffer[0]]; P1=DSY_CODE[DSY_Buffer[1]]; P2=DSY_CODE[DSY_Buffer[2]];};*開封大學(xué)教學(xué)資源課件制作組//主程序voidmain(){ P0=0x00; P1=0x00; P2=0x00; IE=0x81; //允許INT0中斷

IT0=1; //下降沿觸發(fā)

while(1) { if(Clear_Key==0)Count=0; //清0 Show_Count_ON_DSY(); }}//INT0中斷函數(shù)voidEX_INT0()interrupt0{ Count++; //計數(shù)值遞增}*開封大學(xué)教學(xué)資源課件制作組3.4項目實施3.4.1硬件設(shè)計*開封大學(xué)教學(xué)資源課件制作組3.4.2軟件設(shè)計*開封大學(xué)教學(xué)資源課件制作組寫出單片機C語言程序清單:#include<reg51.h>#defineucharunsignedcharucharlight,f,b;/********延時0.5S的子函數(shù)*********/voiddelay05s(){uchari,j,k;for(i=5;i>0;i--)for(j=200;j>0;j--)for(k=250;k>0;k--);}/********延時10MS的子函數(shù)*********/voiddelay10ms(){uchari,k;for(i=20;i>0;i--)for(k=250;k>0;k--);}*開封大學(xué)教學(xué)資源課件制作組/********左移點亮彩燈*********/voidleft(){light=light<<1;if(light==0)light=0x01;P2=~light;}/********右移點亮彩燈*********/voidright(){light=light>>1;if(light==0)light=0x01;P2=~light;}*開封大學(xué)教學(xué)資源課件制作組/********用戶自定義點亮彩燈*********/voidassum(){ucharcodedispcode[8]={0xff,0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e};if(b==7)b=0;els

溫馨提示

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

評論

0/150

提交評論