《第5章80C51的中斷系統(tǒng)及定時計數(shù)器》由會員分享,可在線閱讀,更多相關(guān)《第5章80C51的中斷系統(tǒng)及定時計數(shù)器(45頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,2024/12/12,1,第,5,章,80C51,的中斷系統(tǒng)及定時,/,計數(shù)器,80C51,單片機的,中斷系統(tǒng),5.1,80C51,單片機的,中斷處理過程,5.2,80C51,單片機的,定時,/,計數(shù)器,5.3,80C52,的定時,/,計數(shù)器,2,5.4,2024/12/12,2,5.1,80C51,單片機的中斷系統(tǒng),5.1.1 80C51,中斷系統(tǒng)的結(jié)構(gòu),CPU,進行工作,A,時發(fā)生了事件,B,,請求,CPU,馬上處理,CPU,暫時中斷當(dāng)前工作,A,,轉(zhuǎn)去處理事件,B,事件,B,處理完后,回到工作,A
2、,被中斷的地方繼續(xù)處理,A,工作,中斷的概念,中斷源,中斷請求,中斷服務(wù),中斷返回,中斷系統(tǒng),中斷的優(yōu)點,:,CPU,利用率高,控制實時性強,系統(tǒng)可靠性好,2024/12/12,3,80C51,中斷系統(tǒng)的結(jié)構(gòu),5,個中斷源、,2,個優(yōu)先級,2024/12/12,4,中斷源,5.1.2 80C51,的中斷源,外部中斷,0,(,INT0,),外部中斷,1,(,INT1,),T0,溢出中斷(,TF0,),T1,溢出中斷(,TF1,),串行口中斷(,RI,或,TI,),2024/12/12,5,觸發(fā)方式設(shè)置及中斷標(biāo)志,7,6,5,4,3,2,1,0,TCON,TF1,TR1,TF0,TR0,IE1,I
3、T1,IE0,IT0,字節(jié)地址:,88H,電平方式(,ITx=0,),,INTx,引腳,低電平,時,IEx=1,,,響應(yīng)中斷后,IEx,不自動清,0,(,INTx,引腳狀態(tài))。,邊沿方式(,ITx=1,),,INTx,引腳,負(fù)跳變,時,IEx=1,,,響應(yīng)中斷后,IEx,自動清,0,。,外部中斷標(biāo)志,IE1,、,IE0,(用,IEx,表示),2024/12/12,6,兩種觸發(fā)方式比較:,電平方式,時,,INTx,低電平必須保持到響應(yīng)時,否則就會漏掉;在中斷服務(wù)結(jié)束前,,INTx,低電平必須撤除,否則中斷返回之后將再次產(chǎn)生中斷。,例,,8255,的中斷請求線在接受讀或?qū)懖僮骱蠹幢粡?fù)位,因此以其去
4、請求電平觸發(fā)方式的中斷比較方便。,邊沿方式,時,采樣到有效下降沿后,在,IEx,中將鎖存一個,1,。若,CPU,暫時不能響應(yīng),申請標(biāo)志也不會丟失,直到響應(yīng)時才清,0,。,例,,ADC0809,的轉(zhuǎn)換結(jié)束信號,EOC,為正脈沖,經(jīng)反相后就可以作為,80C51,的,INTx,信號,。,2024/12/12,7,溢出中斷標(biāo)志,TF1,、,TF0,(用,TFx,表示),溢出中斷請求標(biāo)志,TFx,,,Tx,啟動后就開始由初值進行加,1,計數(shù),直至最高位產(chǎn)生溢出使,TFx=1,向,CPU,請求中斷。,CPU,響應(yīng)中斷后,TFx,自動清,0,。,SCON,的中斷標(biāo)志,7,6,5,4,3,2,1,0,SCON
5、,TI,RI,字節(jié)地址:,98H,RI,:串口,接收,中斷標(biāo)志,響應(yīng)中斷時,不能自動清除,TI,:串口,發(fā)送,中斷標(biāo)志,響應(yīng)中斷時,不能自動清除,2024/12/12,8,5.1.3 80C51,中斷的控制,中斷允許控制,中斷源的開放和屏蔽由,IE,控制(,1,,開放;,0,,禁止,),7,6,5,4,3,2,1,0,IE,EA,ES,ET1,EX1,ET0,EX0,字節(jié)地址:,A8H,EX0:,外中斷,0,允許,ET0:T0,中斷允許,EX1:,外中斷,1,允許,ET1:T1,中斷允許,ES :,串口中斷允許,EA,:CPU,中斷允許,2024/12/12,9,中斷優(yōu)先級控制,中斷優(yōu)先級由,
6、IP,控制(,1,,高級;,0,,低級,),7,6,5,4,3,2,1,0,IP,PS,PT1,PX1,PT0,PX0,字節(jié)地址:,B8H,PX0:,外中斷,0,優(yōu)先級,PT0:T0,中斷,優(yōu)先級,PX1:,外,中斷,1,優(yōu)先級,PT1:T1,中斷,優(yōu)先級,PS :,串口中斷,優(yōu)先級,同一優(yōu)先級的自然順序:,自高至低:,INT0,、,TO,、,INT1,、,T1,、串口。,2024/12/12,10,中斷優(yōu)先級遵循的原則,幾個中斷同時申請,先響應(yīng)高級的中斷,正進行的中斷服務(wù),同級或低級中斷不能對其中斷,但可以被高級中斷所中斷。,為此,中斷系統(tǒng)內(nèi)設(shè)有對應(yīng)高、低,2,個,優(yōu)先級狀態(tài)觸發(fā)器,(用戶不
7、能尋址)。,狀態(tài)觸發(fā)器的復(fù)位由中斷返回指令,RETI,控制。,2024/12/12,11,5.2,80C51,單片機中斷處理過程,5.2.1,中斷響應(yīng)條件和時間,中斷響應(yīng)條件,有中斷請求,相應(yīng)的中斷允許位為,1,CPU,開中斷(即,EA=1,),遇下面情況之一將不被響應(yīng)(,此間中斷條件失效,中斷丟失,),正在處理同級或高級中斷,當(dāng)前選擇周期不是所執(zhí)行指令的最后一個機器周期,正在執(zhí)行,RETI,或,訪問,IE,或,IP,的指令,2024/12/12,12,中斷響應(yīng)時間,中斷響應(yīng)至少需要,3,個完整的機器周期,(,3,8,個)!,受阻時要附加,3,5,個機器周期(,無同級或高級中斷正進行,),排序
8、周期,不是指令的最后機器周期,(,如,MUL,,,5,個,),排序周期,恰逢,RETI,類指令,(,要再跟指令,若是,MUL,,,8,個,),2024/12/12,13,5.2.2,中斷響應(yīng)過程,CPU,響應(yīng)中斷過程,將相應(yīng)優(yōu)先級狀態(tài)觸發(fā)器置,1,(,阻斷后來同級或低級中斷,),執(zhí)行硬件,LCALL,指令(,PC,入棧,中斷服務(wù)程序入口址送,PC,),執(zhí)行中斷服務(wù)程序,編寫中斷服務(wù)程序注意,中斷服務(wù)程序入口存放指令,LJMP,或,AJMP,現(xiàn)場保護與現(xiàn)場恢復(fù),2024/12/12,14,5.2.3,中斷返回,中斷服務(wù)程序最后指令必須是,RETI,,其功能:,將斷點從堆棧彈送,PC,,,CPU,
9、從原斷點繼續(xù)執(zhí)行,將相應(yīng)優(yōu)先級狀態(tài)觸發(fā)器清,0,,恢復(fù)原來工作狀態(tài),注意,不能用,RET,代替,RET,I,中斷服務(wù)程序中,PUSH,和,POP,必須成對使用,2024/12/12,15,5.2.4,中斷程序舉例,【,例,5-1】,單外部中斷源示例,void Ex0()interrupt 0,Flag=,Flag;,while(1),if(Flag=0),/,左移,ScanNum=_crol_(ScanNum,1);,P0=ScanNum;,else,/,右移,ScanNum=_cror_(ScanNum,1);,P0=ScanNum;,DelayMs(500);,2024/12/12,16,
10、【例5-2】如圖所示,編寫程序?qū)崿F(xiàn):系統(tǒng)上電后,數(shù)碼管顯示“P”。按下S0鍵則數(shù)碼管進行加計數(shù),S1鍵則數(shù)碼管進行減計數(shù)。計數(shù)值顯示在數(shù)碼管上。,void t0Isr()interrupt 1,if(Flag0=0)Flag0=1;,Flag1=0;,void Ex1Isr()interrupt 2,if(Flag1=0)Flag1=1;,Flag0=0;,2024/12/12,17,5.3,80C51,單片機的定時,/,計數(shù)器,結(jié)構(gòu),基本型:,T0,,定時、計數(shù)。,T1,,定時、計數(shù)、串口波特率發(fā)生器。,增強型:增加了,T2,。見,5.3.4,節(jié)。,5.3.1,定時,/,計數(shù)器的結(jié)構(gòu)和工作原
11、理,TH1,、,TL1,TH0,、,TL0,TCON,TMOD,2024/12/12,18,工作原理,-,實質(zhì)是,16,位加,1,計數(shù)器,定時器,模式時,對內(nèi)部,機器周期,計數(shù)。,定時時間,=,計數(shù)值,*,機器周期,計數(shù)器,模式時,是對,外部脈沖,計數(shù)。脈沖由,T0,(,P3.4,)或,T1,(,P3.5,),引腳輸入。,注意,:(,若,計數(shù)值,為,N,計數(shù)初值,為,X,),溢出信號使,TF0,或,TF1,置,1,,并,發(fā)出中斷請求,,,16,位時有:,X=65536-N,12MHz,晶振時,計數(shù)頻率低于,0.5MHz,2024/12/12,19,5.3.2,定時,/,計數(shù)器的控制,工作方式寄
12、存器,TMOD,7,6,5,4,3,2,1,0,TMOD,GATE,C/T,M1,M0,GATE,C/T,M1,M0,字節(jié)地址:,89H,GATE,:,門控位,。,GATE,0,時,只要,TRx,為,1,,就可啟動計數(shù)器工作;,GATA,1,時,定時器的啟動還要加上,INTx,引腳為高電平這一條件。,C/T,:,模式選擇位,。清,0,為定時模式,置,1,為計數(shù)方式。,M1M0,:,工作方式設(shè)置位,??稍O(shè)置四種工作方式,(,見下頁,)。,2024/12/12,20,M1M0,工作方式,說 明,00,方式,0,13,位定時,/,計數(shù)器,01,方式,1,16,位定時,/,計數(shù)器,10,方式,2,8,
13、位自動重裝定時,/,計數(shù)器,11,方式,3,T0,分成兩個獨立的,8,位定時,/,計數(shù)器;,T1,此方式停止計數(shù),注意:,TMOD,不能進行位尋址,2024/12/12,21,控制寄存器,TCON,7,6,5,4,3,2,1,0,TCON,TF1,TR1,TF0,TR0,字節(jié)地址:,88H,TFx,:,Tx,溢出標(biāo)志位。,響應(yīng)中斷后,TFx,有硬件自動清,0,。用軟件設(shè)置,TFx,可產(chǎn)生同硬件置,1,或清,0,同樣的效果。,TRx,:,Tx,運行控制位。,置,1,時開始工作;清,0,時停止工作。,TRx,要由軟件置,1,或清,0,(,即啟動與停止要由軟件控制,)。,2024/12/12,22,
14、5.3.3,定時,/,計數(shù)器的工作方式,T0,有方式,0,、,1,、,2,、,3,;,T1,有方式,0,、,1,、,2,。以,T0,為例說明。,方式,0,:,13,位方式,2024/12/12,23,C/T=1,時,則為計數(shù)模式,有:,X=2,13,-N=8192-N,C/T=0,時,則為定時模式,有:,X=2,13,-N=8192-N,,,N=,t,/Tcy,【,例,5-3】,若計數(shù)個數(shù),N,為,2,,求計數(shù)初值。,公式法計算:,X,8192,2=8190=1FFEH,求補法計算:對,0 0000 0000 0010B,取反加,1,為:,1 1111 1111 1110B(,1FFEH,),
15、初值計算:,公式法,求補法,:,X=,對,N,求補,2024/12/12,24,門控位作用,當(dāng),GATE=0,時,僅由,TR0,控制與門的開啟。與門輸出,1,時,控制開關(guān)接通,計數(shù)開始;,當(dāng),GATE=1,時,與門的開啟由,INT0,和,TR0,共同控制。這種方式可以用來測量,INT0,引腳上正脈沖的寬度。,注意,:方式,0,的計數(shù)初值高,8,位和低,5,位確定麻煩,,實際應(yīng)用中常由,16,位的方式,1,取代。,2024/12/12,25,方式,1,:,16,位方式,X=2,16,-N,=,65536-N,計數(shù)范圍:,1,65536,計數(shù)初值要,分成,2,個字節(jié),分別送入,TH0,、,TL0,
16、2024/12/12,26,【,例,5-4】,若要求定時器,T0,工作于方式,1,,定時時間為,1ms,,當(dāng)晶振為,6 MHz,時,求送入,TH0,和,TL0,的計數(shù)初值各為多少?應(yīng)怎樣送入,TH0,和,TL0,?,由于晶振為,6 MHz,,所以機器周期,Tcy,為,2,S,,因此:,N=t/Tcy,=110,-3,/210,-6,500,X,2,16,-N,65536-500,65036,FE0CH,也可以利用以下,2,條語句完成:,TH0=,(65536-500),/,256;,商,為計數(shù)初值的,高字節(jié),TL0=,(65536-500),%,256;,余數(shù),為計數(shù)初值的,低字節(jié),分別將,FEH,送入,TH0,中,,0CH,送入,TL0,中即可。,2024/12/12,27,方式,2,:,8,位自動重裝方式,X=2,8,-N=256-N,計數(shù)范圍:,1,256,特別適合與脈沖信號發(fā)生器,2024/12/12,28,方式,3,:,(僅,T0,有此方式,,T1,的方式,3,將停止計數(shù)),TL0,進行,8,位定時,/,計數(shù),TH0,進行,8,位定時(,T1,方式,2,時,可出借,TR1,、