




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、中斷與定時器中斷與定時器 中斷概念中斷概念 MCS-51中斷系統中斷系統 MCS-51定時器應用定時器應用 中斷概念中斷概念中斷的概念中斷的概念 CPUCPU在處理某在處理某一事件一事件A A時,發生時,發生了另一事件了另一事件B B請求請求CPUCPU迅速去處理迅速去處理(中斷發生中斷發生);); CPUCPU暫時中斷暫時中斷當前的工作,轉當前的工作,轉去處理事件去處理事件B B(中中斷響應和中斷服斷響應和中斷服務務);); 待待CPUCPU將事件將事件B B處理完畢后,再處理完畢后,再回到原來事件回到原來事件A A被被中斷的地方繼續中斷的地方繼續處理事件處理事件A A(中斷中斷返回返回),
2、這一過),這一過程稱為程稱為中斷中斷 。執行主程序主程序繼續執行主程序斷點中斷請求中斷響應執行中斷處理程序中斷返回引起引起CPU中斷的根源,稱為中斷的根源,稱為中斷源中斷源。中斷源向。中斷源向CPU提出提出的中斷請求。的中斷請求。CPU暫時中斷原來的事務暫時中斷原來的事務A,轉去處理事件,轉去處理事件B。對事件對事件B處理完畢后,再回到原來被中斷的地方(即處理完畢后,再回到原來被中斷的地方(即斷點斷點),),稱為中斷返回。實現上述中斷功能的部件稱為稱為中斷返回。實現上述中斷功能的部件稱為中斷系統中斷系統(中(中斷機構)。斷機構)。 隨著計算機技術的應用,人們發現中斷技術不僅解決了快速主機與慢隨
3、著計算機技術的應用,人們發現中斷技術不僅解決了快速主機與慢速速I/O設備的數據傳送問題,而且還具有如下優點:設備的數據傳送問題,而且還具有如下優點: 分時操作分時操作。CPU可以分時為多個可以分時為多個I/O設備服務,提高了計算機的利用設備服務,提高了計算機的利用率;率;實時響應實時響應。CPU能夠及時處理應用系統的隨機事件,系統的實時性大能夠及時處理應用系統的隨機事件,系統的實時性大大增強;大增強;可靠性高可靠性高。CPU具有處理設備故障及掉電等突發性事件能力,從而使具有處理設備故障及掉電等突發性事件能力,從而使系統可靠性提高。系統可靠性提高。1、8051中斷系統的結構中斷系統的結構 805
4、1的中斷系統有的中斷系統有5個中斷源個中斷源(8052有有 6個,還有第三個定時個,還有第三個定時/計數計數器中斷)器中斷) ,2個優先級,可實現二級中斷嵌套個優先級,可實現二級中斷嵌套 。 MCS-51中斷系統中斷系統l 外部中斷外部中斷0 0 (P3.2P3.2)可由)可由IT0(TCON.0)IT0(TCON.0)選擇其為低電平有效還是下降沿有效。選擇其為低電平有效還是下降沿有效。當當CPUCPU檢測到檢測到P3.2P3.2引腳上出現有效的中斷信號時,中斷標志引腳上出現有效的中斷信號時,中斷標志IE0(TCON.1)IE0(TCON.1)置置1 1,向,向CPUCPU申請中斷。申請中斷。
5、l外部中斷外部中斷1 1 (P3.3 (P3.3)可由)可由IT1(TCON.2)IT1(TCON.2)選擇其為低電平有效還是下降沿有效。選擇其為低電平有效還是下降沿有效。當當CPUCPU檢測到檢測到P3.3P3.3引腳上出現有效的中斷信號時,中斷標志引腳上出現有效的中斷信號時,中斷標志IE1(TCON.3)IE1(TCON.3)置置1,1,向向CPUCPU申請中斷。申請中斷。l定時器定時器/ /計數器計數器0 0中斷中斷TF0TF0(TCON.5TCON.5),片內定時),片內定時/ /計數器計數器T0T0溢出中斷請求標志。當定時溢出中斷請求標志。當定時/ /計數計數器器T0T0發生溢出時,
6、置位發生溢出時,置位TF0TF0,并向,并向CPUCPU申請中斷。申請中斷。l 定時器定時器/ /計數器計數器1 1中斷中斷TF1TF1(TCON.7TCON.7),片內定時),片內定時/ /計數器計數器T1T1溢出中斷請求標志。當定時溢出中斷請求標志。當定時/ /計數計數器器T1T1發生溢出時,置位發生溢出時,置位TF1TF1,并向,并向CPUCPU申請中斷。申請中斷。l串行口中斷串行口中斷 RIRI(SCON.0SCON.0)或)或TITI(SCON.1SCON.1),串行口中斷請求標志。當串行口接收完),串行口中斷請求標志。當串行口接收完一幀串行數據時置位一幀串行數據時置位RIRI或當串
7、行口發送完一幀串行數據時置位或當串行口發送完一幀串行數據時置位TITI,向,向CPUCPU申請中斷。申請中斷。 2、8051請求標志請求標志lTCON的中斷標志的中斷標志IT0(TCON.0),外部中斷),外部中斷0觸發方式控制位。觸發方式控制位。當當IT0=0時,為電平觸發方式。時,為電平觸發方式。當當IT0=1時,為邊沿觸發方式(下降沿有效)。時,為邊沿觸發方式(下降沿有效)。IE0(TCON.1),外部中斷),外部中斷0中斷請求標志位。中斷請求標志位。IT1(TCON.2),外部中斷),外部中斷1觸發方式控制位。觸發方式控制位。IE1(TCON.3),外部中斷),外部中斷1中斷請求標志位
8、。中斷請求標志位。TF0(TCON.5),定時),定時/計數器計數器T0溢出中斷請求標志位。溢出中斷請求標志位。TF1(TCON.7),定時),定時/計數器計數器T1溢出中斷請求標志位。溢出中斷請求標志位。 l SCON的中斷標志的中斷標志RI(SCON.0),串行口接收中斷標志位。當允許串行口接收數據時,),串行口接收中斷標志位。當允許串行口接收數據時,每接收完一個串行幀,由硬件置位每接收完一個串行幀,由硬件置位RI。注意,。注意,RI必須由軟件清除必須由軟件清除。TI(SCON.1),串行口發送中斷標志位。當),串行口發送中斷標志位。當CPU將一個發送數據寫將一個發送數據寫入串行口發送緩沖
9、器時,就啟動了發送過程。每發送完一個串行幀,入串行口發送緩沖器時,就啟動了發送過程。每發送完一個串行幀,由硬件置位由硬件置位TI。CPU響應中斷時,不能自動清除響應中斷時,不能自動清除TI,TI必須由軟件清必須由軟件清除除。 l 中斷允許控制中斷允許控制 CPU對中斷系統所有中斷以及某個中斷源的開放和屏蔽是由中斷對中斷系統所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器允許寄存器IE控制的。控制的。3.80513.8051中斷的控制中斷的控制 EX0(IE.0),外部中斷,外部中斷0允許位;允許位;ET0(IE.1),定時,定時/計數器計數器T0中斷允許位;中斷允許位; EX1(IE.2)
10、,外部中斷,外部中斷0允許位;允許位;ET1(IE.3),定時,定時/計數器計數器T1中斷允許位;中斷允許位;ES(IE.4),串行口中斷允許位;,串行口中斷允許位;EA (IE.7), CPU中斷允許(總允許)位。中斷允許(總允許)位。l 中斷優先級控制中斷優先級控制 8051單片機有兩個中斷優先級,即可實現二級中斷服務嵌套。每個中單片機有兩個中斷優先級,即可實現二級中斷服務嵌套。每個中斷源的中斷優先級都是由中斷優先級寄存器斷源的中斷優先級都是由中斷優先級寄存器IP中的相應位的狀態來規定中的相應位的狀態來規定的的 。PX0(IP.0),外部中斷),外部中斷0優先級設定位;優先級設定位;PT0
11、(IP.1),定時),定時/計數器計數器T0優先級設定位;優先級設定位;PX1(IP.2),外部中斷),外部中斷1優先級設定位;優先級設定位;PT1(IP.3),定時),定時/計數器計數器T1優先級設定位;優先級設定位;PS (IP.4),串行口優先級設定位;),串行口優先級設定位;PT2 (IP.5) ,定時,定時/計數器計數器T2優先級設定位。優先級設定位。PX0(IPH.0),外部中斷),外部中斷0優先級設定位;優先級設定位;PT0(IPH.1),定時),定時/計數器計數器T0優先級設定位;優先級設定位;PX1(IPH.2),外部中斷),外部中斷1優先級設定位;優先級設定位;PT1(IP
12、H.3),定時),定時/計數器計數器T1優先級設定位;優先級設定位;PS (IPH.4),串行口優先級設定位;),串行口優先級設定位;PT2 (IPH.5) ,定時,定時/計數器計數器T2優先級設定位。優先級設定位。 而而8052單片機有四個中斷優先級,即可實現四級中斷服務嵌套。每個單片機有四個中斷優先級,即可實現四級中斷服務嵌套。每個中斷源的中斷優先級由中斷優先級寄存器中斷源的中斷優先級由中斷優先級寄存器IP和和IPH中的相應位的狀態來中的相應位的狀態來規定的規定的 。 同一優先級中的中斷申請不止一個時,則有中斷優先權排隊問題。同一優先級中的中斷申請不止一個時,則有中斷優先權排隊問題。同一優
13、先級的中斷優先權排隊,由中斷系統硬件確定的自然優先級形同一優先級的中斷優先權排隊,由中斷系統硬件確定的自然優先級形成,其排列如所示:成,其排列如所示:例:設置例:設置52單片機的單片機的4個中斷源個中斷源,使它們的優順序為使它們的優順序為T1,INT1,INT0,T0.IPH = 0X08;PT1 = 1;IP = 0X04;PX1 = 1;8051單片機的中斷優先級有三條原則:單片機的中斷優先級有三條原則:CPU同時接收到幾個中斷時,同時接收到幾個中斷時,首先響應優先級別最高的中斷請求首先響應優先級別最高的中斷請求。正在進行的中斷過程正在進行的中斷過程不能被新的同級或低優先級的中斷請求所中斷
14、不能被新的同級或低優先級的中斷請求所中斷。正在進行的低優先級中斷服務,正在進行的低優先級中斷服務,能被高優先級中斷請求所中斷能被高優先級中斷請求所中斷。 為了實現上述后兩條原則,為了實現上述后兩條原則,中斷系統內部設有兩個用戶不能尋址的優中斷系統內部設有兩個用戶不能尋址的優先級狀態觸發器。先級狀態觸發器。其中一個置其中一個置1,表示正在響應高優先級的中斷,它將阻,表示正在響應高優先級的中斷,它將阻斷后來所有的中斷請求;另一個置斷后來所有的中斷請求;另一個置1,表示正在響應低優先級中斷,它將,表示正在響應低優先級中斷,它將阻斷后來所有的低優先級中斷請求。阻斷后來所有的低優先級中斷請求。4、805
15、1單片機中斷應用單片機中斷應用中斷響應中斷響應條件條件 中斷源有中斷源有中斷請求;中斷請求; 此中斷源的中斷允許位為此中斷源的中斷允許位為1; CPU開中斷(即開中斷(即EA=1)。)。以上三條同時滿足時,以上三條同時滿足時,CPU才有可能響應中斷才有可能響應中斷。l中斷響應條件和時間中斷響應條件和時間 l中斷設置中斷設置 包括中斷開啟設置(包括中斷開啟設置(IEIE)、優先級設置()、優先級設置(IPIP)、中斷觸發()、中斷觸發(TCONTCON)等。例如:等。例如: IE=0X84 IE=0X84;/開啟開啟INT1INT1中斷中斷 IP=0X04 IP=0X04;/設置設置INT1IN
16、T1具有高優先級具有高優先級 TCON=0X04;/ TCON=0X04;/設置設置INT1INT1下降沿觸發下降沿觸發l中斷子程序中斷子程序 格式為:格式為: void void 中斷子程序名稱(中斷子程序名稱(void) interrupt void) interrupt 中斷編號中斷編號 using using 寄存器組寄存器組 l 5、8051單片機中斷應用單片機中斷應用a.外部中斷外部中斷INT0 如圖,如圖,P1接接8個個LED,INT0腳接腳接10K上拉電阻,接一個上拉電阻,接一個按鈕到地。主程序運行時,按鈕到地。主程序運行時,LED閃爍;按下按鈕,進入閃爍;按下按鈕,進入中斷狀
17、態,中斷狀態,8個個LED變成單燈變成單燈左移,左移三圈后,恢復中左移,左移三圈后,恢復中斷前狀態。斷前狀態。#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直接驅動共陽極七段數碼管,直接驅動共陽極七段數碼管,INT1接上拉電阻和對地按鈕。接上拉電阻和對地按鈕。 主程序執行時,數碼管從主程序執行時,數碼管從0到到9循環,每循環,每0.5S增加增加1。進入中斷后,數碼管。進入中斷后,數碼管從從9到到0,一圈后結束。,一圈后結束。#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接上拉電阻和對地按鈕。接上拉電阻和對地按鈕。 主程序執行時,主程序執行時,P1所接的所接的LED閃爍。按下閃爍。按下INT0按鈕,進入外部中斷按鈕,進入外部中斷0服服務,務,8個個LED單燈左移,左
20、移三圈后回主程序;按下單燈左移,左移三圈后回主程序;按下INT1按鈕,進入外部中按鈕,進入外部中斷斷1服務,服務,8個個LED單燈右移,三圈后回主程序。此外,要求單燈右移,三圈后回主程序。此外,要求INT0的優先級的優先級高于高于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的數據的數據ABCD接接8051的的P2.4-P2.7,DA腳經非門腳經非門7404接接8051的的P3.2(INT0););P2.0-P2.3接接7447;8051的的P1接接8個個LED。 主程序執行時,主程序執行時,8個個LED閃爍(閃爍(0.1S切換),若按下鍵盤上的任一鍵,切換),若按下鍵盤上的任一鍵,則該鍵的數字將顯示在數碼管上,而則該鍵的數字將顯示在數碼管上,而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、電平觸發和
24、邊沿觸發的各自特點。、電平觸發和邊沿觸發的各自特點。 8051的定時的定時/計數器計數器 實現定時功能,實現定時功能,比較方便的辦法是利用單片機內部的定時比較方便的辦法是利用單片機內部的定時/計數器計數器。也。也可以采用下面三種方法:可以采用下面三種方法:軟件定時軟件定時:軟件定時不占用硬件資源,但占用了:軟件定時不占用硬件資源,但占用了CPU時間,降低了時間,降低了CPU的利用率。的利用率。采用時基電路定時采用時基電路定時:例如采用:例如采用555電路,外接必要的元器件(電阻和電電路,外接必要的元器件(電阻和電容),即可構成硬件定時電路。但在硬件連接好以后,定時值與定時范容),即可構成硬件定
25、時電路。但在硬件連接好以后,定時值與定時范圍不能由軟件進行控制和修改,即不可編程。圍不能由軟件進行控制和修改,即不可編程。采用可編程芯片定時采用可編程芯片定時:這種定時芯片的定時值及定時范圍很容易用軟件:這種定時芯片的定時值及定時范圍很容易用軟件來確定和修改,此種芯片定時功能強,使用靈活。在單片機內部的定時來確定和修改,此種芯片定時功能強,使用靈活。在單片機內部的定時/計數器不夠用時,可以考慮進行擴展。計數器不夠用時,可以考慮進行擴展。 定時定時/計數器是一種計數器件,若計數內部的時鐘脈沖,可視為定時器,計數器是一種計數器件,若計數內部的時鐘脈沖,可視為定時器,若計數外部的脈沖,可視為計數器。
26、若計數外部的脈沖,可視為計數器。MCS-51MCS-51定時定時/ /計數器的結構和工作原理計數器的結構和工作原理 1、定時、定時/計數器的結構計數器的結構 8051提供兩個提供兩個16位的定時器位的定時器/計數器,分別是計數器,分別是Timer0和和Timer1(簡稱(簡稱T0和和T1),),8052提供提供3個個16位的定時器位的定時器/計數器,除了計數器,除了8051的的T0和和T1,還多一個還多一個Timer2。若做定時器,則計數內部的脈沖,即。若做定時器,則計數內部的脈沖,即fosc頻率的頻率的1/12,對對16位定時方式,最多可計數位定時方式,最多可計數216個脈沖,對個脈沖,對1
27、2MHz晶振,最長定時晶振,最長定時0.0655S。 MCS-51的定時的定時/計數器的實質是加計數器的實質是加1計數器(計數器(16位),由高位),由高8位和低位和低8位兩個寄存器組成。位兩個寄存器組成。TMOD是定時是定時/計數器的工作方式寄存器,確定工作計數器的工作方式寄存器,確定工作方式和功能;方式和功能;TCON是控制寄存器,控制是控制寄存器,控制T0、T1的啟動和停止及設置溢的啟動和停止及設置溢出標志出標志。 2、定時、定時/計數器的工作原理計數器的工作原理 加加1計數器計數器輸入的計數脈沖有兩個來源輸入的計數脈沖有兩個來源,一個是由系統的時鐘振蕩器輸一個是由系統的時鐘振蕩器輸出脈
28、沖經出脈沖經12分頻后送來;一個是分頻后送來;一個是T0或或T1引腳輸入的外部脈沖源。每來引腳輸入的外部脈沖源。每來一個脈沖計數器加一個脈沖計數器加1,當加到計數器為全,當加到計數器為全1時,再輸入一個脈沖就使計數時,再輸入一個脈沖就使計數器回零,且計數器的溢出使器回零,且計數器的溢出使TCON中中TF0或或TF1置置1,向,向CPU發出中斷請發出中斷請求(定時求(定時/計數器中斷允許時)。如果定時計數器中斷允許時)。如果定時/計數器工作于定時模式,則計數器工作于定時模式,則表示定時時間已到;如果工作于計數模式,則表示計數值已滿。表示定時時間已到;如果工作于計數模式,則表示計數值已滿。 可見,
29、由溢出時計數器的值減去計數初值才是加可見,由溢出時計數器的值減去計數初值才是加1計數器的計數值計數器的計數值。 設置為定時器模式時設置為定時器模式時,加,加1計數器是對內部機器周期計數(計數器是對內部機器周期計數(1個機器周期等個機器周期等于于12個振蕩周期,即計數頻率為晶振頻率的個振蕩周期,即計數頻率為晶振頻率的1/12)。)。計數值計數值N乘以機器周乘以機器周期期Tcy就是定時時間就是定時時間t 。設置為設置為計數器模式時計數器模式時,外部事件計數脈沖由,外部事件計數脈沖由T0或或T1引腳輸入到計數器。引腳輸入到計數器。在每個機器周期的在每個機器周期的S5P2期間采樣期間采樣T0、T1引腳
30、電平。當某周期采樣到一高引腳電平。當某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數器加電平輸入,而下一周期又采樣到一低電平時,則計數器加1,更新的計數值,更新的計數值在下一個機器周期的在下一個機器周期的S3P1期間裝入計數器。由于檢測一個從期間裝入計數器。由于檢測一個從1到到0的下降沿的下降沿需要需要2個機器周期,因此要求被采樣的電平至少要維持一個機器周期。當晶個機器周期,因此要求被采樣的電平至少要維持一個機器周期。當晶振頻率為振頻率為12MHz時時,最高計數頻率不超過,最高計數頻率不超過1/2MHz,即計數脈沖的周期要,即計數脈沖的周期要大于大于2 s。 定時定時/計數器的控
31、制計數器的控制 80C51單片機定時單片機定時/計數器的工作由兩個特殊功能寄存器控制。計數器的工作由兩個特殊功能寄存器控制。TMOD用于設置其工作方式;用于設置其工作方式;TCON用于控制其啟動和中斷申請。用于控制其啟動和中斷申請。l 工作方式寄存器工作方式寄存器TMOD 工作方式寄存器工作方式寄存器TMOD用于設置定時用于設置定時/計數器的工作方式,低四位用計數器的工作方式,低四位用于于T0,高四位用于,高四位用于T1。其格式如下:。其格式如下:GATE:門控位。:門控位。GATE0時,只要用軟件使時,只要用軟件使TCON中的中的TR0或或TR1為為1,就可以啟動定時就可以啟動定時/計數器工
32、作;計數器工作;GATA1時,要用軟件使時,要用軟件使TR0或或TR1為為1,同時外部中斷引腳或也為高電平時,才能啟動定時同時外部中斷引腳或也為高電平時,才能啟動定時/計數器工作。即此計數器工作。即此時定時器的啟動多了一條件。時定時器的啟動多了一條件。 :定時定時/計數模式選擇位。計數模式選擇位。 0為定時模式;為定時模式; =1為計數模式。為計數模式。M1M0:工作方式設置位。定時:工作方式設置位。定時/計數器有四種工作方式,由計數器有四種工作方式,由M1M0進行進行設置。設置。C/TC/TC/T l 控制寄存器控制寄存器TCON TCON的低的低4位用于控制外部中斷位用于控制外部中斷,已在
33、前面介紹。已在前面介紹。TCON的高的高4位用于控位用于控制定時制定時/計數器的啟動和中斷申請。其格式如下:計數器的啟動和中斷申請。其格式如下:TF1(TCON.7):):T1溢出中斷請求標志位。溢出中斷請求標志位。T1計數溢出時由硬件自計數溢出時由硬件自動置動置TF1為為1。CPU響應中斷后響應中斷后TF1由硬件自動清由硬件自動清0。T1工作時,工作時,CPU可隨時查詢可隨時查詢TF1的狀態。所以,的狀態。所以,TF1可用作查詢測試的標志。可用作查詢測試的標志。TF1也可也可以用軟件置以用軟件置1或清或清0,同硬件置,同硬件置1或清或清0的效果一樣。的效果一樣。TR1(TCON.6):):T
34、1運行控制位。運行控制位。TR1置置1時,時,T1開始工作;開始工作;TR1置置0時,時,T1停止工作。停止工作。TR1由軟件置由軟件置1或清或清0。所以,用軟件可控制定時。所以,用軟件可控制定時/計數器的啟動與停止。計數器的啟動與停止。TF0(TCON.5):):T0溢出中斷請求標志位,其功能與溢出中斷請求標志位,其功能與TF1類同。類同。TR0(TCON.4):):T0運行控制位,其功能與運行控制位,其功能與TR1類同。類同。 定時定時/計數器的工作方式計數器的工作方式 1、方式、方式0 方式方式0為為13位計數位計數,由,由TL0的低的低5位(高位(高3位未用)和位未用)和TH0的的8位
35、組成。位組成。TL0的低的低5位溢出時向位溢出時向TH0進位,進位,TH0溢出時,置位溢出時,置位TCON中的中的TF0標志,標志,向向CPU發出中斷請求。發出中斷請求。定時器模式時定時器模式時有有:Nt/ Tcy 計數初值計算的公式為:計數初值計算的公式為:定時器的初值還可以采用計數個數直接取補法獲得定時器的初值還可以采用計數個數直接取補法獲得。計數模式時,計數脈沖是計數模式時,計數脈沖是T0引腳上的外部脈沖。引腳上的外部脈沖。13X=2 -N門控位門控位GATE具有特殊的作用。當具有特殊的作用。當GATE=0時,經反相后使時,經反相后使或門輸出為或門輸出為1,此時僅由,此時僅由TR0控制與
36、門的開啟,與門輸出控制與門的開啟,與門輸出1時,控制開關接通,計數開始;時,控制開關接通,計數開始;當當GATE=1時時,由外中斷引腳信號控制,由外中斷引腳信號控制或門的輸出,此時控制或門的輸出,此時控制與門的開啟由外中斷引腳信號和與門的開啟由外中斷引腳信號和TR0共同控制共同控制。當當TR0=1時,外中斷引腳信號引腳的時,外中斷引腳信號引腳的高電平啟動計數高電平啟動計數,外中斷引腳信號,外中斷引腳信號引腳的引腳的低電平停止計數低電平停止計數。這種方式常用來測量外中斷引腳上正脈沖的寬。這種方式常用來測量外中斷引腳上正脈沖的寬度。度。 16X=2 -N2、方式、方式1 方式方式1的計數位數是的計
37、數位數是16位,由位,由TL0作為低作為低8位、位、TH0作為高作為高8位,組成位,組成了了16位加位加1計數器計數器 。計數個數與計數初值的關系為:計數個數與計數初值的關系為: 8X=2 -N3、方式、方式2 方式方式2為自動重裝初值的為自動重裝初值的8位計數方式。位計數方式。 工作方式工作方式2特別適合于用作較精確的脈沖信號發生器。特別適合于用作較精確的脈沖信號發生器。 計數個數與計數初值的關系為計數個數與計數初值的關系為: 4、方式、方式3 方式方式3只適用于定時只適用于定時/計數器計數器T0,定時器定時器T1處于方式處于方式3時相當于時相當于TR1=0,停止計數。停止計數。 工作方式工
38、作方式3將將T0分成為兩個獨立的分成為兩個獨立的8位計數器位計數器TL0和和TH0 。 8X52的的Timer2l 定時器定時器2 是一個是一個16 位定時位定時/計數器。它既可當計數器。它既可當定時器定時器使用,也可作為外部事件使用,也可作為外部事件計數器使用,其工作方式由特殊功能寄存器計數器使用,其工作方式由特殊功能寄存器T2CON的的C/T2 位選擇。位選擇。定時器定時器2 有三種工作方式:捕獲方式,自動重裝載(向上或向下計數)方式和波特率發有三種工作方式:捕獲方式,自動重裝載(向上或向下計數)方式和波特率發生器方式,工作方式由生器方式,工作方式由T2CON 的控制位來選擇。的控制位來選
39、擇。l 定時器定時器2 由兩個由兩個8 位寄存器位寄存器TH2 和和TL2 組成,在定時器工作方式中,每個組成,在定時器工作方式中,每個機器機器周期周期TL2 寄存器的值加寄存器的值加1,由于一個機器周期由,由于一個機器周期由12 個振蕩時鐘構成,因此,計個振蕩時鐘構成,因此,計數速率為振蕩頻率的數速率為振蕩頻率的1/12。在計數工作方式時,當。在計數工作方式時,當T2 引腳上外部輸入信號產生引腳上外部輸入信號產生由由1 至至0 的下降沿時,寄存器的值加的下降沿時,寄存器的值加1,在這種工作方式下,每個,在這種工作方式下,每個機器周期機器周期的的S5P2 期間,對外部輸入進行采樣。若在第一個期
40、間,對外部輸入進行采樣。若在第一個機器周期機器周期中采到的值為中采到的值為1,而在,而在下一個機器周期中采到的值為下一個機器周期中采到的值為0,則在緊跟著的下一個周期的,則在緊跟著的下一個周期的S3P1 期間寄存器期間寄存器加加1。由于識別。由于識別1 至至0 的跳變需要的跳變需要2 個個機器周期機器周期(24 個振蕩周期),因此,最高個振蕩周期),因此,最高計數速率為振蕩頻率的計數速率為振蕩頻率的1/24。為確保采樣的正確性,要求輸入的電平在變化前。為確保采樣的正確性,要求輸入的電平在變化前至少保持一個完整周期的時間,以保證輸入信號至少被采樣一次。至少保持一個完整周期的時間,以保證輸入信號至
41、少被采樣一次。l TIMER2的三種方式的三種方式 RCLK+TCLK CP/RL2 TR2 MODE 0 0 1 16位自動加載方式位自動加載方式 0 1 1 16位捕捉方式位捕捉方式 1 X 1 波特率發生器方式波特率發生器方式 X X 0 不使用不使用l 捕獲方式捕獲方式 捕獲方式捕獲方式 是將是將TH2與與TL2寄存器的數據捕獲至寄存器的數據捕獲至RCAP2H和和RCPA2L寄存器中。寄存器中。使用捕獲方式,必須將使用捕獲方式,必須將T2CON寄存器的寄存器的CP/RL2置置1。 在捕獲方式下,通過在捕獲方式下,通過T2CON 控制位控制位EXEN2 來選擇兩種方式。如果來選擇兩種方式
42、。如果EXEN2=0,定時器定時器2 是一個是一個16 位定時器或計數器,計數溢出時,對位定時器或計數器,計數溢出時,對T2CON 的溢出標志的溢出標志TF2 置位,同時激活中斷。如果置位,同時激活中斷。如果EXEN2=1,定時器定時器2 完成相同的操作,而當完成相同的操作,而當T2EX 引腳外部輸入信號發生引腳外部輸入信號發生1 至至0 負跳變時,也出現負跳變時,也出現TH2 和和TL2 中的值分別中的值分別被捕獲到被捕獲到RCAP2H 和和RCAP2L 中。另外,中。另外,T2EX 引腳信號的跳變使得引腳信號的跳變使得T2CON 中的中的EXF2 置位,與置位,與TF2 相仿,相仿,EXF
43、2 也會激活中斷。捕獲方式如圖所示。也會激活中斷。捕獲方式如圖所示。l 自動重裝載自動重裝載 自動加載方式是自動將自動加載方式是自動將RCAP2H與與RCAP2L寄存器的數據載入寄存器的數據載入TH2與與TL2寄存寄存器。器。 當當定時器定時器2工作于工作于16位自動重裝載方式時,位自動重裝載方式時,T2CON的的CP/RL2 位必須置位必須置“0”。 若若EXEN2=1,定時器定時器2 的的16 位重裝載由溢出或外部輸入端位重裝載由溢出或外部輸入端T2EX 從從1 至至0 的下的下降沿觸發。這個脈沖使降沿觸發。這個脈沖使EXF2 置位,如果中斷允許,同樣產生中斷。置位,如果中斷允許,同樣產生
44、中斷。定時器定時器2 的中斷入口地址是:的中斷入口地址是:002BH 0032H 。 l 波特率發生器方式波特率發生器方式 當當T2CON中的中的TCLK 和和RCLK 置位時,定時置位時,定時/計數器計數器2 作為作為波特波特率發生器使用。率發生器使用。如果定時如果定時/計數器計數器2 作為發送器或接收器波特率發生器,其發送和接收的波特率可作為發送器或接收器波特率發生器,其發送和接收的波特率可以是不同的。以是不同的。 波特率發生器的方式與自動重裝載方式相仿,在此方式下,波特率發生器的方式與自動重裝載方式相仿,在此方式下,TH2 翻轉使翻轉使定時器定時器2 的寄存器用的寄存器用RCAP2H 和
45、和RCAP2L 中的中的16位數值重新裝載,該數值由位數值重新裝載,該數值由軟件軟件設置。設置。 在方式在方式1 和方式和方式3 中,波特率由中,波特率由定時器定時器2 的溢出速率根據下式確定:的溢出速率根據下式確定: 方式方式1和和3的的波特率波特率=定時器定時器的溢出率的溢出率/16 定時器既能工作于定時方式也能工作于計數方式,在大多數的應用中,是工定時器既能工作于定時方式也能工作于計數方式,在大多數的應用中,是工作在定時方式(作在定時方式(C/T2=0)。)。定時器定時器2 作為波特率發生器時,與作為作為波特率發生器時,與作為定時器定時器的操的操作是不同的,通常作為作是不同的,通常作為定
46、時器定時器時,在每個時,在每個機器周期機器周期(1/12 振蕩頻率)振蕩頻率)寄存器寄存器的的值加值加1,而作為,而作為波特率發生器波特率發生器使用時,在每個狀態時間(使用時,在每個狀態時間(1/2 振蕩頻率)振蕩頻率)寄存器寄存器的值加的值加1。波特率波特率的計算公式如下:的計算公式如下: 方式方式1和和3的的波特率波特率=振蕩頻率振蕩頻率/32*65536-(RCP2H,RCP2L)式中(式中(RCAP2H,RCAP2L)是)是RCAP2H 和和RCAP2L中的中的16 位無符號數。位無符號數。 定時器定時器2 作為作為波特率波特率發生器使用的電路如圖所示。發生器使用的電路如圖所示。T2C
47、ON 中的中的RCLK 或或TCLK=1 時,時,波特率波特率工作方式才有效。在工作方式才有效。在波特率發生器波特率發生器工作方式中,工作方式中,TH2 翻轉翻轉不能使不能使TF2 置位,故而不產生中斷。但若置位,故而不產生中斷。但若EXEN2 置位,且置位,且T2EX 端產生由端產生由1 至至0 的負跳變,則會使的負跳變,則會使EXF2 置位,此時并不能將(置位,此時并不能將(RCAP2H,RCAP2L)的內容)的內容重新裝入重新裝入TH2 和和TL2 中。所以,當中。所以,當定時器定時器2 作作波特率發生器波特率發生器使用時,使用時,T2EX 可可作為附加的作為附加的外部中斷外部中斷源來使
48、用。需要注意的是,當源來使用。需要注意的是,當定時器定時器2 工作于工作于波特率波特率器時,器時,作為定時器運行(作為定時器運行(TR2=1)時,并不能訪問)時,并不能訪問TH2 和和TL2。因為此時每個狀態。因為此時每個狀態時時間定時器間定時器都會加都會加1,對其讀寫將得到一個不確定的數值。,對其讀寫將得到一個不確定的數值。 然而,對然而,對RCAP2 則可讀而不可寫,因為寫入操作將是重新裝載,寫入操作則可讀而不可寫,因為寫入操作將是重新裝載,寫入操作可能令寫和可能令寫和/或重裝載出錯。在訪問或重裝載出錯。在訪問定時器定時器2或或RCAP2寄存器寄存器之前,應將之前,應將定時器定時器關閉(清
49、除關閉(清除TR2)。)。T2CON寄存器寄存器 T2CON是是Timer2的控制寄存器,其各位功能如下:的控制寄存器,其各位功能如下:TF2:定時定時/計數器計數器2溢出標志,溢出標志,T2溢出時置位,并申請中斷。只能用軟件溢出時置位,并申請中斷。只能用軟件清除,但清除,但T2作為波特率發生器使用的時候,作為波特率發生器使用的時候,(即即RCLK=1或或TCLK=1),T2溢溢出時不對出時不對TF2置位。置位。EXF2:Timer2的外部標志,當的外部標志,當EXEN2=1時,且時,且T2EX引腳(引腳(P1.0)出現負)出現負跳變而造成跳變而造成T2的捕獲或重裝的時候,的捕獲或重裝的時候,
50、EXF2置位并申請中斷。置位并申請中斷。EXF2也是只也是只能通過軟件來清除的。能通過軟件來清除的。RCLK :串行接口接受時鐘標志位,只能通過軟件的置位或清除;用來選串行接口接受時鐘標志位,只能通過軟件的置位或清除;用來選擇擇T1(RCLK=0)還是)還是T2(RCLK=1)來作為串行接收的波特率產生器)來作為串行接收的波特率產生器TCLK:串行發送時鐘標志,只能通過軟件的置位或清除;用來選擇串行發送時鐘標志,只能通過軟件的置位或清除;用來選擇T1(TCLK=0)還是)還是T2(TCLK=1)來作為串行發送的波特率產生器。)來作為串行發送的波特率產生器。EXEN2 :T2的外部允許標志,只能
51、通過軟件的置位或清除;的外部允許標志,只能通過軟件的置位或清除;EXEN2=0:禁止外部時鐘觸發禁止外部時鐘觸發T2;EXEN2=1:當:當T2未用作串行波特率發生器時,允許未用作串行波特率發生器時,允許外部時鐘觸發外部時鐘觸發T2,當,當T2EX引腳輸入一個負跳變的時候,將引起引腳輸入一個負跳變的時候,將引起T2的捕獲的捕獲或重裝,并置位或重裝,并置位EXF2,申請中斷。,申請中斷。TR2 :T2的啟動控制標志;的啟動控制標志;TR2=0:停止:停止T2;TR2=1:啟動:啟動T2C/T2:T2的定時方式或計數方式選擇位。只能通過軟件的置位或清除;的定時方式或計數方式選擇位。只能通過軟件的置
52、位或清除;C/T2=0:選擇:選擇T2為定時器方式;為定時器方式;C/T2=1:選擇:選擇T2為計數器方式,下降沿為計數器方式,下降沿觸發。觸發。CP/RT2:捕獲捕獲/重裝載標志,只能通過軟件的置位或清除。重裝載標志,只能通過軟件的置位或清除。CP/RT2=0時,選擇重裝時,選擇重裝載方式,這時若載方式,這時若T2溢出(溢出(EXEN2=0時)或者時)或者T2EX引腳(引腳(P1.0)出現負跳變)出現負跳變(EXEN2=1時),將會引起時),將會引起T2重裝載;重裝載;CP/RT2=1時,選擇捕獲方式,這時若時,選擇捕獲方式,這時若T2EX引腳(引腳(P1.0)出現負跳變()出現負跳變(EX
53、EN2=1時),將會引起時),將會引起T2捕獲操作。但是如果捕獲操作。但是如果RCLK=1或或TCLK=1時,時,CP/RT2控制位不起作用的,被強制工作于定時器溢出自動控制位不起作用的,被強制工作于定時器溢出自動重裝載模式。重裝載模式。 8X51的節電方式的節電方式 “節電方式節電方式”就是讓系統耗電量低,同時又能保持系統中的數據。就是讓系統耗電量低,同時又能保持系統中的數據。8051的的CHMOS版本提供兩種節電方式,即待機方式(版本提供兩種節電方式,即待機方式(idle MODE簡稱簡稱IDL方式)與掉方式)與掉電方式(電方式(power-down mode簡稱簡稱PD方式)。方式)。
54、如圖為如圖為8051內部功率控制示意圖,其中內部功率控制示意圖,其中IDL端點與端點與PD端點連接到端點連接到PCON的的IDL和和PD位。位。1、待機方式、待機方式 若若IDL=1,進入待機方式。,進入待機方式。 除了中斷、串行口、定時器除了中斷、串行口、定時器/計數器等仍提供時鐘外,計數器等仍提供時鐘外,CPU的其他部分均無的其他部分均無時鐘。因此,時鐘。因此,CPU將停止,而其中各寄存器、堆棧、存儲器、輸入將停止,而其中各寄存器、堆棧、存儲器、輸入/輸出端口等輸出端口等的數據并不會消失。的數據并不會消失。 IDL=0,結束待機,結束待機,CPU恢復正常運行。若要使恢復正常運行。若要使ID
55、L=0,可采用以下方法:,可采用以下方法:a.啟動一個中斷,在中斷服務程序中將啟動一個中斷,在中斷服務程序中將IDL設置為設置為0。b.讓系統復位,但系統復位后,各寄存器、輸入讓系統復位,但系統復位后,各寄存器、輸入/輸出端口等的數據將消失。輸出端口等的數據將消失。2、掉電方式、掉電方式 若若PD=1,則進入掉電方式,此時完全不提供時鐘脈沖,功率損耗降為最低。,則進入掉電方式,此時完全不提供時鐘脈沖,功率損耗降為最低。若要結束掉電方式,必須讓系統復位。若要結束掉電方式,必須讓系統復位。3、PCON電源控制寄存器電源控制寄存器 SMOD:波特率倍增位:波特率倍增位 GF1、GF0:通用標志位用戶
56、可自行使用。:通用標志位用戶可自行使用。 PD:掉電方式位掉電方式位 IDL:待機方式位:待機方式位 看門狗定時器看門狗定時器 WDT是一種微控制器防止是一種微控制器防止“跑飛跑飛”的器件,當系統超過某個時間沒有動作時,的器件,當系統超過某個時間沒有動作時,WDT就使就使CPU自動復位,讓系統返回正常的運行狀態。自動復位,讓系統返回正常的運行狀態。 89S51內部的看門狗定時器是由一個內部的看門狗定時器是由一個14位定時器及位定時器及WDTRST寄存器所構成。寄存器所構成。WDT的預置狀態是停用(的預置狀態是停用(disable),若要啟用,則需要依次將),若要啟用,則需要依次將0X1E、0X
57、E1放入放入WDTRST寄存器,此寄存器的地址是寄存器,此寄存器的地址是0XA6。 啟用啟用WDT后,此計數器將隨時鐘脈沖的機器周期而增加(一個機器周期后,此計數器將隨時鐘脈沖的機器周期而增加(一個機器周期,WDT加加1),復位),復位WDT與啟用與啟用WDT的方法一樣,程序必須在的方法一樣,程序必須在WDT溢出之前將溢出之前將0X1E、0XE1依次寫入依次寫入WDTRST寄存器。寄存器。1、啟用、啟用WDT與復位與復位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 進入掉電方式前復位進入掉電方式前復位WDT。3、在待機方式下的、在待機方式下的WDT 在在AUXR寄存器在,寄存器在,WDIELE位用來決定位用來決定WDT在待機方式下是否繼續計數。在待機方式下是否繼續計數。若在待機中若在待機中WDT繼續計數,可周期性退出待機方式,復位繼續計數,可周期性退出待機方式,復位WDT,再進入待機。,再進入待機。 sfr AUXR=0 xa2; AUXR=0 x10; 定時定時/計數器應用舉例計數器應用舉例 定時器
59、定時器/計數器有兩種應用方式,即中斷方式和查詢方式。一般來說,計數器有兩種應用方式,即中斷方式和查詢方式。一般來說,對定時器對定時器/計數器的初始化程序應完成如下工作:計數器的初始化程序應完成如下工作:對對TMOD賦值,以確定賦值,以確定T0和和T1的工作方式。的工作方式。計算初值計算初值,并將其寫入并將其寫入TH0、TL0或或TH1、TL1。中斷方式時,則對中斷方式時,則對IE賦值,開放中斷。賦值,開放中斷。使使TR0或或TR1置位,啟動定時置位,啟動定時/計數器定時或計數。計數器定時或計數。1、閃爍燈、閃爍燈查詢方式查詢方式 目的是了解目的是了解8051定時器應用,了解用定時器應用,了解用
60、C51設計定時器中斷程序的方法。設計定時器中斷程序的方法。如圖電路。設計一個程序,每如圖電路。設計一個程序,每0.28S 8個個LED交替閃爍一次。交替閃爍一次。 本程序中,定時器采用查詢的方式工作,即本程序中,定時器采用查詢的方式工作,即CPU在主程序中不斷查詢在主程序中不斷查詢定時器是否溢出,而不需要引起定時器中斷,進入中斷服務程序去實現定時器是否溢出,而不需要引起定時器中斷,進入中斷服務程序去實現定時功能。定時功能。 在在12MHz下,若以下,若以MODE0工作,每次最多可計數工作,每次最多可計數8192,約,約8ms。若。若計數計數5000,則為,則為5ms,需重復,需重復50次,才能延時次,才能延時
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 著作版權登記管理辦法
- 遵義公路注漿管理辦法
- 規劃設計施工管理辦法
- 建筑工地6S管理實施計劃
- 部編版五年級二十年后的家鄉作文寫作心得范文
- 2025年南寧市事業單位招聘考試綜合類專業技能測試試卷
- 中國硬件嵌入式系統咨詢行業市場發展現狀及投資戰略咨詢報告
- 周轉編制使用管理辦法
- 以理解為基:高中數學翻轉課堂教學模式的創新與實踐
- 2025年大學統計學期末考試題庫:時間序列分析時間序列預測試題
- DB11T 1430-2017 古樹名木雷電防護技術規范
- 應急廣播施工方案
- 公司增資擴股說明書范文
- 雙輪銑攪拌樁施工方案
- DG-TJ 08-2398-2022 纖維增強復合材料筋混凝土結構技術標準
- 《公頃和平方千米》(課件)人教版四年級數學上冊
- NBT 35095-2017 水電工程小流域水文計算規范
- 煙葉道路運輸服務方案
- 胎膜早破護理查房完整版
- 急性左心衰護理查房課件
- 用于生態修復的粉煤灰
評論
0/150
提交評論