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

下載本文檔

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

文檔簡(jiǎn)介

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

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

IT0=1INT1IT1=0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

{ 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]];};*開(kāi)封大學(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++; //計(jì)數(shù)值遞增}*開(kāi)封大學(xué)教學(xué)資源課件制作組3.4項(xiàng)目實(shí)施3.4.1硬件設(shè)計(jì)*開(kāi)封大學(xué)教學(xué)資源課件制作組3.4.2軟件設(shè)計(jì)*開(kāi)封大學(xué)教學(xué)資源課件制作組寫(xiě)出單片機(jī)C語(yǔ)言程序清單:#include<reg51.h>#defineucharunsignedcharucharlight,f,b;/********延時(shí)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--);}/********延時(shí)10MS的子函數(shù)*********/voiddelay10ms(){uchari,k;for(i=20;i>0;i--)for(k=250;k>0;k--);}*開(kāi)封大學(xué)教學(xué)資源課件制作組/********左移點(diǎn)亮彩燈*********/voidleft(){light=light<<1;if(light==0)light=0x01;P2=~light;}/********右移點(diǎn)亮彩燈*********/voidright(){light=light>>1;if(light==0)light=0x01;P2=~light;}*開(kāi)封大學(xué)教學(xué)資源課件制作組/********用戶(hù)自定義點(diǎn)亮彩燈*********/voidassum(){ucharcodedispcode[8]={0xff,0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e};if(b==7)b=0;els

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論