C的中斷系統(tǒng)及定時計數(shù)器_第1頁
C的中斷系統(tǒng)及定時計數(shù)器_第2頁
C的中斷系統(tǒng)及定時計數(shù)器_第3頁
C的中斷系統(tǒng)及定時計數(shù)器_第4頁
C的中斷系統(tǒng)及定時計數(shù)器_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1第第5 5章章 80C5180C51的中斷系統(tǒng)及定時的中斷系統(tǒng)及定時/ /計數(shù)器計數(shù)器 5.1 80C51的中斷系統(tǒng)的中斷系統(tǒng)5.2 80C51的中斷處理過程的中斷處理過程5.3 80C51的定時的定時/計數(shù)器計數(shù)器25.1 80C51的中斷系統(tǒng)的中斷系統(tǒng) 5.1.1 80C515.1.1 80C51的中斷系統(tǒng)結(jié)構(gòu)的中斷系統(tǒng)結(jié)構(gòu) 一、中斷的概念一、中斷的概念 計算機(jī)具有實(shí)時處理能力,能對外界發(fā)生的事件進(jìn)計算機(jī)具有實(shí)時處理能力,能對外界發(fā)生的事件進(jìn)行及時處理行及時處理, ,這是依靠它們的中斷系統(tǒng)來實(shí)現(xiàn)的。這是依靠它們的中斷系統(tǒng)來實(shí)現(xiàn)的。 CPUCPU在處理某一事件在處理某一事件A A時,發(fā)生了

2、另一事件時,發(fā)生了另一事件B B請求請求CPUCPU迅速去處理(迅速去處理(中斷發(fā)生中斷發(fā)生););CPUCPU暫時中斷當(dāng)前的工作,暫時中斷當(dāng)前的工作,轉(zhuǎn)去處理事件轉(zhuǎn)去處理事件B B(中斷響應(yīng)和中斷服務(wù)中斷響應(yīng)和中斷服務(wù));待);待CPUCPU將事將事件件B B處理完畢后,再回到原來事件處理完畢后,再回到原來事件A A被中斷的地方繼續(xù)被中斷的地方繼續(xù)處理事件處理事件A A(中斷返回中斷返回),這一過程稱為),這一過程稱為中斷中斷 。3引起引起CPU中斷的根源,稱為中斷源。中斷源向中斷的根源,稱為中斷源。中斷源向CPU提提出的中斷請求。出的中斷請求。CPU暫時中斷原來的事務(wù)暫時中斷原來的事務(wù)A,

3、轉(zhuǎn)去處理事,轉(zhuǎn)去處理事件件B。對事件。對事件B處理完畢后,再回到原來被中斷的地方(即處理完畢后,再回到原來被中斷的地方(即斷點(diǎn)),稱為中斷返回。實(shí)現(xiàn)上述中斷功能的部件稱為中斷點(diǎn)),稱為中斷返回。實(shí)現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)(中斷機(jī)構(gòu))。斷系統(tǒng)(中斷機(jī)構(gòu))。4 隨著計算機(jī)技術(shù)的應(yīng)用,人們發(fā)現(xiàn)中斷技隨著計算機(jī)技術(shù)的應(yīng)用,人們發(fā)現(xiàn)中斷技術(shù)不僅解決了快速主機(jī)與慢速術(shù)不僅解決了快速主機(jī)與慢速I/O設(shè)備的數(shù)據(jù)設(shè)備的數(shù)據(jù)傳送問題,而且還具有如下優(yōu)點(diǎn):傳送問題,而且還具有如下優(yōu)點(diǎn):n分時操作分時操作。CPU可以分時為多個可以分時為多個I/O設(shè)備服設(shè)備服務(wù),提高了計算機(jī)的利用率;務(wù),提高了計算機(jī)的利用率;

4、n實(shí)時響應(yīng)實(shí)時響應(yīng)。CPU能夠及時處理應(yīng)用系統(tǒng)的能夠及時處理應(yīng)用系統(tǒng)的隨機(jī)事件,系統(tǒng)的實(shí)時性大大增強(qiáng);隨機(jī)事件,系統(tǒng)的實(shí)時性大大增強(qiáng);n可靠性高可靠性高。CPU具有處理設(shè)備故障及掉電具有處理設(shè)備故障及掉電等突發(fā)性事件的能力,從而使系統(tǒng)可靠性提等突發(fā)性事件的能力,從而使系統(tǒng)可靠性提高。高。5二、二、80C51中斷系統(tǒng)的結(jié)構(gòu)中斷系統(tǒng)的結(jié)構(gòu) 80C51的中斷系統(tǒng)有的中斷系統(tǒng)有5個中斷源,個中斷源,2個優(yōu)先個優(yōu)先級,可實(shí)現(xiàn)二級中斷嵌套級,可實(shí)現(xiàn)二級中斷嵌套 。65.1.2 80C515.1.2 80C51的中斷源的中斷源 一、中斷源一、中斷源1、 (P3.2)??捎桑???捎蒊T0(TCON.0)選擇其

5、為低電平有效選擇其為低電平有效還是下降沿有效。當(dāng)還是下降沿有效。當(dāng)CPU檢測到檢測到P3.2引腳上出現(xiàn)有效的中引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志斷信號時,中斷標(biāo)志IE0(TCON.1)置置1,向,向CPU申請中斷。申請中斷。2、 (P3.3)??捎桑?。可由IT1(TCON.2)選擇其為低電平有效選擇其為低電平有效還是下降沿有效。當(dāng)還是下降沿有效。當(dāng)CPU檢測到檢測到P3.3引腳上出現(xiàn)有效的中引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志斷信號時,中斷標(biāo)志IE1(TCON.3)置置1,向向CPU申請中斷。申請中斷。3、TF0(TCON.5),片內(nèi)定時),片內(nèi)定時/計數(shù)器計數(shù)器T0溢出中斷請求標(biāo)溢出中斷請

6、求標(biāo)志。當(dāng)定時志。當(dāng)定時/計數(shù)器計數(shù)器T0發(fā)生溢出時,置位發(fā)生溢出時,置位TF0,并向,并向CPU申申請中斷。請中斷。4、TF1(TCON.7),片內(nèi)定時),片內(nèi)定時/計數(shù)器計數(shù)器T1溢出中斷請求標(biāo)溢出中斷請求標(biāo)志。當(dāng)定時志。當(dāng)定時/計數(shù)器計數(shù)器T1發(fā)生溢出時,置位發(fā)生溢出時,置位TF1,并向,并向CPU申申請中斷。請中斷。5、RI(SCON.0)或)或TI(SCON.1),串行口中斷請求標(biāo)志。),串行口中斷請求標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時置位當(dāng)串行口接收完一幀串行數(shù)據(jù)時置位RI或當(dāng)串行口發(fā)送完或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時置位一幀串行數(shù)據(jù)時置位TI,向,向CPU申請中斷。申請中斷。 I

7、NT0INT17二、中斷請求標(biāo)志二、中斷請求標(biāo)志1、TCON的中斷標(biāo)志的中斷標(biāo)志IT0(TCON.0),外部中斷),外部中斷0觸發(fā)方式控制位。觸發(fā)方式控制位。當(dāng)當(dāng)IT0=0時,為電平觸發(fā)方式。時,為電平觸發(fā)方式。當(dāng)當(dāng)IT0=1時,為邊沿觸發(fā)方式(下降沿有效)。時,為邊沿觸發(fā)方式(下降沿有效)。IE0(TCON.1),外部中斷),外部中斷0中斷請求標(biāo)志位。中斷請求標(biāo)志位。IT1(TCON.2),外部中斷),外部中斷1觸發(fā)方式控制位。觸發(fā)方式控制位。IE1(TCON.3),外部中斷),外部中斷1中斷請求標(biāo)志位。中斷請求標(biāo)志位。TF0(TCON.5),定時),定時/計數(shù)器計數(shù)器T0溢出中斷請求標(biāo)志位

8、。溢出中斷請求標(biāo)志位。TF1(TCON.7),定時),定時/計數(shù)器計數(shù)器T1溢出中斷請求標(biāo)志位。溢出中斷請求標(biāo)志位。 82、SCON的中斷標(biāo)志的中斷標(biāo)志nRI(SCON.0),串行口接收中斷標(biāo)志位。當(dāng)允),串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時,每接收完一個串行幀,由許串行口接收數(shù)據(jù)時,每接收完一個串行幀,由硬件置位硬件置位RI。同樣,。同樣,RI必須由軟件清除。必須由軟件清除。nTI(SCON.1),串行口發(fā)送中斷標(biāo)志位。當(dāng)),串行口發(fā)送中斷標(biāo)志位。當(dāng)CPU將一個發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時,將一個發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時,就啟動了發(fā)送過程。每發(fā)送完一個串行幀,由硬就啟動了發(fā)送

9、過程。每發(fā)送完一個串行幀,由硬件置位件置位TI。CPU響應(yīng)中斷時,不能自動清除響應(yīng)中斷時,不能自動清除TI,TI必須由軟件清除。必須由軟件清除。 9一、中斷允許控制一、中斷允許控制 CPU對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器由中斷允許寄存器IE控制的。控制的。5.1.3 80C515.1.3 80C51中斷的控制中斷的控制 nEX0(IE.0),外部中斷,外部中斷0允許位;允許位;nET0(IE.1),定時,定時/計數(shù)器計數(shù)器T0中斷允許位;中斷允許位; nEX1(IE.2),外部中斷,外部中斷0允許位;允許位;nET1(

10、IE.3),定時,定時/計數(shù)器計數(shù)器T1中斷允許位;中斷允許位;nES(IE.4),串行口中斷允許位;,串行口中斷允許位;nEA (IE.7), CPU中斷允許(總允許)位。中斷允許(總允許)位。10二、中斷優(yōu)先級控制二、中斷優(yōu)先級控制 80C51單片機(jī)有兩個中斷優(yōu)先級,即可實(shí)現(xiàn)二級中斷服務(wù)單片機(jī)有兩個中斷優(yōu)先級,即可實(shí)現(xiàn)二級中斷服務(wù)嵌套。每個中斷源的中斷優(yōu)先級都是由中斷優(yōu)先級寄存器嵌套。每個中斷源的中斷優(yōu)先級都是由中斷優(yōu)先級寄存器IP中中的相應(yīng)位的狀態(tài)來規(guī)定的的相應(yīng)位的狀態(tài)來規(guī)定的 。nPX0(IP.0),外部中斷),外部中斷0優(yōu)先級設(shè)定位;優(yōu)先級設(shè)定位;nPT0(IP.1),定時),定時/

11、計數(shù)器計數(shù)器T0優(yōu)先級設(shè)定位;優(yōu)先級設(shè)定位;nPX1(IP.2),外部中斷),外部中斷0優(yōu)先級設(shè)定位;優(yōu)先級設(shè)定位;nPT1(IP.3),定時),定時/計數(shù)器計數(shù)器T1優(yōu)先級設(shè)定位;優(yōu)先級設(shè)定位;nPS (IP.4),串行口優(yōu)先級設(shè)定位。),串行口優(yōu)先級設(shè)定位。11 同一優(yōu)先級中的中斷申請不止一個時,則有中同一優(yōu)先級中的中斷申請不止一個時,則有中斷優(yōu)先權(quán)排隊問題。同一優(yōu)先級的中斷優(yōu)先權(quán)排隊,斷優(yōu)先權(quán)排隊問題。同一優(yōu)先級的中斷優(yōu)先權(quán)排隊,由中斷系統(tǒng)硬件確定的自然優(yōu)先級形成,其排列如由中斷系統(tǒng)硬件確定的自然優(yōu)先級形成,其排列如所示:所示:1280C51單片機(jī)的中斷優(yōu)先級有三條原則:單片機(jī)的中斷優(yōu)先

12、級有三條原則:nCPU同時接收到幾個中斷時,首先響應(yīng)優(yōu)先級別最高同時接收到幾個中斷時,首先響應(yīng)優(yōu)先級別最高的中斷請求。的中斷請求。n正在進(jìn)行的中斷過程不能被新的同級或低優(yōu)先級的中正在進(jìn)行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷。斷請求所中斷。n正在進(jìn)行的低優(yōu)先級中斷服務(wù),能被高優(yōu)先級中斷請正在進(jìn)行的低優(yōu)先級中斷服務(wù),能被高優(yōu)先級中斷請求所中斷。求所中斷。 為了實(shí)現(xiàn)上述后兩條原則,為了實(shí)現(xiàn)上述后兩條原則,中斷系統(tǒng)內(nèi)部設(shè)有兩個中斷系統(tǒng)內(nèi)部設(shè)有兩個用戶不能尋址的優(yōu)先級狀態(tài)觸發(fā)器用戶不能尋址的優(yōu)先級狀態(tài)觸發(fā)器。其中一個置。其中一個置1,表,表示正在響應(yīng)高優(yōu)先級的中斷,它將阻斷后來所有的中示正

13、在響應(yīng)高優(yōu)先級的中斷,它將阻斷后來所有的中斷請求;另一個置斷請求;另一個置1,表示正在響應(yīng)低優(yōu)先級中斷,它,表示正在響應(yīng)低優(yōu)先級中斷,它將阻斷后來所有的低優(yōu)先級中斷請求。將阻斷后來所有的低優(yōu)先級中斷請求。135.2 80C51單片機(jī)中斷處理過程單片機(jī)中斷處理過程 一、中斷響應(yīng)條件一、中斷響應(yīng)條件CPU響應(yīng)中斷的條件是:響應(yīng)中斷的條件是:n 中斷源有中斷請求;中斷源有中斷請求;n 此中斷源的中斷允許位為此中斷源的中斷允許位為1;n CPU開中斷(即開中斷(即EA=1)。)。同時滿足時,同時滿足時,CPU才有可能響應(yīng)中斷才有可能響應(yīng)中斷。5.2.1 5.2.1 中斷響應(yīng)條件和時間中斷響應(yīng)條件和時間

14、 14 CPU執(zhí)行程序過程中,在每個機(jī)器周期執(zhí)行程序過程中,在每個機(jī)器周期的的S5P2期間,中斷系統(tǒng)對各個中斷源進(jìn)行期間,中斷系統(tǒng)對各個中斷源進(jìn)行采樣采樣。這些采樣值在下一個機(jī)器周期內(nèi)按。這些采樣值在下一個機(jī)器周期內(nèi)按優(yōu)先級和內(nèi)部順序被依次查詢。優(yōu)先級和內(nèi)部順序被依次查詢。 如果某個中斷標(biāo)志在上一個機(jī)器周期的如果某個中斷標(biāo)志在上一個機(jī)器周期的S5P2時被置成了時被置成了1,那么它將于現(xiàn)在的查,那么它將于現(xiàn)在的查詢周期中及時被發(fā)現(xiàn)。接著詢周期中及時被發(fā)現(xiàn)。接著CPU便執(zhí)行一便執(zhí)行一條由中斷系統(tǒng)提供的硬件條由中斷系統(tǒng)提供的硬件LCALL指令,轉(zhuǎn)指令,轉(zhuǎn)向被稱作中斷向量的特定地址單元,進(jìn)入向被稱作中

15、斷向量的特定地址單元,進(jìn)入相應(yīng)的中斷服務(wù)程序。相應(yīng)的中斷服務(wù)程序。 15遇以下任一條件,硬件將受阻,不產(chǎn)生遇以下任一條件,硬件將受阻,不產(chǎn)生LCALL指令:指令:nCPU正在處理同級或高正在處理同級或高優(yōu)先級中斷;優(yōu)先級中斷;n當(dāng)前查詢當(dāng)前查詢的機(jī)器周期的機(jī)器周期不是所執(zhí)行指令的最后一個機(jī)器不是所執(zhí)行指令的最后一個機(jī)器周期周期。即在完成所執(zhí)行指令前,不會響應(yīng)中斷,從而保。即在完成所執(zhí)行指令前,不會響應(yīng)中斷,從而保證指令在執(zhí)行過程中不被打斷;證指令在執(zhí)行過程中不被打斷;n正在執(zhí)行正在執(zhí)行的指令為的指令為RET、RETI或任何訪問或任何訪問IE或或IP寄存寄存器的指令。即只有在這些指令后面至少再執(zhí)

16、行一條指令器的指令。即只有在這些指令后面至少再執(zhí)行一條指令時才能接受中斷請求。時才能接受中斷請求。 若由于上述條件的阻礙中斷未能得到響應(yīng),當(dāng)條件若由于上述條件的阻礙中斷未能得到響應(yīng),當(dāng)條件消失時該中斷標(biāo)志卻已不再有效,那么該中斷將不被響消失時該中斷標(biāo)志卻已不再有效,那么該中斷將不被響應(yīng)。就是說,中斷標(biāo)志曾經(jīng)有效,但未獲響應(yīng),查詢過應(yīng)。就是說,中斷標(biāo)志曾經(jīng)有效,但未獲響應(yīng),查詢過程在下個機(jī)器周期將重新進(jìn)行程在下個機(jī)器周期將重新進(jìn)行。16二、中斷響應(yīng)時間二、中斷響應(yīng)時間某中斷的響應(yīng)時序如圖:某中斷的響應(yīng)時序如圖:n若若M1周期的周期的S5P2前某中斷生效,在前某中斷生效,在S5P2期間其中期間其中

17、斷請求被鎖存到相應(yīng)的標(biāo)志位中去;斷請求被鎖存到相應(yīng)的標(biāo)志位中去;M2恰逢指令的恰逢指令的最后一個機(jī)器周期,且該指令不是最后一個機(jī)器周期,且該指令不是RETI或訪問或訪問IE、IP的指令。于是,的指令。于是,M3和和M4便可以執(zhí)行硬件便可以執(zhí)行硬件LCALL指令,指令,M5周期將進(jìn)入了中斷服務(wù)程序。周期將進(jìn)入了中斷服務(wù)程序。n80C51的中斷響應(yīng)時間(從標(biāo)志置的中斷響應(yīng)時間(從標(biāo)志置1到進(jìn)入相應(yīng)的中到進(jìn)入相應(yīng)的中斷服務(wù)),至少要斷服務(wù)),至少要3個完整的機(jī)器周期。個完整的機(jī)器周期。 17n將相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器置將相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器置1(以阻斷(以阻斷后來的同級或低級的中斷請求)。后來的同

18、級或低級的中斷請求)。n執(zhí)行一條硬件執(zhí)行一條硬件LCALL指令,即把程序計指令,即把程序計數(shù)器數(shù)器PC的內(nèi)容壓入堆棧保存,再將相應(yīng)的的內(nèi)容壓入堆棧保存,再將相應(yīng)的中斷服務(wù)程序的入口地址送入中斷服務(wù)程序的入口地址送入PC。n執(zhí)行中斷服務(wù)程序。執(zhí)行中斷服務(wù)程序。 中斷響應(yīng)過程的前兩步是由中斷系統(tǒng)內(nèi)部中斷響應(yīng)過程的前兩步是由中斷系統(tǒng)內(nèi)部自動完成的,而中斷服務(wù)程序則要由用戶自動完成的,而中斷服務(wù)程序則要由用戶編寫程序來完成。編寫程序來完成。 5.2.2 5.2.2 中斷響應(yīng)過程中斷響應(yīng)過程 18 5.2.3 5.2.3 中斷返回中斷返回RETI指令的具體功能是:指令的具體功能是:n將中斷響應(yīng)時壓入堆棧

19、保存的斷點(diǎn)地址從棧將中斷響應(yīng)時壓入堆棧保存的斷點(diǎn)地址從棧頂彈出送回頂彈出送回PC,CPU從原來中斷的地方繼續(xù)從原來中斷的地方繼續(xù)執(zhí)行程序;執(zhí)行程序;n 將相應(yīng)中斷優(yōu)先級狀態(tài)觸發(fā)器清將相應(yīng)中斷優(yōu)先級狀態(tài)觸發(fā)器清0,通知中,通知中斷系統(tǒng),中斷服務(wù)程序已執(zhí)行完畢。斷系統(tǒng),中斷服務(wù)程序已執(zhí)行完畢。 注意,不能用注意,不能用RET指令代替指令代替RETI指令。在中指令。在中斷服務(wù)程序中斷服務(wù)程序中PUSH指令與指令與POP指令必須成對指令必須成對使用,否則不能正確返回斷點(diǎn)使用,否則不能正確返回斷點(diǎn) 。19 若外部中斷定義為電平觸發(fā)方式若外部中斷定義為電平觸發(fā)方式,中斷標(biāo)志位,中斷標(biāo)志位的狀態(tài)隨的狀態(tài)隨C

20、PU在每個機(jī)器周期采樣到的外部中斷在每個機(jī)器周期采樣到的外部中斷輸入引腳的電平變化而變化,這樣能提高輸入引腳的電平變化而變化,這樣能提高CPU對對外部中斷請求的響應(yīng)速度。但外部中斷源若有請求,外部中斷請求的響應(yīng)速度。但外部中斷源若有請求,必須把有效的必須把有效的低電平保持到請求獲得響應(yīng)時為止低電平保持到請求獲得響應(yīng)時為止,不然就會漏掉;不然就會漏掉;而在中斷服務(wù)程序結(jié)束之前,中斷而在中斷服務(wù)程序結(jié)束之前,中斷源又必須撤消其有效的低電平源又必須撤消其有效的低電平,否則中斷返回之后,否則中斷返回之后將再次產(chǎn)生中斷。將再次產(chǎn)生中斷。電平觸發(fā)方式適合于外部中斷輸入以低電平輸入且電平觸發(fā)方式適合于外部中

21、斷輸入以低電平輸入且中斷服務(wù)程序能清除外部中斷請求源的情況。例如,中斷服務(wù)程序能清除外部中斷請求源的情況。例如,并行接口芯片并行接口芯片8255的中斷請求線在接受讀或?qū)懖俚闹袛嗾埱缶€在接受讀或?qū)懖僮骱蠹幢粡?fù)位,因此,以其去請求電平觸發(fā)方式的作后即被復(fù)位,因此,以其去請求電平觸發(fā)方式的中斷比較方便。中斷比較方便。20 若外部中斷定義為邊沿觸發(fā)方式若外部中斷定義為邊沿觸發(fā)方式,在相繼連續(xù)的兩,在相繼連續(xù)的兩次采樣中,一個周期采樣到外部中斷輸入為高電平,次采樣中,一個周期采樣到外部中斷輸入為高電平,下一個周期采樣到為低電平,則在下一個周期采樣到為低電平,則在IE0或或IE1中將鎖存中將鎖存一個邏輯一

22、個邏輯1。即便是。即便是CPU暫時不能響應(yīng),中斷申請標(biāo)暫時不能響應(yīng),中斷申請標(biāo)志也不會丟失,直到志也不會丟失,直到CPU響應(yīng)此中斷時才清零。這響應(yīng)此中斷時才清零。這樣,為保證下降沿能被可靠地采樣到,樣,為保證下降沿能被可靠地采樣到,外中斷引腳上外中斷引腳上的高低電平(負(fù)脈沖的寬度)均至少要保持一個機(jī)器的高低電平(負(fù)脈沖的寬度)均至少要保持一個機(jī)器周期周期(若晶振為(若晶振為12MHz時,為時,為1微秒)。微秒)。 邊沿觸發(fā)方式適合于以負(fù)脈沖形式輸入的外部中斷邊沿觸發(fā)方式適合于以負(fù)脈沖形式輸入的外部中斷請求,如請求,如ADC0809的轉(zhuǎn)換結(jié)束標(biāo)志信號的轉(zhuǎn)換結(jié)束標(biāo)志信號EOC為正脈為正脈沖,經(jīng)反相

23、后就可以作為沖,經(jīng)反相后就可以作為80C51的中斷輸入。的中斷輸入。215.2.4 5.2.4 中斷程序舉例中斷程序舉例 22 ORG 0000HSTART:LJMP MAIN ;跳轉(zhuǎn)到主程序;跳轉(zhuǎn)到主程序 ORG 0003H LJMP INTO ;轉(zhuǎn)向中斷服務(wù)程序;轉(zhuǎn)向中斷服務(wù)程序 ORG 0030H ;主程序;主程序 MAIN:CLR IT0 ;設(shè)為電平觸發(fā)方式;設(shè)為電平觸發(fā)方式 SETB EA ;CPU開放中斷開放中斷 SETB EX0 ;允許中斷;允許中斷 MOV DPTR,#1000H ;設(shè)置數(shù)據(jù)區(qū)地址指針;設(shè)置數(shù)據(jù)區(qū)地址指針 ORG 0200H ;中斷服務(wù)程序;中斷服務(wù)程序 INT

24、0:PUSH PSW ;保護(hù)現(xiàn)場;保護(hù)現(xiàn)場 PUSH ACC CLR P3.0 ;由;由P3.0輸出輸出0 NOP NOP SETB P3.0 ;由;由P3.0輸出輸出1,撤除,撤除 MOV A,P1 ;輸入數(shù)據(jù);輸入數(shù)據(jù) MOVX DPTR,A ;存入數(shù)據(jù)存儲器;存入數(shù)據(jù)存儲器 INC DPTR ;修改數(shù)據(jù)指針,指向下一個單元;修改數(shù)據(jù)指針,指向下一個單元 POP ACC ;恢復(fù)現(xiàn)場;恢復(fù)現(xiàn)場 POP PSW RETI ;中斷返回;中斷返回23 例例 多外部中斷源的系統(tǒng)示例。多外部中斷源的系統(tǒng)示例。 設(shè)有設(shè)有5個外部中斷源,中斷優(yōu)先級排隊順序為:個外部中斷源,中斷優(yōu)先級排隊順序為:XI0、X

25、I1、XI2、XI3、XI4。試設(shè)計它們與。試設(shè)計它們與80C51單單片機(jī)的接口。片機(jī)的接口。24 ORG 0003H LJMP INSE0 ;轉(zhuǎn)外部中斷;轉(zhuǎn)外部中斷0服務(wù)程序入口服務(wù)程序入口 ORG 0013H LJMP INSE1 ;轉(zhuǎn)外部中斷;轉(zhuǎn)外部中斷1服務(wù)程序入口服務(wù)程序入口 INSE0: PUSH PSW ;XI0中斷服務(wù)程序中斷服務(wù)程序 PUSH ACC POP ACC POP PSW RETI 25INSE1:PUSH PSW ;中斷服務(wù)程序;中斷服務(wù)程序 PUSH ACC JB P1.0,DV1 ;P1.0為為1,轉(zhuǎn),轉(zhuǎn)XI1中斷服務(wù)程序中斷服務(wù)程序 JB P1.1,DV2

26、;P1.1為為1,轉(zhuǎn),轉(zhuǎn)XI2中斷服務(wù)程序中斷服務(wù)程序 JB P1.2,DV3 ;P1.2為為1,轉(zhuǎn),轉(zhuǎn)XI3中斷服務(wù)程序中斷服務(wù)程序 JB P1.3,DV4 ;P1.3為為1,轉(zhuǎn),轉(zhuǎn)XI4中斷服務(wù)程序中斷服務(wù)程序INRET:POP ACC POP PSW RETI DV1: ;XI1中斷服務(wù)程序中斷服務(wù)程序 AJMP INRET DV2: ;XI2中斷服務(wù)程序中斷服務(wù)程序 AJMP INRET DV3: ;XI3中斷服務(wù)程序中斷服務(wù)程序 AJMP INRET DV4: ;XI4中斷服務(wù)程序中斷服務(wù)程序 AJMP INRET265.3 80C51的定時的定時/計數(shù)器計數(shù)器 實(shí)現(xiàn)定時功能,實(shí)現(xiàn)定

27、時功能,比較方便的辦法是利用單片比較方便的辦法是利用單片機(jī)內(nèi)部的定時機(jī)內(nèi)部的定時/計數(shù)器計數(shù)器。也可以采用下面三種。也可以采用下面三種方法:方法:n軟件定時軟件定時:軟件定時不占用硬件資源,但占用了:軟件定時不占用硬件資源,但占用了CPU時間,降低了時間,降低了CPU的利用率。的利用率。n采用時基電路定時采用時基電路定時:例如采用:例如采用555電路,外接必要電路,外接必要的元器件(電阻和電容),即可構(gòu)成硬件定時電路。的元器件(電阻和電容),即可構(gòu)成硬件定時電路。但在硬件連接好以后,定時值與定時范圍不能由軟但在硬件連接好以后,定時值與定時范圍不能由軟件進(jìn)行控制和修改,即不可編程。件進(jìn)行控制和修

28、改,即不可編程。n采用可編程芯片定時采用可編程芯片定時:這種定時芯片的定時值及:這種定時芯片的定時值及定時范圍很容易用軟件來確定和修改,此種芯片定定時范圍很容易用軟件來確定和修改,此種芯片定時功能強(qiáng),使用靈活。在單片機(jī)的定時時功能強(qiáng),使用靈活。在單片機(jī)的定時/計數(shù)器不夠計數(shù)器不夠用時,可以考慮進(jìn)行擴(kuò)展。用時,可以考慮進(jìn)行擴(kuò)展。275.3.1 5.3.1 定時定時/ /計數(shù)器的結(jié)構(gòu)和工作原理計數(shù)器的結(jié)構(gòu)和工作原理 一、定時一、定時/計數(shù)器的結(jié)構(gòu)計數(shù)器的結(jié)構(gòu) 定時定時/計數(shù)器的實(shí)質(zhì)是加計數(shù)器的實(shí)質(zhì)是加1計數(shù)器(計數(shù)器(16位),由高位),由高8位和低位和低8位兩個寄存器組成。位兩個寄存器組成。TM

29、OD是定時是定時/計數(shù)器的工作方式寄存計數(shù)器的工作方式寄存器,確定工作方式和功能;器,確定工作方式和功能;TCON是控制寄存器,控制是控制寄存器,控制T0、T1的啟動和停止及設(shè)置溢出標(biāo)志的啟動和停止及設(shè)置溢出標(biāo)志。 28二、定時二、定時/計數(shù)器的工作原理計數(shù)器的工作原理 加加1計數(shù)器輸入的計數(shù)脈沖有兩個來源計數(shù)器輸入的計數(shù)脈沖有兩個來源,一個是由一個是由系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)12分頻后送來;一個分頻后送來;一個是是T0或或T1引腳輸入的外部脈沖源。每來一個脈沖引腳輸入的外部脈沖源。每來一個脈沖計數(shù)器加計數(shù)器加1,當(dāng)加到計數(shù)器為全,當(dāng)加到計數(shù)器為全1時,再輸入一個脈

30、時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的溢出使沖就使計數(shù)器回零,且計數(shù)器的溢出使TCON中中TF0或或TF1置置1,向,向CPU發(fā)出中斷請求(定時發(fā)出中斷請求(定時/計數(shù)計數(shù)器中斷允許時)。如果定時器中斷允許時)。如果定時/計數(shù)器工作于定時模計數(shù)器工作于定時模式,則表示定時時間已到;如果工作于計數(shù)模式,式,則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。則表示計數(shù)值已滿。 可見,由溢出時計數(shù)器的值減去計數(shù)初值才是加可見,由溢出時計數(shù)器的值減去計數(shù)初值才是加1計數(shù)器的計數(shù)值計數(shù)器的計數(shù)值。 29n設(shè)置為定時器模式時設(shè)置為定時器模式時,加,加1計數(shù)器是對內(nèi)部機(jī)器周期計數(shù)器是對內(nèi)部機(jī)器

31、周期計數(shù)(計數(shù)(1個機(jī)器周期等于個機(jī)器周期等于12個振蕩周期,即計數(shù)頻率個振蕩周期,即計數(shù)頻率為晶振頻率的為晶振頻率的1/12)。)。計數(shù)值計數(shù)值N乘以機(jī)器周期乘以機(jī)器周期Tcy就就是定時時間是定時時間t 。n設(shè)置為設(shè)置為計數(shù)器模式時計數(shù)器模式時,外部事件計數(shù)脈沖由,外部事件計數(shù)脈沖由T0或或T1引腳輸入到計數(shù)器。在每個機(jī)器周期的引腳輸入到計數(shù)器。在每個機(jī)器周期的S5P2期間采期間采樣樣T0、T1引腳電平。當(dāng)某周期采樣到一高電平輸入,引腳電平。當(dāng)某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加而下一周期又采樣到一低電平時,則計數(shù)器加1,更,更新的計數(shù)值在下一個機(jī)器周期的新的計

32、數(shù)值在下一個機(jī)器周期的S3P1期間裝入計數(shù)期間裝入計數(shù)器。由于檢測一個從器。由于檢測一個從1到到0的下降沿需要的下降沿需要2個機(jī)器周期,個機(jī)器周期,因此要求被采樣的電平至少要維持一個機(jī)器周期。當(dāng)因此要求被采樣的電平至少要維持一個機(jī)器周期。當(dāng)晶振頻率為晶振頻率為12MHz時時,最高計數(shù)頻率不超過,最高計數(shù)頻率不超過1/2MHz,即計數(shù)脈沖的周期要大于即計數(shù)脈沖的周期要大于2 微秒微秒。 30 5.3.2 定時定時/計數(shù)器的控制計數(shù)器的控制 80C51單片機(jī)定時單片機(jī)定時/計數(shù)器的工作由兩個特殊功計數(shù)器的工作由兩個特殊功能寄存器控制。能寄存器控制。TMOD用于設(shè)置其工作方式;用于設(shè)置其工作方式;T

33、CON用于控制其啟動和中斷申請。用于控制其啟動和中斷申請。一、工作方式寄存器一、工作方式寄存器TMOD 工作方式寄存器工作方式寄存器TMOD用于設(shè)置定時用于設(shè)置定時/計數(shù)器的計數(shù)器的工作方式,低四位用于工作方式,低四位用于T0,高四位用于,高四位用于T1。其格式。其格式如下:如下:31GATE:門控位。:門控位。GATE0時,只要用軟件使時,只要用軟件使TCON中的中的TR0或或TR1為為1,就可以啟動定時,就可以啟動定時/計數(shù)器工作;計數(shù)器工作;GATA1時,時,要用軟件使要用軟件使TR0或或TR1為為1,同時外部中斷引腳或也為高電,同時外部中斷引腳或也為高電平時,才能啟動定時平時,才能啟動

34、定時/計數(shù)器工作。即此時定時器的啟動條計數(shù)器工作。即此時定時器的啟動條件,加上了或引腳為高電平這一條件。件,加上了或引腳為高電平這一條件。 :定時定時/計數(shù)模式選擇位。計數(shù)模式選擇位。 0為定時模式;為定時模式; =1為計數(shù)模式。為計數(shù)模式。M1M0:工作方式設(shè)置位。定時:工作方式設(shè)置位。定時/計數(shù)器有四種工作方式,計數(shù)器有四種工作方式,由由M1M0進(jìn)行設(shè)置。進(jìn)行設(shè)置。C /TC /TC/T32 二、控制寄存器二、控制寄存器TCON TCON的低的低4位用于控制外部中斷位用于控制外部中斷,已在前面介紹。已在前面介紹。TCON的高的高4位用于位用于控制定時控制定時/計數(shù)器的啟動和中斷申請。其格式

35、如下:計數(shù)器的啟動和中斷申請。其格式如下:nTF1(TCON.7):):T1溢出中斷請求標(biāo)志位。溢出中斷請求標(biāo)志位。T1計數(shù)溢出時由硬件自計數(shù)溢出時由硬件自動置動置TF1為為1。CPU響應(yīng)中斷后響應(yīng)中斷后TF1由硬件自動清由硬件自動清0。T1工作時,工作時,CPU可隨時查詢可隨時查詢TF1的狀態(tài)。所以,的狀態(tài)。所以,TF1可用作查詢測試的標(biāo)志。可用作查詢測試的標(biāo)志。TF1也可也可以用軟件置以用軟件置1或清或清0,同硬件置,同硬件置1或清或清0的效果一樣。的效果一樣。nTR1(TCON.6):):T1運(yùn)行控制位。運(yùn)行控制位。TR1置置1時,時,T1開始工作;開始工作;TR1置置0時,時,T1停止

36、工作。停止工作。TR1由軟件置由軟件置1或清或清0。所以,用軟件可控制定時。所以,用軟件可控制定時/計數(shù)器的啟動與停止。計數(shù)器的啟動與停止。nTF0(TCON.5):):T0溢出中斷請求標(biāo)志位,其功能與溢出中斷請求標(biāo)志位,其功能與TF1類同。類同。nTR0(TCON.4):):T0運(yùn)行控制位,其功能與運(yùn)行控制位,其功能與TR1類同。類同。33 5.3.3 定時定時/計數(shù)器的工作方式計數(shù)器的工作方式 一、方式一、方式0 方式方式0為為13位計數(shù)位計數(shù),由,由TL0的低的低5位(高位(高3位未用)和位未用)和TH0的的8位組成。位組成。TL0的低的低5位溢出時向位溢出時向TH0進(jìn)位,進(jìn)位,TH0溢

37、出時,溢出時,置位置位TCON中的中的TF0標(biāo)志,向標(biāo)志,向CPU發(fā)出中斷請求。發(fā)出中斷請求。34 定時器模式時定時器模式時有有:Nt/ Tcy 計數(shù)初值計算的公式為:計數(shù)初值計算的公式為:定時器的初值還可以采用計數(shù)個數(shù)直接取補(bǔ)法獲得定時器的初值還可以采用計數(shù)個數(shù)直接取補(bǔ)法獲得。計數(shù)模式時,計數(shù)脈沖是計數(shù)模式時,計數(shù)脈沖是T0引腳上的外部脈沖。引腳上的外部脈沖。 門控位門控位GATE具有特殊的作用。當(dāng)具有特殊的作用。當(dāng)GATE=0時,經(jīng)反相后使時,經(jīng)反相后使或門輸出為或門輸出為1,此時僅由,此時僅由TR0控制與門的開啟,與門輸出控制與門的開啟,與門輸出1時,控制開關(guān)接通,計數(shù)開始;時,控制開關(guān)

38、接通,計數(shù)開始;當(dāng)當(dāng)GATE=1時時,由外中斷引,由外中斷引腳信號控制或門的輸出,此時控制腳信號控制或門的輸出,此時控制與門的開啟由外中斷引與門的開啟由外中斷引腳信號和腳信號和TR0共同控制共同控制。當(dāng)。當(dāng)TR0=1時,外中斷引腳信號引腳時,外中斷引腳信號引腳的的高電平啟動計數(shù)高電平啟動計數(shù),外中斷引腳信號引腳的,外中斷引腳信號引腳的低電平停止計低電平停止計數(shù)數(shù)。這種方式常用來測量外中斷引腳上正脈沖的寬度。這種方式常用來測量外中斷引腳上正脈沖的寬度。 13X=2 -N35 16X=2 -N二、方式二、方式1 方式方式1的計數(shù)位數(shù)是的計數(shù)位數(shù)是16位,由位,由TL0作為低作為低8位、位、TH0作

39、為高作為高8位,組成了位,組成了16位加位加1計數(shù)器計數(shù)器 。計數(shù)個數(shù)與計數(shù)初值的關(guān)系為:計數(shù)個數(shù)與計數(shù)初值的關(guān)系為: 36 8X=2 -N三、方式三、方式2 方式方式2為自動重裝初值的為自動重裝初值的8位計數(shù)方式。位計數(shù)方式。 工作方式2特別適合于用作較精確的脈沖信號發(fā)生器。 計數(shù)個數(shù)與計數(shù)初值的關(guān)系為計數(shù)個數(shù)與計數(shù)初值的關(guān)系為: 37 四、方式四、方式3 方式方式3只適用于定時只適用于定時/計數(shù)器計數(shù)器T0,定時器定時器T1處于方式處于方式3時相當(dāng)時相當(dāng)于于TR1=0,停止計數(shù)。,停止計數(shù)。 工作方式工作方式3將將T0分成為兩個獨(dú)立的分成為兩個獨(dú)立的8位計數(shù)器位計數(shù)器TL0和和TH0 。

40、38 5.3.4 定時定時/計數(shù)器用于外部中斷擴(kuò)展計數(shù)器用于外部中斷擴(kuò)展 擴(kuò)展方法是,將定時擴(kuò)展方法是,將定時/計數(shù)器設(shè)置為計數(shù)器方式,計數(shù)初值計數(shù)器設(shè)置為計數(shù)器方式,計數(shù)初值設(shè)定為滿程,將待擴(kuò)展的外部中斷源接到定時設(shè)定為滿程,將待擴(kuò)展的外部中斷源接到定時/計數(shù)器的外部計數(shù)器的外部計數(shù)引腳。從該引腳輸入一個下降沿信號,計數(shù)器加計數(shù)引腳。從該引腳輸入一個下降沿信號,計數(shù)器加1后便產(chǎn)后便產(chǎn)生定時生定時/計數(shù)器溢出中斷。計數(shù)器溢出中斷。例如,利用例如,利用T0擴(kuò)展一個外部中斷源。將擴(kuò)展一個外部中斷源。將T0設(shè)置為計數(shù)器方式,設(shè)置為計數(shù)器方式,按方式按方式2工作,工作,TH0、TL0的初值均為的初值均

41、為0FFH,T0允許中斷,允許中斷,CPU開放中斷。開放中斷。其初始化程序如下:其初始化程序如下: MOV TMOD,#06H ;置;置T0為計數(shù)器方式為計數(shù)器方式2 MOV TL0,#0FFH ;置計數(shù)初值;置計數(shù)初值 MOV TH0,#0FFH SETB TR0 ;啟動;啟動T0工作工作 SETB EA ;CPU開中斷開中斷 SETB ET0 ;允許;允許T0中斷中斷 39 5.3.5 定時定時/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 初始化程序應(yīng)完成如下工作:初始化程序應(yīng)完成如下工作:n對對TMOD賦值,以確定賦值,以確定T0和和T1的工作方式。的工作方式。n計算初值計算初值,并將其寫入并將其寫入

42、TH0、TL0或或TH1、TL1。n中斷方式時,則對中斷方式時,則對IE賦值,開放中斷。賦值,開放中斷。n使使TR0或或TR1置位,啟動定時置位,啟動定時/計數(shù)器定時或計數(shù)。計數(shù)器定時或計數(shù)。40 例例 利用定時利用定時/計數(shù)器計數(shù)器T0的方式的方式1,產(chǎn)生,產(chǎn)生10ms的定時,的定時,并使并使P1.0引腳上輸出周期為引腳上輸出周期為20ms的方波,采用中的方波,采用中斷方式,設(shè)系統(tǒng)時鐘頻率為斷方式,設(shè)系統(tǒng)時鐘頻率為12 MHz。解:解:1、計算計數(shù)初值、計算計數(shù)初值X:由于晶振為由于晶振為12 MHz,所以機(jī)器周期,所以機(jī)器周期Tcy為為1S。所以:所以:Nt/ Tcy 10103/110610000X655361000055536D8F0H即應(yīng)將即應(yīng)將D8H送入送入TH0中,中,F(xiàn)0H送入送入TL0中中 2、求、求T0的方式控制字的方式控制字TMOD: M1M0=01,GATE=0,C/T=0,可取方式控制,可取方式控制字為字為01H;41 ORG 0000H LJMP MAIN ;跳轉(zhuǎn)到主程序 ORG 000BH ;T0的中斷入口地址 LJMP DVT0 ;轉(zhuǎn)向中斷服務(wù)程序 ORG 0100H MAIN:MOV

溫馨提示

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

評論

0/150

提交評論