微處理器C51_6定時器和中斷應(yīng)用_第1頁
微處理器C51_6定時器和中斷應(yīng)用_第2頁
微處理器C51_6定時器和中斷應(yīng)用_第3頁
微處理器C51_6定時器和中斷應(yīng)用_第4頁
微處理器C51_6定時器和中斷應(yīng)用_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、中斷與定時器中斷與定時器 中斷概念中斷概念 MCS-51中斷系統(tǒng)中斷系統(tǒng) MCS-51定時器應(yīng)用定時器應(yīng)用 中斷概念中斷概念中斷的概念中斷的概念 CPUCPU在處理某在處理某一事件一事件A A時,發(fā)生時,發(fā)生了另一事件了另一事件B B請求請求CPUCPU迅速去處理迅速去處理(中斷發(fā)生中斷發(fā)生);); CPUCPU暫時中斷暫時中斷當(dāng)前的工作,轉(zhuǎn)當(dāng)前的工作,轉(zhuǎn)去處理事件去處理事件B B(中中斷響應(yīng)和中斷服斷響應(yīng)和中斷服務(wù)務(wù));); 待待CPUCPU將事件將事件B B處理完畢后,再處理完畢后,再回到原來事件回到原來事件A A被被中斷的地方繼續(xù)中斷的地方繼續(xù)處理事件處理事件A A(中斷中斷返回返回),

2、這一過),這一過程稱為程稱為中斷中斷 。執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點中斷請求中斷響應(yīng)執(zhí)行中斷處理程序中斷返回引起引起CPU中斷的根源,稱為中斷的根源,稱為中斷源中斷源。中斷源向。中斷源向CPU提出提出的中斷請求。的中斷請求。CPU暫時中斷原來的事務(wù)暫時中斷原來的事務(wù)A,轉(zhuǎn)去處理事件,轉(zhuǎn)去處理事件B。對事件對事件B處理完畢后,再回到原來被中斷的地方(即處理完畢后,再回到原來被中斷的地方(即斷點斷點),),稱為中斷返回。實現(xiàn)上述中斷功能的部件稱為稱為中斷返回。實現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)中斷系統(tǒng)(中(中斷機(jī)構(gòu))。斷機(jī)構(gòu))。 隨著計算機(jī)技術(shù)的應(yīng)用,人們發(fā)現(xiàn)中斷技術(shù)不僅解決了快速主機(jī)與慢隨

3、著計算機(jī)技術(shù)的應(yīng)用,人們發(fā)現(xiàn)中斷技術(shù)不僅解決了快速主機(jī)與慢速速I/O設(shè)備的數(shù)據(jù)傳送問題,而且還具有如下優(yōu)點:設(shè)備的數(shù)據(jù)傳送問題,而且還具有如下優(yōu)點: 分時操作分時操作。CPU可以分時為多個可以分時為多個I/O設(shè)備服務(wù),提高了計算機(jī)的利用設(shè)備服務(wù),提高了計算機(jī)的利用率;率;實時響應(yīng)實時響應(yīng)。CPU能夠及時處理應(yīng)用系統(tǒng)的隨機(jī)事件,系統(tǒng)的實時性大能夠及時處理應(yīng)用系統(tǒng)的隨機(jī)事件,系統(tǒng)的實時性大大增強;大增強;可靠性高可靠性高。CPU具有處理設(shè)備故障及掉電等突發(fā)性事件能力,從而使具有處理設(shè)備故障及掉電等突發(fā)性事件能力,從而使系統(tǒng)可靠性提高。系統(tǒng)可靠性提高。1、8051中斷系統(tǒng)的結(jié)構(gòu)中斷系統(tǒng)的結(jié)構(gòu) 805

4、1的中斷系統(tǒng)有的中斷系統(tǒng)有5個中斷源個中斷源(8052有有 6個,還有第三個定時個,還有第三個定時/計數(shù)計數(shù)器中斷)器中斷) ,2個優(yōu)先級,可實現(xiàn)二級中斷嵌套個優(yōu)先級,可實現(xiàn)二級中斷嵌套 。 MCS-51中斷系統(tǒng)中斷系統(tǒng)l 外部中斷外部中斷0 0 (P3.2P3.2)可由)可由IT0(TCON.0)IT0(TCON.0)選擇其為低電平有效還是下降沿有效。選擇其為低電平有效還是下降沿有效。當(dāng)當(dāng)CPUCPU檢測到檢測到P3.2P3.2引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志IE0(TCON.1)IE0(TCON.1)置置1 1,向,向CPUCPU申請中斷。申請中斷。

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

6、置位發(fā)生溢出時,置位TF0TF0,并向,并向CPUCPU申請中斷。申請中斷。l 定時器定時器/ /計數(shù)器計數(shù)器1 1中斷中斷TF1TF1(TCON.7TCON.7),片內(nèi)定時),片內(nèi)定時/ /計數(shù)器計數(shù)器T1T1溢出中斷請求標(biāo)志。當(dāng)定時溢出中斷請求標(biāo)志。當(dāng)定時/ /計數(shù)計數(shù)器器T1T1發(fā)生溢出時,置位發(fā)生溢出時,置位TF1TF1,并向,并向CPUCPU申請中斷。申請中斷。l串行口中斷串行口中斷 RIRI(SCON.0SCON.0)或)或TITI(SCON.1SCON.1),串行口中斷請求標(biāo)志。當(dāng)串行口接收完),串行口中斷請求標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時置位一幀串行數(shù)據(jù)時置位RIRI或當(dāng)串

7、行口發(fā)送完一幀串行數(shù)據(jù)時置位或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時置位TITI,向,向CPUCPU申請中斷。申請中斷。 2、8051請求標(biāo)志請求標(biāo)志lTCON的中斷標(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)志位

8、。中斷請求標(biāo)志位。TF0(TCON.5),定時),定時/計數(shù)器計數(shù)器T0溢出中斷請求標(biāo)志位。溢出中斷請求標(biāo)志位。TF1(TCON.7),定時),定時/計數(shù)器計數(shù)器T1溢出中斷請求標(biāo)志位。溢出中斷請求標(biāo)志位。 l SCON的中斷標(biāo)志的中斷標(biāo)志RI(SCON.0),串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時,),串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時,每接收完一個串行幀,由硬件置位每接收完一個串行幀,由硬件置位RI。注意,。注意,RI必須由軟件清除必須由軟件清除。TI(SCON.1),串行口發(fā)送中斷標(biāo)志位。當(dāng)),串行口發(fā)送中斷標(biāo)志位。當(dāng)CPU將一個發(fā)送數(shù)據(jù)寫將一個發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖

9、器時,就啟動了發(fā)送過程。每發(fā)送完一個串行幀,入串行口發(fā)送緩沖器時,就啟動了發(fā)送過程。每發(fā)送完一個串行幀,由硬件置位由硬件置位TI。CPU響應(yīng)中斷時,不能自動清除響應(yīng)中斷時,不能自動清除TI,TI必須由軟件清必須由軟件清除除。 l 中斷允許控制中斷允許控制 CPU對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是由中斷對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器允許寄存器IE控制的??刂频?。3.80513.8051中斷的控制中斷的控制 EX0(IE.0),外部中斷,外部中斷0允許位;允許位;ET0(IE.1),定時,定時/計數(shù)器計數(shù)器T0中斷允許位;中斷允許位; EX1(IE.2)

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

11、(IP.1),定時),定時/計數(shù)器計數(shù)器T0優(yōu)先級設(shè)定位;優(yōu)先級設(shè)定位;PX1(IP.2),外部中斷),外部中斷1優(yōu)先級設(shè)定位;優(yōu)先級設(shè)定位;PT1(IP.3),定時),定時/計數(shù)器計數(shù)器T1優(yōu)先級設(shè)定位;優(yōu)先級設(shè)定位;PS (IP.4),串行口優(yōu)先級設(shè)定位;),串行口優(yōu)先級設(shè)定位;PT2 (IP.5) ,定時,定時/計數(shù)器計數(shù)器T2優(yōu)先級設(shè)定位。優(yōu)先級設(shè)定位。PX0(IPH.0),外部中斷),外部中斷0優(yōu)先級設(shè)定位;優(yōu)先級設(shè)定位;PT0(IPH.1),定時),定時/計數(shù)器計數(shù)器T0優(yōu)先級設(shè)定位;優(yōu)先級設(shè)定位;PX1(IPH.2),外部中斷),外部中斷1優(yōu)先級設(shè)定位;優(yōu)先級設(shè)定位;PT1(IP

12、H.3),定時),定時/計數(shù)器計數(shù)器T1優(yōu)先級設(shè)定位;優(yōu)先級設(shè)定位;PS (IPH.4),串行口優(yōu)先級設(shè)定位;),串行口優(yōu)先級設(shè)定位;PT2 (IPH.5) ,定時,定時/計數(shù)器計數(shù)器T2優(yōu)先級設(shè)定位。優(yōu)先級設(shè)定位。 而而8052單片機(jī)有四個中斷優(yōu)先級,即可實現(xiàn)四級中斷服務(wù)嵌套。每個單片機(jī)有四個中斷優(yōu)先級,即可實現(xiàn)四級中斷服務(wù)嵌套。每個中斷源的中斷優(yōu)先級由中斷優(yōu)先級寄存器中斷源的中斷優(yōu)先級由中斷優(yōu)先級寄存器IP和和IPH中的相應(yīng)位的狀態(tài)來中的相應(yīng)位的狀態(tài)來規(guī)定的規(guī)定的 。 同一優(yōu)先級中的中斷申請不止一個時,則有中斷優(yōu)先權(quán)排隊問題。同一優(yōu)先級中的中斷申請不止一個時,則有中斷優(yōu)先權(quán)排隊問題。同一優(yōu)

13、先級的中斷優(yōu)先權(quán)排隊,由中斷系統(tǒng)硬件確定的自然優(yōu)先級形同一優(yōu)先級的中斷優(yōu)先權(quán)排隊,由中斷系統(tǒng)硬件確定的自然優(yōu)先級形成,其排列如所示:成,其排列如所示:例:設(shè)置例:設(shè)置52單片機(jī)的單片機(jī)的4個中斷源個中斷源,使它們的優(yōu)順序為使它們的優(yōu)順序為T1,INT1,INT0,T0.IPH = 0X08;PT1 = 1;IP = 0X04;PX1 = 1;8051單片機(jī)的中斷優(yōu)先級有三條原則:單片機(jī)的中斷優(yōu)先級有三條原則:CPU同時接收到幾個中斷時,同時接收到幾個中斷時,首先響應(yīng)優(yōu)先級別最高的中斷請求首先響應(yīng)優(yōu)先級別最高的中斷請求。正在進(jìn)行的中斷過程正在進(jìn)行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷

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

15、1單片機(jī)中斷應(yīng)用單片機(jī)中斷應(yīng)用中斷響應(yīng)中斷響應(yīng)條件條件 中斷源有中斷源有中斷請求;中斷請求; 此中斷源的中斷允許位為此中斷源的中斷允許位為1; CPU開中斷(即開中斷(即EA=1)。)。以上三條同時滿足時,以上三條同時滿足時,CPU才有可能響應(yīng)中斷才有可能響應(yīng)中斷。l中斷響應(yīng)條件和時間中斷響應(yīng)條件和時間 l中斷設(shè)置中斷設(shè)置 包括中斷開啟設(shè)置(包括中斷開啟設(shè)置(IEIE)、優(yōu)先級設(shè)置()、優(yōu)先級設(shè)置(IPIP)、中斷觸發(fā)()、中斷觸發(fā)(TCONTCON)等。例如:等。例如: IE=0X84 IE=0X84;/開啟開啟INT1INT1中斷中斷 IP=0X04 IP=0X04;/設(shè)置設(shè)置INT1IN

16、T1具有高優(yōu)先級具有高優(yōu)先級 TCON=0X04;/ TCON=0X04;/設(shè)置設(shè)置INT1INT1下降沿觸發(fā)下降沿觸發(fā)l中斷子程序中斷子程序 格式為:格式為: void void 中斷子程序名稱(中斷子程序名稱(void) interrupt void) interrupt 中斷編號中斷編號 using using 寄存器組寄存器組 l 5、8051單片機(jī)中斷應(yīng)用單片機(jī)中斷應(yīng)用a.外部中斷外部中斷INT0 如圖,如圖,P1接接8個個LED,INT0腳接腳接10K上拉電阻,接一個上拉電阻,接一個按鈕到地。主程序運行時,按鈕到地。主程序運行時,LED閃爍;按下按鈕,進(jìn)入閃爍;按下按鈕,進(jìn)入中斷狀

17、態(tài),中斷狀態(tài),8個個LED變成單燈變成單燈左移,左移三圈后,恢復(fù)中左移,左移三圈后,恢復(fù)中斷前狀態(tài)。斷前狀態(tài)。#include #define LED P1void delay1ms(int);void left(int);main() IE=0 x81; LED=0 x00; while(1) delay1ms(250); LED=LED; void my_int0(void) interrupt 0 unsigned saveLED=LED; left(3); LED=saveLED;void delay1ms(int x) int i,j; for(i=0;ix;i+) for(j=0;

18、j120;j+);void left(int x) int i,j; for(i=0;i3;i+) LED=0 xfe; for(j=0;j7;j+) delay1ms(250); LED=(LED1)|0 x01; delay1ms(250); b.外部中斷外部中斷INT1 如圖,如圖,P0直接驅(qū)動共陽極七段數(shù)碼管,直接驅(qū)動共陽極七段數(shù)碼管,INT1接上拉電阻和對地按鈕。接上拉電阻和對地按鈕。 主程序執(zhí)行時,數(shù)碼管從主程序執(zhí)行時,數(shù)碼管從0到到9循環(huán),每循環(huán),每0.5S增加增加1。進(jìn)入中斷后,數(shù)碼管。進(jìn)入中斷后,數(shù)碼管從從9到到0,一圈后結(jié)束。,一圈后結(jié)束。#include #defineS

19、EG P0void delay1ms(int);Unsigned char code TAB=0 xc0,0 x98;main() int I; IE=0 x84; while(1) for(i=0;i=0;i-) SEG=TABi; delay1ms(250); SEG=0 xff; delay1ms(250); c.兩個外部中斷兩個外部中斷 如圖,如圖,P1接接8個個LED,INT0和和INT1接上拉電阻和對地按鈕。接上拉電阻和對地按鈕。 主程序執(zhí)行時,主程序執(zhí)行時,P1所接的所接的LED閃爍。按下閃爍。按下INT0按鈕,進(jìn)入外部中斷按鈕,進(jìn)入外部中斷0服服務(wù),務(wù),8個個LED單燈左移,左

20、移三圈后回主程序;按下單燈左移,左移三圈后回主程序;按下INT1按鈕,進(jìn)入外部中按鈕,進(jìn)入外部中斷斷1服務(wù),服務(wù),8個個LED單燈右移,三圈后回主程序。此外,要求單燈右移,三圈后回主程序。此外,要求INT0的優(yōu)先級的優(yōu)先級高于高于INT1。#include #define LED P1void delay1ms(int);void left(int);void right(int);main() IE=0 x85; LED=0 x00; while(1) delay1ms(250); LED=LED; void my_int0(void) interrupt 0 unsigned saveLE

21、D=LED; left(3); LED=saveLED;void my_int1(void) interrupt 2 unsigned saveLED=LED; right(3); LED=saveLED;void delay1ms(int x) int i,j; for(i=0;ix;i+) for(j=0;j120;j+);void left(int x) int i,j; for(i=0;i3;i+) LED=0 xfe; for(j=0;j7;j+) delay1ms(250); LED=(LED1)|0 x01; delay1ms(250); void righ(int x) int

22、 i,j; for(i=0;i3;i+) LED=0 x7f; for(j=0;j1)|0 x80; delay1ms(250); d.鍵盤中斷鍵盤中斷 如圖,如圖,MM74C922的數(shù)據(jù)的數(shù)據(jù)ABCD接接8051的的P2.4-P2.7,DA腳經(jīng)非門腳經(jīng)非門7404接接8051的的P3.2(INT0););P2.0-P2.3接接7447;8051的的P1接接8個個LED。 主程序執(zhí)行時,主程序執(zhí)行時,8個個LED閃爍(閃爍(0.1S切換),若按下鍵盤上的任一鍵,切換),若按下鍵盤上的任一鍵,則該鍵的數(shù)字將顯示在數(shù)碼管上,而則該鍵的數(shù)字將顯示在數(shù)碼管上,而P1的的LED扔保持正常閃爍。扔保持正常

23、閃爍。#include #define LED P1#define KEYBCD P2#define RR(x) (x=0 x7f)?0 xfe:(x1)|0 x01void delay1ms(int);main() IE=0 x81; LED=0 xfe; while(1) delay1ms(250); LED=RR(LED); void my_int0(void) interrupt 0 unsigned saveLED=LED; KEYBCD=0 xff; KEYBCD=4; LED=saveLED;思考:思考:1、本實驗中,有沒有抖動的困擾?、本實驗中,有沒有抖動的困擾?2、電平觸發(fā)和

24、邊沿觸發(fā)的各自特點。、電平觸發(fā)和邊沿觸發(fā)的各自特點。 8051的定時的定時/計數(shù)器計數(shù)器 實現(xiàn)定時功能,實現(xiàn)定時功能,比較方便的辦法是利用單片機(jī)內(nèi)部的定時比較方便的辦法是利用單片機(jī)內(nèi)部的定時/計數(shù)器計數(shù)器。也。也可以采用下面三種方法:可以采用下面三種方法:軟件定時軟件定時:軟件定時不占用硬件資源,但占用了:軟件定時不占用硬件資源,但占用了CPU時間,降低了時間,降低了CPU的利用率。的利用率。采用時基電路定時采用時基電路定時:例如采用:例如采用555電路,外接必要的元器件(電阻和電電路,外接必要的元器件(電阻和電容),即可構(gòu)成硬件定時電路。但在硬件連接好以后,定時值與定時范容),即可構(gòu)成硬件定

25、時電路。但在硬件連接好以后,定時值與定時范圍不能由軟件進(jìn)行控制和修改,即不可編程。圍不能由軟件進(jìn)行控制和修改,即不可編程。采用可編程芯片定時采用可編程芯片定時:這種定時芯片的定時值及定時范圍很容易用軟件:這種定時芯片的定時值及定時范圍很容易用軟件來確定和修改,此種芯片定時功能強,使用靈活。在單片機(jī)內(nèi)部的定時來確定和修改,此種芯片定時功能強,使用靈活。在單片機(jī)內(nèi)部的定時/計數(shù)器不夠用時,可以考慮進(jìn)行擴(kuò)展。計數(shù)器不夠用時,可以考慮進(jìn)行擴(kuò)展。 定時定時/計數(shù)器是一種計數(shù)器件,若計數(shù)內(nèi)部的時鐘脈沖,可視為定時器,計數(shù)器是一種計數(shù)器件,若計數(shù)內(nèi)部的時鐘脈沖,可視為定時器,若計數(shù)外部的脈沖,可視為計數(shù)器。

26、若計數(shù)外部的脈沖,可視為計數(shù)器。MCS-51MCS-51定時定時/ /計數(shù)器的結(jié)構(gòu)和工作原理計數(shù)器的結(jié)構(gòu)和工作原理 1、定時、定時/計數(shù)器的結(jié)構(gòu)計數(shù)器的結(jié)構(gòu) 8051提供兩個提供兩個16位的定時器位的定時器/計數(shù)器,分別是計數(shù)器,分別是Timer0和和Timer1(簡稱(簡稱T0和和T1),),8052提供提供3個個16位的定時器位的定時器/計數(shù)器,除了計數(shù)器,除了8051的的T0和和T1,還多一個還多一個Timer2。若做定時器,則計數(shù)內(nèi)部的脈沖,即。若做定時器,則計數(shù)內(nèi)部的脈沖,即fosc頻率的頻率的1/12,對對16位定時方式,最多可計數(shù)位定時方式,最多可計數(shù)216個脈沖,對個脈沖,對1

27、2MHz晶振,最長定時晶振,最長定時0.0655S。 MCS-51的定時的定時/計數(shù)器的實質(zhì)是加計數(shù)器的實質(zhì)是加1計數(shù)器(計數(shù)器(16位),由高位),由高8位和低位和低8位兩個寄存器組成。位兩個寄存器組成。TMOD是定時是定時/計數(shù)器的工作方式寄存器,確定工作計數(shù)器的工作方式寄存器,確定工作方式和功能;方式和功能;TCON是控制寄存器,控制是控制寄存器,控制T0、T1的啟動和停止及設(shè)置溢的啟動和停止及設(shè)置溢出標(biāo)志出標(biāo)志。 2、定時、定時/計數(shù)器的工作原理計數(shù)器的工作原理 加加1計數(shù)器計數(shù)器輸入的計數(shù)脈沖有兩個來源輸入的計數(shù)脈沖有兩個來源,一個是由系統(tǒng)的時鐘振蕩器輸一個是由系統(tǒng)的時鐘振蕩器輸出脈

28、沖經(jīng)出脈沖經(jīng)12分頻后送來;一個是分頻后送來;一個是T0或或T1引腳輸入的外部脈沖源。每來引腳輸入的外部脈沖源。每來一個脈沖計數(shù)器加一個脈沖計數(shù)器加1,當(dāng)加到計數(shù)器為全,當(dāng)加到計數(shù)器為全1時,再輸入一個脈沖就使計數(shù)時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的溢出使器回零,且計數(shù)器的溢出使TCON中中TF0或或TF1置置1,向,向CPU發(fā)出中斷請發(fā)出中斷請求(定時求(定時/計數(shù)器中斷允許時)。如果定時計數(shù)器中斷允許時)。如果定時/計數(shù)器工作于定時模式,則計數(shù)器工作于定時模式,則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。 可見,

29、由溢出時計數(shù)器的值減去計數(shù)初值才是加可見,由溢出時計數(shù)器的值減去計數(shù)初值才是加1計數(shù)器的計數(shù)值計數(shù)器的計數(shù)值。 設(shè)置為定時器模式時設(shè)置為定時器模式時,加,加1計數(shù)器是對內(nèi)部機(jī)器周期計數(shù)(計數(shù)器是對內(nèi)部機(jī)器周期計數(shù)(1個機(jī)器周期等個機(jī)器周期等于于12個振蕩周期,即計數(shù)頻率為晶振頻率的個振蕩周期,即計數(shù)頻率為晶振頻率的1/12)。)。計數(shù)值計數(shù)值N乘以機(jī)器周乘以機(jī)器周期期Tcy就是定時時間就是定時時間t 。設(shè)置為設(shè)置為計數(shù)器模式時計數(shù)器模式時,外部事件計數(shù)脈沖由,外部事件計數(shù)脈沖由T0或或T1引腳輸入到計數(shù)器。引腳輸入到計數(shù)器。在每個機(jī)器周期的在每個機(jī)器周期的S5P2期間采樣期間采樣T0、T1引腳

30、電平。當(dāng)某周期采樣到一高引腳電平。當(dāng)某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加1,更新的計數(shù)值,更新的計數(shù)值在下一個機(jī)器周期的在下一個機(jī)器周期的S3P1期間裝入計數(shù)器。由于檢測一個從期間裝入計數(shù)器。由于檢測一個從1到到0的下降沿的下降沿需要需要2個機(jī)器周期,因此要求被采樣的電平至少要維持一個機(jī)器周期。當(dāng)晶個機(jī)器周期,因此要求被采樣的電平至少要維持一個機(jī)器周期。當(dāng)晶振頻率為振頻率為12MHz時時,最高計數(shù)頻率不超過,最高計數(shù)頻率不超過1/2MHz,即計數(shù)脈沖的周期要,即計數(shù)脈沖的周期要大于大于2 s。 定時定時/計數(shù)器的控

31、制計數(shù)器的控制 80C51單片機(jī)定時單片機(jī)定時/計數(shù)器的工作由兩個特殊功能寄存器控制。計數(shù)器的工作由兩個特殊功能寄存器控制。TMOD用于設(shè)置其工作方式;用于設(shè)置其工作方式;TCON用于控制其啟動和中斷申請。用于控制其啟動和中斷申請。l 工作方式寄存器工作方式寄存器TMOD 工作方式寄存器工作方式寄存器TMOD用于設(shè)置定時用于設(shè)置定時/計數(shù)器的工作方式,低四位用計數(shù)器的工作方式,低四位用于于T0,高四位用于,高四位用于T1。其格式如下:。其格式如下:GATE:門控位。:門控位。GATE0時,只要用軟件使時,只要用軟件使TCON中的中的TR0或或TR1為為1,就可以啟動定時就可以啟動定時/計數(shù)器工

32、作;計數(shù)器工作;GATA1時,要用軟件使時,要用軟件使TR0或或TR1為為1,同時外部中斷引腳或也為高電平時,才能啟動定時同時外部中斷引腳或也為高電平時,才能啟動定時/計數(shù)器工作。即此計數(shù)器工作。即此時定時器的啟動多了一條件。時定時器的啟動多了一條件。 :定時定時/計數(shù)模式選擇位。計數(shù)模式選擇位。 0為定時模式;為定時模式; =1為計數(shù)模式。為計數(shù)模式。M1M0:工作方式設(shè)置位。定時:工作方式設(shè)置位。定時/計數(shù)器有四種工作方式,由計數(shù)器有四種工作方式,由M1M0進(jìn)行進(jìn)行設(shè)置。設(shè)置。C/TC/TC/T l 控制寄存器控制寄存器TCON TCON的低的低4位用于控制外部中斷位用于控制外部中斷,已在

33、前面介紹。已在前面介紹。TCON的高的高4位用于控位用于控制定時制定時/計數(shù)器的啟動和中斷申請。其格式如下:計數(shù)器的啟動和中斷申請。其格式如下:TF1(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的效果一樣。的效果一樣。TR1(TCON.6):):T

34、1運行控制位。運行控制位。TR1置置1時,時,T1開始工作;開始工作;TR1置置0時,時,T1停止工作。停止工作。TR1由軟件置由軟件置1或清或清0。所以,用軟件可控制定時。所以,用軟件可控制定時/計數(shù)器的啟動與停止。計數(shù)器的啟動與停止。TF0(TCON.5):):T0溢出中斷請求標(biāo)志位,其功能與溢出中斷請求標(biāo)志位,其功能與TF1類同。類同。TR0(TCON.4):):T0運行控制位,其功能與運行控制位,其功能與TR1類同。類同。 定時定時/計數(shù)器的工作方式計數(shù)器的工作方式 1、方式、方式0 方式方式0為為13位計數(shù)位計數(shù),由,由TL0的低的低5位(高位(高3位未用)和位未用)和TH0的的8位

35、組成。位組成。TL0的低的低5位溢出時向位溢出時向TH0進(jìn)位,進(jìn)位,TH0溢出時,置位溢出時,置位TCON中的中的TF0標(biāo)志,標(biāo)志,向向CPU發(fā)出中斷請求。發(fā)出中斷請求。定時器模式時定時器模式時有有:Nt/ Tcy 計數(shù)初值計算的公式為:計數(shù)初值計算的公式為:定時器的初值還可以采用計數(shù)個數(shù)直接取補法獲得定時器的初值還可以采用計數(shù)個數(shù)直接取補法獲得。計數(shù)模式時,計數(shù)脈沖是計數(shù)模式時,計數(shù)脈沖是T0引腳上的外部脈沖。引腳上的外部脈沖。13X=2 -N門控位門控位GATE具有特殊的作用。當(dāng)具有特殊的作用。當(dāng)GATE=0時,經(jīng)反相后使時,經(jīng)反相后使或門輸出為或門輸出為1,此時僅由,此時僅由TR0控制與

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

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

38、作方式3將將T0分成為兩個獨立的分成為兩個獨立的8位計數(shù)器位計數(shù)器TL0和和TH0 。 8X52的的Timer2l 定時器定時器2 是一個是一個16 位定時位定時/計數(shù)器。它既可當(dāng)計數(shù)器。它既可當(dāng)定時器定時器使用,也可作為外部事件使用,也可作為外部事件計數(shù)器使用,其工作方式由特殊功能寄存器計數(shù)器使用,其工作方式由特殊功能寄存器T2CON的的C/T2 位選擇。位選擇。定時器定時器2 有三種工作方式:捕獲方式,自動重裝載(向上或向下計數(shù))方式和波特率發(fā)有三種工作方式:捕獲方式,自動重裝載(向上或向下計數(shù))方式和波特率發(fā)生器方式,工作方式由生器方式,工作方式由T2CON 的控制位來選擇。的控制位來選

39、擇。l 定時器定時器2 由兩個由兩個8 位寄存器位寄存器TH2 和和TL2 組成,在定時器工作方式中,每個組成,在定時器工作方式中,每個機(jī)器機(jī)器周期周期TL2 寄存器的值加寄存器的值加1,由于一個機(jī)器周期由,由于一個機(jī)器周期由12 個振蕩時鐘構(gòu)成,因此,計個振蕩時鐘構(gòu)成,因此,計數(shù)速率為振蕩頻率的數(shù)速率為振蕩頻率的1/12。在計數(shù)工作方式時,當(dāng)。在計數(shù)工作方式時,當(dāng)T2 引腳上外部輸入信號產(chǎn)生引腳上外部輸入信號產(chǎn)生由由1 至至0 的下降沿時,寄存器的值加的下降沿時,寄存器的值加1,在這種工作方式下,每個,在這種工作方式下,每個機(jī)器周期機(jī)器周期的的S5P2 期間,對外部輸入進(jìn)行采樣。若在第一個期

40、間,對外部輸入進(jìn)行采樣。若在第一個機(jī)器周期機(jī)器周期中采到的值為中采到的值為1,而在,而在下一個機(jī)器周期中采到的值為下一個機(jī)器周期中采到的值為0,則在緊跟著的下一個周期的,則在緊跟著的下一個周期的S3P1 期間寄存器期間寄存器加加1。由于識別。由于識別1 至至0 的跳變需要的跳變需要2 個個機(jī)器周期機(jī)器周期(24 個振蕩周期),因此,最高個振蕩周期),因此,最高計數(shù)速率為振蕩頻率的計數(shù)速率為振蕩頻率的1/24。為確保采樣的正確性,要求輸入的電平在變化前。為確保采樣的正確性,要求輸入的電平在變化前至少保持一個完整周期的時間,以保證輸入信號至少被采樣一次。至少保持一個完整周期的時間,以保證輸入信號至

41、少被采樣一次。l TIMER2的三種方式的三種方式 RCLK+TCLK CP/RL2 TR2 MODE 0 0 1 16位自動加載方式位自動加載方式 0 1 1 16位捕捉方式位捕捉方式 1 X 1 波特率發(fā)生器方式波特率發(fā)生器方式 X X 0 不使用不使用l 捕獲方式捕獲方式 捕獲方式捕獲方式 是將是將TH2與與TL2寄存器的數(shù)據(jù)捕獲至寄存器的數(shù)據(jù)捕獲至RCAP2H和和RCPA2L寄存器中。寄存器中。使用捕獲方式,必須將使用捕獲方式,必須將T2CON寄存器的寄存器的CP/RL2置置1。 在捕獲方式下,通過在捕獲方式下,通過T2CON 控制位控制位EXEN2 來選擇兩種方式。如果來選擇兩種方式

42、。如果EXEN2=0,定時器定時器2 是一個是一個16 位定時器或計數(shù)器,計數(shù)溢出時,對位定時器或計數(shù)器,計數(shù)溢出時,對T2CON 的溢出標(biāo)志的溢出標(biāo)志TF2 置位,同時激活中斷。如果置位,同時激活中斷。如果EXEN2=1,定時器定時器2 完成相同的操作,而當(dāng)完成相同的操作,而當(dāng)T2EX 引腳外部輸入信號發(fā)生引腳外部輸入信號發(fā)生1 至至0 負(fù)跳變時,也出現(xiàn)負(fù)跳變時,也出現(xiàn)TH2 和和TL2 中的值分別中的值分別被捕獲到被捕獲到RCAP2H 和和RCAP2L 中。另外,中。另外,T2EX 引腳信號的跳變使得引腳信號的跳變使得T2CON 中的中的EXF2 置位,與置位,與TF2 相仿,相仿,EXF

43、2 也會激活中斷。捕獲方式如圖所示。也會激活中斷。捕獲方式如圖所示。l 自動重裝載自動重裝載 自動加載方式是自動將自動加載方式是自動將RCAP2H與與RCAP2L寄存器的數(shù)據(jù)載入寄存器的數(shù)據(jù)載入TH2與與TL2寄存寄存器。器。 當(dāng)當(dāng)定時器定時器2工作于工作于16位自動重裝載方式時,位自動重裝載方式時,T2CON的的CP/RL2 位必須置位必須置“0”。 若若EXEN2=1,定時器定時器2 的的16 位重裝載由溢出或外部輸入端位重裝載由溢出或外部輸入端T2EX 從從1 至至0 的下的下降沿觸發(fā)。這個脈沖使降沿觸發(fā)。這個脈沖使EXF2 置位,如果中斷允許,同樣產(chǎn)生中斷。置位,如果中斷允許,同樣產(chǎn)生

44、中斷。定時器定時器2 的中斷入口地址是:的中斷入口地址是:002BH 0032H 。 l 波特率發(fā)生器方式波特率發(fā)生器方式 當(dāng)當(dāng)T2CON中的中的TCLK 和和RCLK 置位時,定時置位時,定時/計數(shù)器計數(shù)器2 作為作為波特波特率發(fā)生器使用。率發(fā)生器使用。如果定時如果定時/計數(shù)器計數(shù)器2 作為發(fā)送器或接收器波特率發(fā)生器,其發(fā)送和接收的波特率可作為發(fā)送器或接收器波特率發(fā)生器,其發(fā)送和接收的波特率可以是不同的。以是不同的。 波特率發(fā)生器的方式與自動重裝載方式相仿,在此方式下,波特率發(fā)生器的方式與自動重裝載方式相仿,在此方式下,TH2 翻轉(zhuǎn)使翻轉(zhuǎn)使定時器定時器2 的寄存器用的寄存器用RCAP2H 和

45、和RCAP2L 中的中的16位數(shù)值重新裝載,該數(shù)值由位數(shù)值重新裝載,該數(shù)值由軟件軟件設(shè)置。設(shè)置。 在方式在方式1 和方式和方式3 中,波特率由中,波特率由定時器定時器2 的溢出速率根據(jù)下式確定:的溢出速率根據(jù)下式確定: 方式方式1和和3的的波特率波特率=定時器定時器的溢出率的溢出率/16 定時器既能工作于定時方式也能工作于計數(shù)方式,在大多數(shù)的應(yīng)用中,是工定時器既能工作于定時方式也能工作于計數(shù)方式,在大多數(shù)的應(yīng)用中,是工作在定時方式(作在定時方式(C/T2=0)。)。定時器定時器2 作為波特率發(fā)生器時,與作為作為波特率發(fā)生器時,與作為定時器定時器的操的操作是不同的,通常作為作是不同的,通常作為定

46、時器定時器時,在每個時,在每個機(jī)器周期機(jī)器周期(1/12 振蕩頻率)振蕩頻率)寄存器寄存器的的值加值加1,而作為,而作為波特率發(fā)生器波特率發(fā)生器使用時,在每個狀態(tài)時間(使用時,在每個狀態(tài)時間(1/2 振蕩頻率)振蕩頻率)寄存器寄存器的值加的值加1。波特率波特率的計算公式如下:的計算公式如下: 方式方式1和和3的的波特率波特率=振蕩頻率振蕩頻率/32*65536-(RCP2H,RCP2L)式中(式中(RCAP2H,RCAP2L)是)是RCAP2H 和和RCAP2L中的中的16 位無符號數(shù)。位無符號數(shù)。 定時器定時器2 作為作為波特率波特率發(fā)生器使用的電路如圖所示。發(fā)生器使用的電路如圖所示。T2C

47、ON 中的中的RCLK 或或TCLK=1 時,時,波特率波特率工作方式才有效。在工作方式才有效。在波特率發(fā)生器波特率發(fā)生器工作方式中,工作方式中,TH2 翻轉(zhuǎn)翻轉(zhuǎn)不能使不能使TF2 置位,故而不產(chǎn)生中斷。但若置位,故而不產(chǎn)生中斷。但若EXEN2 置位,且置位,且T2EX 端產(chǎn)生由端產(chǎn)生由1 至至0 的負(fù)跳變,則會使的負(fù)跳變,則會使EXF2 置位,此時并不能將(置位,此時并不能將(RCAP2H,RCAP2L)的內(nèi)容)的內(nèi)容重新裝入重新裝入TH2 和和TL2 中。所以,當(dāng)中。所以,當(dāng)定時器定時器2 作作波特率發(fā)生器波特率發(fā)生器使用時,使用時,T2EX 可可作為附加的作為附加的外部中斷外部中斷源來使

48、用。需要注意的是,當(dāng)源來使用。需要注意的是,當(dāng)定時器定時器2 工作于工作于波特率波特率器時,器時,作為定時器運行(作為定時器運行(TR2=1)時,并不能訪問)時,并不能訪問TH2 和和TL2。因為此時每個狀態(tài)。因為此時每個狀態(tài)時時間定時器間定時器都會加都會加1,對其讀寫將得到一個不確定的數(shù)值。,對其讀寫將得到一個不確定的數(shù)值。 然而,對然而,對RCAP2 則可讀而不可寫,因為寫入操作將是重新裝載,寫入操作則可讀而不可寫,因為寫入操作將是重新裝載,寫入操作可能令寫和可能令寫和/或重裝載出錯。在訪問或重裝載出錯。在訪問定時器定時器2或或RCAP2寄存器寄存器之前,應(yīng)將之前,應(yīng)將定時器定時器關(guān)閉(清

49、除關(guān)閉(清除TR2)。)。T2CON寄存器寄存器 T2CON是是Timer2的控制寄存器,其各位功能如下:的控制寄存器,其各位功能如下:TF2:定時定時/計數(shù)器計數(shù)器2溢出標(biāo)志,溢出標(biāo)志,T2溢出時置位,并申請中斷。只能用軟件溢出時置位,并申請中斷。只能用軟件清除,但清除,但T2作為波特率發(fā)生器使用的時候,作為波特率發(fā)生器使用的時候,(即即RCLK=1或或TCLK=1),T2溢溢出時不對出時不對TF2置位。置位。EXF2:Timer2的外部標(biāo)志,當(dāng)?shù)耐獠繕?biāo)志,當(dāng)EXEN2=1時,且時,且T2EX引腳(引腳(P1.0)出現(xiàn)負(fù))出現(xiàn)負(fù)跳變而造成跳變而造成T2的捕獲或重裝的時候,的捕獲或重裝的時候,

50、EXF2置位并申請中斷。置位并申請中斷。EXF2也是只也是只能通過軟件來清除的。能通過軟件來清除的。RCLK :串行接口接受時鐘標(biāo)志位,只能通過軟件的置位或清除;用來選串行接口接受時鐘標(biāo)志位,只能通過軟件的置位或清除;用來選擇擇T1(RCLK=0)還是)還是T2(RCLK=1)來作為串行接收的波特率產(chǎn)生器)來作為串行接收的波特率產(chǎn)生器TCLK:串行發(fā)送時鐘標(biāo)志,只能通過軟件的置位或清除;用來選擇串行發(fā)送時鐘標(biāo)志,只能通過軟件的置位或清除;用來選擇T1(TCLK=0)還是)還是T2(TCLK=1)來作為串行發(fā)送的波特率產(chǎn)生器。)來作為串行發(fā)送的波特率產(chǎn)生器。EXEN2 :T2的外部允許標(biāo)志,只能

51、通過軟件的置位或清除;的外部允許標(biāo)志,只能通過軟件的置位或清除;EXEN2=0:禁止外部時鐘觸發(fā)禁止外部時鐘觸發(fā)T2;EXEN2=1:當(dāng):當(dāng)T2未用作串行波特率發(fā)生器時,允許未用作串行波特率發(fā)生器時,允許外部時鐘觸發(fā)外部時鐘觸發(fā)T2,當(dāng),當(dāng)T2EX引腳輸入一個負(fù)跳變的時候,將引起引腳輸入一個負(fù)跳變的時候,將引起T2的捕獲的捕獲或重裝,并置位或重裝,并置位EXF2,申請中斷。,申請中斷。TR2 :T2的啟動控制標(biāo)志;的啟動控制標(biāo)志;TR2=0:停止:停止T2;TR2=1:啟動:啟動T2C/T2:T2的定時方式或計數(shù)方式選擇位。只能通過軟件的置位或清除;的定時方式或計數(shù)方式選擇位。只能通過軟件的置

52、位或清除;C/T2=0:選擇:選擇T2為定時器方式;為定時器方式;C/T2=1:選擇:選擇T2為計數(shù)器方式,下降沿為計數(shù)器方式,下降沿觸發(fā)。觸發(fā)。CP/RT2:捕獲捕獲/重裝載標(biāo)志,只能通過軟件的置位或清除。重裝載標(biāo)志,只能通過軟件的置位或清除。CP/RT2=0時,選擇重裝時,選擇重裝載方式,這時若載方式,這時若T2溢出(溢出(EXEN2=0時)或者時)或者T2EX引腳(引腳(P1.0)出現(xiàn)負(fù)跳變)出現(xiàn)負(fù)跳變(EXEN2=1時),將會引起時),將會引起T2重裝載;重裝載;CP/RT2=1時,選擇捕獲方式,這時若時,選擇捕獲方式,這時若T2EX引腳(引腳(P1.0)出現(xiàn)負(fù)跳變()出現(xiàn)負(fù)跳變(EX

53、EN2=1時),將會引起時),將會引起T2捕獲操作。但是如果捕獲操作。但是如果RCLK=1或或TCLK=1時,時,CP/RT2控制位不起作用的,被強制工作于定時器溢出自動控制位不起作用的,被強制工作于定時器溢出自動重裝載模式。重裝載模式。 8X51的節(jié)電方式的節(jié)電方式 “節(jié)電方式節(jié)電方式”就是讓系統(tǒng)耗電量低,同時又能保持系統(tǒng)中的數(shù)據(jù)。就是讓系統(tǒng)耗電量低,同時又能保持系統(tǒng)中的數(shù)據(jù)。8051的的CHMOS版本提供兩種節(jié)電方式,即待機(jī)方式(版本提供兩種節(jié)電方式,即待機(jī)方式(idle MODE簡稱簡稱IDL方式)與掉方式)與掉電方式(電方式(power-down mode簡稱簡稱PD方式)。方式)。

54、如圖為如圖為8051內(nèi)部功率控制示意圖,其中內(nèi)部功率控制示意圖,其中IDL端點與端點與PD端點連接到端點連接到PCON的的IDL和和PD位。位。1、待機(jī)方式、待機(jī)方式 若若IDL=1,進(jìn)入待機(jī)方式。,進(jìn)入待機(jī)方式。 除了中斷、串行口、定時器除了中斷、串行口、定時器/計數(shù)器等仍提供時鐘外,計數(shù)器等仍提供時鐘外,CPU的其他部分均無的其他部分均無時鐘。因此,時鐘。因此,CPU將停止,而其中各寄存器、堆棧、存儲器、輸入將停止,而其中各寄存器、堆棧、存儲器、輸入/輸出端口等輸出端口等的數(shù)據(jù)并不會消失。的數(shù)據(jù)并不會消失。 IDL=0,結(jié)束待機(jī),結(jié)束待機(jī),CPU恢復(fù)正常運行。若要使恢復(fù)正常運行。若要使ID

55、L=0,可采用以下方法:,可采用以下方法:a.啟動一個中斷,在中斷服務(wù)程序中將啟動一個中斷,在中斷服務(wù)程序中將IDL設(shè)置為設(shè)置為0。b.讓系統(tǒng)復(fù)位,但系統(tǒng)復(fù)位后,各寄存器、輸入讓系統(tǒng)復(fù)位,但系統(tǒng)復(fù)位后,各寄存器、輸入/輸出端口等的數(shù)據(jù)將消失。輸出端口等的數(shù)據(jù)將消失。2、掉電方式、掉電方式 若若PD=1,則進(jìn)入掉電方式,此時完全不提供時鐘脈沖,功率損耗降為最低。,則進(jìn)入掉電方式,此時完全不提供時鐘脈沖,功率損耗降為最低。若要結(jié)束掉電方式,必須讓系統(tǒng)復(fù)位。若要結(jié)束掉電方式,必須讓系統(tǒng)復(fù)位。3、PCON電源控制寄存器電源控制寄存器 SMOD:波特率倍增位:波特率倍增位 GF1、GF0:通用標(biāo)志位用戶

56、可自行使用。:通用標(biāo)志位用戶可自行使用。 PD:掉電方式位掉電方式位 IDL:待機(jī)方式位:待機(jī)方式位 看門狗定時器看門狗定時器 WDT是一種微控制器防止是一種微控制器防止“跑飛跑飛”的器件,當(dāng)系統(tǒng)超過某個時間沒有動作時,的器件,當(dāng)系統(tǒng)超過某個時間沒有動作時,WDT就使就使CPU自動復(fù)位,讓系統(tǒng)返回正常的運行狀態(tài)。自動復(fù)位,讓系統(tǒng)返回正常的運行狀態(tài)。 89S51內(nèi)部的看門狗定時器是由一個內(nèi)部的看門狗定時器是由一個14位定時器及位定時器及WDTRST寄存器所構(gòu)成。寄存器所構(gòu)成。WDT的預(yù)置狀態(tài)是停用(的預(yù)置狀態(tài)是停用(disable),若要啟用,則需要依次將),若要啟用,則需要依次將0X1E、0X

57、E1放入放入WDTRST寄存器,此寄存器的地址是寄存器,此寄存器的地址是0XA6。 啟用啟用WDT后,此計數(shù)器將隨時鐘脈沖的機(jī)器周期而增加(一個機(jī)器周期后,此計數(shù)器將隨時鐘脈沖的機(jī)器周期而增加(一個機(jī)器周期,WDT加加1),復(fù)位),復(fù)位WDT與啟用與啟用WDT的方法一樣,程序必須在的方法一樣,程序必須在WDT溢出之前將溢出之前將0X1E、0XE1依次寫入依次寫入WDTRST寄存器。寄存器。1、啟用、啟用WDT與復(fù)位與復(fù)位WDT 用匯編語句:用匯編語句: mov WDTRST,#1eh mov WDTRST,#0e1h 用用c51編程時,先在編程時,先在reg51.h中添加中添加: sfr WD

58、TRST=0 xa6; 在在C51代碼中,添加:代碼中,添加: WDTRST=0 x1e; WDTRST=0 xe1;2、掉電方式下的、掉電方式下的WDT 進(jìn)入掉電方式前復(fù)位進(jìn)入掉電方式前復(fù)位WDT。3、在待機(jī)方式下的、在待機(jī)方式下的WDT 在在AUXR寄存器在,寄存器在,WDIELE位用來決定位用來決定WDT在待機(jī)方式下是否繼續(xù)計數(shù)。在待機(jī)方式下是否繼續(xù)計數(shù)。若在待機(jī)中若在待機(jī)中WDT繼續(xù)計數(shù),可周期性退出待機(jī)方式,復(fù)位繼續(xù)計數(shù),可周期性退出待機(jī)方式,復(fù)位WDT,再進(jìn)入待機(jī)。,再進(jìn)入待機(jī)。 sfr AUXR=0 xa2; AUXR=0 x10; 定時定時/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 定時器

59、定時器/計數(shù)器有兩種應(yīng)用方式,即中斷方式和查詢方式。一般來說,計數(shù)器有兩種應(yīng)用方式,即中斷方式和查詢方式。一般來說,對定時器對定時器/計數(shù)器的初始化程序應(yīng)完成如下工作:計數(shù)器的初始化程序應(yīng)完成如下工作:對對TMOD賦值,以確定賦值,以確定T0和和T1的工作方式。的工作方式。計算初值計算初值,并將其寫入并將其寫入TH0、TL0或或TH1、TL1。中斷方式時,則對中斷方式時,則對IE賦值,開放中斷。賦值,開放中斷。使使TR0或或TR1置位,啟動定時置位,啟動定時/計數(shù)器定時或計數(shù)。計數(shù)器定時或計數(shù)。1、閃爍燈、閃爍燈查詢方式查詢方式 目的是了解目的是了解8051定時器應(yīng)用,了解用定時器應(yīng)用,了解用

60、C51設(shè)計定時器中斷程序的方法。設(shè)計定時器中斷程序的方法。如圖電路。設(shè)計一個程序,每如圖電路。設(shè)計一個程序,每0.28S 8個個LED交替閃爍一次。交替閃爍一次。 本程序中,定時器采用查詢的方式工作,即本程序中,定時器采用查詢的方式工作,即CPU在主程序中不斷查詢在主程序中不斷查詢定時器是否溢出,而不需要引起定時器中斷,進(jìn)入中斷服務(wù)程序去實現(xiàn)定時器是否溢出,而不需要引起定時器中斷,進(jìn)入中斷服務(wù)程序去實現(xiàn)定時功能。定時功能。 在在12MHz下,若以下,若以MODE0工作,每次最多可計數(shù)工作,每次最多可計數(shù)8192,約,約8ms。若。若計數(shù)計數(shù)5000,則為,則為5ms,需重復(fù),需重復(fù)50次,才能延時次,才能延時

溫馨提示

  • 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

提交評論