單片機定時計數(shù)工作原理_第1頁
單片機定時計數(shù)工作原理_第2頁
單片機定時計數(shù)工作原理_第3頁
單片機定時計數(shù)工作原理_第4頁
單片機定時計數(shù)工作原理_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第六章第六章 單片微機的定時器單片微機的定時器/計數(shù)器計數(shù)器原理及應用原理及應用通常采用以下三種方法來實現(xiàn)定時或計數(shù):通常采用以下三種方法來實現(xiàn)定時或計數(shù):1硬件法硬件法硬件定時功能完全由硬件電路完成,不占用硬件定時功能完全由硬件電路完成,不占用CPU時間。時間。但當要求改變定時時間時,只能通過改變電路中的元件參數(shù)來但當要求改變定時時間時,只能通過改變電路中的元件參數(shù)來實現(xiàn),很不靈活。實現(xiàn),很不靈活。2軟件法軟件法軟件定時是執(zhí)行一段循環(huán)程序來進行時間延時,優(yōu)點是軟件定時是執(zhí)行一段循環(huán)程序來進行時間延時,優(yōu)點是無額外的硬件開銷,時間比較精確。但犧牲了無額外的硬件開銷,時間比較精確。但犧牲了CPU

2、的時間。的時間。3可編程定時器計數(shù)器可編程定時器計數(shù)器6.1 概述概述可編程定時器計數(shù)器最大特點是可以通過軟件編程來可編程定時器計數(shù)器最大特點是可以通過軟件編程來實現(xiàn)定時時間的改變,通過中斷或查詢方法來完成定時功能或實現(xiàn)定時時間的改變,通過中斷或查詢方法來完成定時功能或計數(shù)功能。有專門的可編程定時器計數(shù)器芯片可供選用,比計數(shù)功能。有專門的可編程定時器計數(shù)器芯片可供選用,比如如Intel 8253。還有一些日歷時鐘芯片,如菲利浦公司的。還有一些日歷時鐘芯片,如菲利浦公司的PCF8583等。等。目前單片微機中往往已配備了定時器計數(shù)器(目前單片微機中往往已配備了定時器計數(shù)器(timercounter

3、)。)。 80C51芯片內包含有兩個芯片內包含有兩個16位的定時器計數(shù)器:位的定時器計數(shù)器:T0和和T1;而;而80C52包含有三個包含有三個16位的定時器計數(shù)器:位的定時器計數(shù)器:T0、T1和和T2;在在80C51系列的部分產品(如系列的部分產品(如Philips公司的公司的80C552)中,還包)中,還包含有一個用做看門狗的含有一個用做看門狗的8位定時器(位定時器(T3)。)。定時器計數(shù)器的核心是一個加定時器計數(shù)器的核心是一個加1計數(shù)器其基本功能是計數(shù)器其基本功能是計數(shù)加計數(shù)加1。若是對單片微機的若是對單片微機的T0、T1 或或T2引腳上輸入的一個引腳上輸入的一個1到到0的跳變進行計數(shù)增的

4、跳變進行計數(shù)增l,即是計數(shù)功能。,即是計數(shù)功能。若是對單片微機內部的機器周期進行計數(shù),從而得到定若是對單片微機內部的機器周期進行計數(shù),從而得到定時,這就是定時功能。時,這就是定時功能。定時功能和計數(shù)功能的設定和控制都是通過軟件來設定定時功能和計數(shù)功能的設定和控制都是通過軟件來設定的。的。80C51的定時器的定時器/計數(shù)器除了可用作定時器或計數(shù)器之外,計數(shù)器除了可用作定時器或計數(shù)器之外,還可用作串行接口的波特率發(fā)生器。還可用作串行接口的波特率發(fā)生器。定時器計數(shù)器定時器計數(shù)器T0、T1 的內部結構簡圖示于的內部結構簡圖示于圖圖61中。中。從圖中可以看出,定時器計數(shù)器從圖中可以看出,定時器計數(shù)器T0

5、、T1由以下幾部分組成:由以下幾部分組成: 計數(shù)器計數(shù)器TH0、TL0和和TH1、TL1; 特殊功能寄存器特殊功能寄存器TMOD、TCON; 時鐘分頻器;時鐘分頻器; 輸入引腳輸入引腳T0、T1。6.2 定時器計數(shù)器定時器計數(shù)器T0、T1 定時器計數(shù)器定時器計數(shù)器T0、T1 的方式寄存器的方式寄存器TMOD 字節(jié)地址為字節(jié)地址為89H。TMOD的格式如下:低的格式如下:低4位用來定義位用來定義T0,高,高4位用來定義位用來定義T16.2.1 與定時器計數(shù)器與定時器計數(shù)器T0、T1有關的特殊功能寄存器有關的特殊功能寄存器D7 D6 D5 D4 D3 D2 D1 D0GATE C/TM1M0GAT

6、E C/TM1M0T1T0各位的意義如下:各位的意義如下: GATE門控位。門控位。 GATE1時,由外部中斷引腳、和時,由外部中斷引腳、和TR0、TR1共同來啟動共同來啟動定時器。當定時器。當引腳為高電平時,引腳為高電平時,TR0置位啟動定時器置位啟動定時器T0;當引;當引腳為高電平時,腳為高電平時,TR1置位,啟動定時器置位,啟動定時器T1。 GATE0時,僅由時,僅由TR0和和TR1置位來啟動定時器置位來啟動定時器T0和和T1。 CT功能選擇位。功能選擇位。C/T1時,選擇計數(shù)功能;時,選擇計數(shù)功能;C/T0時,選擇定時功能。時,選擇定時功能。T0、T1 的計數(shù)、定時功能是通過的計數(shù)、定

7、時功能是通過TMOD中的位來選擇的。中的位來選擇的。 定時器,設置定時器,設置C/T0計數(shù)輸入信號是內部時鐘脈沖,每個計數(shù)輸入信號是內部時鐘脈沖,每個機器周期機器周期使寄存器的值增使寄存器的值增1。每個機器周期等于每個機器周期等于12個振蕩周期,故計數(shù)速率為振蕩周期的個振蕩周期,故計數(shù)速率為振蕩周期的112。當采用。當采用12MHz的晶體時,計數(shù)速率為的晶體時,計數(shù)速率為1MHz。定時器的定時。定時器的定時時間,與系統(tǒng)的振蕩頻率時間,與系統(tǒng)的振蕩頻率fosc、計數(shù)器的長度和初始值等有關。、計數(shù)器的長度和初始值等有關。 計數(shù)器,設置計數(shù)器,設置C/T1這時,通過引腳這時,通過引腳T0(P3.4)

8、和)和T1(P3.5)對外部信號進行計對外部信號進行計數(shù)。在每個機器周期的數(shù)。在每個機器周期的S5P2期間,期間,CPU采樣引腳的輸入電平。若采樣引腳的輸入電平。若前一機器周期采樣值為前一機器周期采樣值為1,下一機器周期采樣值為,下一機器周期采樣值為0,則計數(shù)器增,則計數(shù)器增1,此后的機器周期,此后的機器周期S3P1期間,新的計數(shù)值裝入計數(shù)器。期間,新的計數(shù)值裝入計數(shù)器。所以檢測一個所以檢測一個1到到0的跳變的跳變 需要兩個機器周期,故計數(shù)脈沖頻率需要兩個機器周期,故計數(shù)脈沖頻率不能高于振蕩脈沖頻率的不能高于振蕩脈沖頻率的124。 M1、M0工作方式選擇位。工作方式選擇位。 由于有由于有M1和

9、和M0兩位,可以有四種工作方式,如兩位,可以有四種工作方式,如表表61所所示。示。 定時器計數(shù)器定時器計數(shù)器T0、T1 的控制寄存器的控制寄存器TCON 控制寄存器控制寄存器TCON是一個逐位定義的是一個逐位定義的8位寄存器,字節(jié)地址為位寄存器,字節(jié)地址為88H,位尋址的地址為,位尋址的地址為88H8FH。其格式如下:。其格式如下:位地址位地址 8FH 8EH8DH8CH8BH8AH89H88H位功能位功能 TF1TR1TF0TR0IE1IT1IE0IT0其中各位的意義如下:其中各位的意義如下: TF1(TCON7)定時器計數(shù)器定時器計數(shù)器T1的溢出標志。的溢出標志。 T1溢出時,該位由內部硬

10、件置位。若中斷開放,即響應溢出時,該位由內部硬件置位。若中斷開放,即響應中斷,進入中斷服務程序后,由硬件自動清中斷,進入中斷服務程序后,由硬件自動清0;若中斷禁止,;若中斷禁止,可用于判跳,用軟件清可用于判跳,用軟件清0。 TR1(TCON6)T1的運行控制位。的運行控制位。用軟件控制,置用軟件控制,置 l時,啟動時,啟動 T1;清;清0時,停止時,停止 T1。 TF0(TCON5)T0的溢出標志。的溢出標志。T0溢出時,該位由內部硬件置位。若中斷開放,即響應溢出時,該位由內部硬件置位。若中斷開放,即響應中斷,進入中斷服務程序后,由硬件自動清中斷,進入中斷服務程序后,由硬件自動清0;若中斷禁止

11、,;若中斷禁止,可用于判跳,用軟件清可用于判跳,用軟件清0。 TR0(TCON4)T0的運行控制位。的運行控制位。用軟件控制,置用軟件控制,置1時,啟動時,啟動T0;清;清 0時,停止時,停止 T0。IE1(TCON3)外部中斷外部中斷1下降沿觸發(fā)標志位。下降沿觸發(fā)標志位。 IE0(TCONI)外部中斷外部中斷0下降沿觸發(fā)標志位。下降沿觸發(fā)標志位。 IT1(TCON0)外部中斷外部中斷1觸發(fā)類型選擇位。觸發(fā)類型選擇位。 IT0(TCON0)外部中斷外部中斷0觸發(fā)類型選擇位。觸發(fā)類型選擇位。 TCON的低的低4位與中斷有關,已在第五章位與中斷有關,已在第五章“中斷系統(tǒng)中斷系統(tǒng)”中討論中討論過。過

12、。 復位后,復位后,TCON的所有位均清的所有位均清0。T0和和T1均是關斷的。均是關斷的。 定時器計數(shù)器定時器計數(shù)器T0、T1 的數(shù)據(jù)寄存器的數(shù)據(jù)寄存器由由TH1(地址為地址為8DH)、TL1(地址為地址為8BH)和和TH0(地址為地址為8CH)、TL0(地址為地址為8AH)寄存器所組成。復位后,所有這四個寄寄存器所組成。復位后,所有這四個寄存器全部清零。存器全部清零。 定時器定時器/計數(shù)器中斷計數(shù)器中斷 中斷允許寄存器中斷允許寄存器IE EA位位-中斷允許總控制位中斷允許總控制位 ET0位、位、ET1位、位、ET2位位-T0、T1和和T2的中斷允許控制位。的中斷允許控制位。 某位某位=0,

13、則禁止對應定時器,則禁止對應定時器/計數(shù)器的中斷。計數(shù)器的中斷。某位某位=1,則允許對應定時器,則允許對應定時器/計數(shù)器的中斷。計數(shù)器的中斷。 中斷矢量中斷矢量定時器定時器T0:000BH定時器定時器T1:001BH定時器定時器T2:002BH 中斷優(yōu)先級寄存器中斷優(yōu)先級寄存器IP PT0PT0位、位、PT1PT1位、位、PT2PT2位位-T0-T0、T1T1和和T2T2中斷優(yōu)先級控制位。中斷優(yōu)先級控制位。某位為某位為0 0,則相應的定時器,則相應的定時器/ /計數(shù)器的中斷為低優(yōu)先級;計數(shù)器的中斷為低優(yōu)先級;某位為某位為1,則相應的定時器,則相應的定時器/計數(shù)器的中斷為高優(yōu)先級。計數(shù)器的中斷為

14、高優(yōu)先級。從從圖圖62中可看到:中可看到:C/T位的電平為位的電平為“0”或或“1”,用來設定是作定時器或計數(shù)器。,用來設定是作定時器或計數(shù)器。門控位門控位GATE可用作對可用作對INTx引腳上的高電平時間進行計量。引腳上的高電平時間進行計量。由由圖圖62上可看出,當上可看出,當GATE0時,時,A點為高電平,定時器計數(shù)點為高電平,定時器計數(shù)器的啟動停止由器的啟動停止由 TRx決定。決定。TRx1,定時器計數(shù)器啟動;,定時器計數(shù)器啟動;TRx0,定時器計數(shù)器停止。,定時器計數(shù)器停止。 當當GATE1時時A點的電位由點的電位由INTx決定,因而決定,因而B點的電位就由點的電位就由TRx和和INT

15、x決定,即定時器計數(shù)器的啟動停止由決定,即定時器計數(shù)器的啟動停止由TRx和和INTx兩個條件決定。兩個條件決定。 計數(shù)溢出時,計數(shù)溢出時,TFx置位。如果中斷允許,置位。如果中斷允許,CPU響應中斷并轉入中響應中斷并轉入中斷服務程序,由內部硬件清斷服務程序,由內部硬件清TFx。TFx也可以由程序查詢和清零。也可以由程序查詢和清零。 方式方式1:16位定時器位定時器/計數(shù)器計數(shù)器 當當TMOD中的中的M10、M0l時,選定方式時,選定方式1工作。工作。方式方式1時,時,T0、T1的邏輯結構如的邏輯結構如圖圖63所示。這種方式下,計所示。這種方式下,計數(shù)寄存器由數(shù)寄存器由16位組成,位組成,THx

16、高八位和高八位和TLx的低的低8位。位。計數(shù)時,計數(shù)時,TLx溢出后向溢出后向THx進位,進位,THx溢出后將溢出后將TFx置置位,如果中斷允許,位,如果中斷允許,CPU響應中斷并轉入中斷服務程序,由響應中斷并轉入中斷服務程序,由內部硬件清內部硬件清TFx。TFx也可以由程序查詢和清零。也可以由程序查詢和清零。 方式方式2:定時常數(shù)自動重裝載的:定時常數(shù)自動重裝載的8位定時器位定時器/計數(shù)器計數(shù)器 當當TMOD中的中的M11、M00時,選定方式時,選定方式2工作。這種方式工作。這種方式是將是將16位計數(shù)寄存器分為兩個位計數(shù)寄存器分為兩個8位寄存器,組成一個可重載的位寄存器,組成一個可重載的8位

17、計數(shù)寄存器。方式位計數(shù)寄存器。方式2時定時器時定時器/計數(shù)器計數(shù)器T0、T1的邏輯結構如的邏輯結構如圖圖64所示。所示。在方式在方式2中,中,TLx作為作為8位計數(shù)寄存器,位計數(shù)寄存器,THx作為作為8位計數(shù)常數(shù)位計數(shù)常數(shù)寄存器。寄存器。 當當TLx計數(shù)溢出時,一方面將計數(shù)溢出時,一方面將TFx置位,并向置位,并向CPU申請中斷;申請中斷;另一方面將另一方面將THx的內容重新裝入的內容重新裝入TLx中,繼續(xù)計數(shù)。中,繼續(xù)計數(shù)。根據(jù)對根據(jù)對TMOD寄存器中寄存器中M1和和M0的設定,的設定,T0可選擇四種可選擇四種不同的工作方式,而不同的工作方式,而T1只具有三種工作方式(即方式只具有三種工作方

18、式(即方式0、方式、方式1和方式和方式2)。)。 方式方式0 0:1313位定時器位定時器/ /計數(shù)器計數(shù)器當當TMOD中的中的M10、M00時,選定方式時,選定方式0工作。方式工作。方式0時的結構如時的結構如圖圖62所示。這種方式下,計數(shù)寄存器由所示。這種方式下,計數(shù)寄存器由13位組成,位組成,即即THx高八位高八位(作計數(shù)器作計數(shù)器)和和TLx的低的低5位位(32分頻的定標器分頻的定標器)構成。構成。TLx的高的高3位未用。位未用。計數(shù)時,計數(shù)時,TLx的低的低5位溢出后向位溢出后向THx進位,進位,THx溢出后將溢出后將TFx置置位,并向位,并向CPU申請中斷。申請中斷。6.2.2 6.

19、2.2 定時器計數(shù)器定時器計數(shù)器T0T0、T1 T1 的工作方式的工作方式重新裝入不影響重新裝入不影響THx的內容。的內容。方式方式2適合于作為串行口波特率發(fā)生器使用。適合于作為串行口波特率發(fā)生器使用。 方式方式3當當TMOD中的中的M1l、M01時,選定方式時,選定方式3工作。這種方式是是將工作。這種方式是是將T0分為一個分為一個8位定時器計數(shù)器和一個位定時器計數(shù)器和一個 8位定時器,位定時器,TL0用于用于 8位定位定時器計數(shù)器,時器計數(shù)器,TH0用于用于8位定時器。方式位定時器。方式3時定時器計數(shù)器時定時器計數(shù)器T0、T1邏輯結構分別如邏輯結構分別如圖圖65、圖圖66所示。所示。 工作方

20、式工作方式3下的定時器下的定時器/計數(shù)器計數(shù)器T0 方式方式3時,時,T0的結構見的結構見圖圖65 所示。其工作與方式所示。其工作與方式0時相同,只是此時相同,只是此時的計數(shù)器為時的計數(shù)器為8位計數(shù)器位計數(shù)器TL0,它占用了,它占用了T0的的GATE、INT0、啟動、啟動停止控制位停止控制位TR0、T0引腳引腳 (P3.4) 以及以及 計數(shù)溢出標志位計數(shù)溢出標志位TF 0和和T0的中斷矢量的中斷矢量(地址為地址為000BH)等。等。TH0所構成的定時器只能作為定時器用,因為此時的外部引所構成的定時器只能作為定時器用,因為此時的外部引腳腳T0已為定時器計數(shù)器已為定時器計數(shù)器TL0所占用。這時它占

21、用了所占用。這時它占用了T1的啟動的啟動停止控制位停止控制位TR1、計數(shù)溢出標志位、計數(shù)溢出標志位TF1及及T1中斷矢量中斷矢量(地址為地址為001BH) 。T0方式方式3時,時,T1的結構如的結構如圖圖66所示,所示,T1只可選方式只可選方式0、1或或2。由于此時計數(shù)溢出標志位由于此時計數(shù)溢出標志位TF1及及T1中斷矢量中斷矢量(地址為地址為001BH)已被已被TH0所占用,所以所占用,所以T1僅能作為波特率發(fā)生器或其它不用中斷的僅能作為波特率發(fā)生器或其它不用中斷的地方。作串行口波特率發(fā)生器時,地方。作串行口波特率發(fā)生器時,T1的計數(shù)輸出直接去串行口,的計數(shù)輸出直接去串行口,只需設置好工作方

22、式,串行口波特率發(fā)生器自動開始運行,如只需設置好工作方式,串行口波特率發(fā)生器自動開始運行,如要停止工作,只需向要停止工作,只需向T1送一個設為工作方式送一個設為工作方式3的控制字即可。的控制字即可。80C52中的中的T2是一個是一個16位的、具有自動重裝載和捕獲能位的、具有自動重裝載和捕獲能力的定時器計數(shù)器。在力的定時器計數(shù)器。在T2的內部,除了兩個的內部,除了兩個8位計數(shù)器位計數(shù)器TL2、TH2和控制寄存器和控制寄存器T2CON及及T2MOD之外,還設置有捕獲寄存之外,還設置有捕獲寄存器器RCAP2L(低字節(jié))和(低字節(jié))和RCAP2H(高字節(jié))。(高字節(jié))。T2的計數(shù)脈沖的計數(shù)脈沖源可以有

23、兩個:一個是內部機器周期,另一個是由源可以有兩個:一個是內部機器周期,另一個是由T2(P10)端輸入的外部計數(shù)脈沖。端輸入的外部計數(shù)脈沖。T2象象T0、T1一樣,既可用做定時器,一樣,既可用做定時器,也可用做計數(shù)器,由也可用做計數(shù)器,由T2CON中的中的C/T位的電平所決定。位的電平所決定。T2有有3種工作方式種工作方式 自動重裝載、俘獲和波特率發(fā)生器方式,由自動重裝載、俘獲和波特率發(fā)生器方式,由T2CON中有關位決定。中有關位決定。輸入引腳輸入引腳T2(P10)是外部計數(shù)脈沖輸入端;輸入引)是外部計數(shù)脈沖輸入端;輸入引腳腳T2EX(P11)是外部控制信號輸入端。)是外部控制信號輸入端。 6.

24、3 6.3 定時器計數(shù)器定時器計數(shù)器T2T2 控制寄存器控制寄存器 T2CON T2控制寄存器控制寄存器T2CON是一個逐位定義的特殊功能寄存器,是一個逐位定義的特殊功能寄存器,其字節(jié)地址為其字節(jié)地址為C8HC8H,位地址為,位地址為C8HC8HCFHCFH。其格式如下:。其格式如下:位地址位地址 CFHCEHCDHCCHCBHCAHC9HC8H位功能位功能 TF2EXF2RCLKTCLKEXEN2TR2/T2CP/RL2 TF2(T2CON7)T2 T2 溢出標志。溢出標志。 定時器定時器T2T2溢出時置位,并申請中斷。只能靠軟件清除。但在波溢出時置位,并申請中斷。只能靠軟件清除。但在波特率

25、發(fā)生器方式下,也即特率發(fā)生器方式下,也即RCLK1或或TCLK1時,定時器溢出不時,定時器溢出不對對TF2TF2置位。置位。 EXF2(T2CON6)T2外部標志。外部標志。 當當EXEN21,且,且T2EX引腳上出現(xiàn)負跳變而造成捕獲或重裝載時,引腳上出現(xiàn)負跳變而造成捕獲或重裝載時,6.3.1 6.3.1 定時器計數(shù)器定時器計數(shù)器T2T2中的特殊功能寄存器中的特殊功能寄存器EXF2置位,申請中斷。這時若已允許置位,申請中斷。這時若已允許T2中斷,中斷,CPU將響應中將響應中斷,轉向中斷服務程序。斷,轉向中斷服務程序。EXF2要靠軟件來清除。要靠軟件來清除。 RCLK(T2CON5)接收時鐘標志

26、。接收時鐘標志。 靠軟件置位或清除,用以選擇靠軟件置位或清除,用以選擇T2或或T1作串行口接收波特率作串行口接收波特率發(fā)生器。發(fā)生器。RCLK1時,用時,用T2溢出脈沖作為串行口的接收時鐘;溢出脈沖作為串行口的接收時鐘;RCLK0時,用時,用T1的溢出脈沖作接收時鐘。的溢出脈沖作接收時鐘。 TCLK(T2CON4)發(fā)送時鐘標志。發(fā)送時鐘標志。 靠軟件置位或清除,用以選擇靠軟件置位或清除,用以選擇T2或或T1作串行口發(fā)送波特率發(fā)作串行口發(fā)送波特率發(fā)生器。生器。TCLKl時,用時,用T2溢出脈沖作為串行口的發(fā)送時鐘;溢出脈沖作為串行口的發(fā)送時鐘;TCLK0時,用時,用T1的溢出脈沖作發(fā)送時鐘。的溢

27、出脈沖作發(fā)送時鐘。 EXEN2(T2CONT2CON3 3)T2T2外部允許標志。外部允許標志。 靠軟件設置或清除,以允許或禁止用外部信號來觸發(fā)捕獲靠軟件設置或清除,以允許或禁止用外部信號來觸發(fā)捕獲或重裝載操作。當或重裝載操作。當EXEN2EXEN2l l時,若時,若T2T2未用作串行口的波特率發(fā)生未用作串行口的波特率發(fā)生器,則在器,則在T2EXT2EX端出現(xiàn)的信號負跳變時,將造成端出現(xiàn)的信號負跳變時,將造成T2T2捕獲或重裝載,捕獲或重裝載,并置并置EXF2EXF2標志為標志為 1 1,請求中斷。,請求中斷。EXEN2EXEN20 0時,時,T2EXT2EX端的外部信號端的外部信號不起作用。

28、不起作用。 TR2(T2CONT2CON2 2)T2T2運行控制位。運行控制位。 靠軟件設置或清除,以決定靠軟件設置或清除,以決定T2T2是否運行。是否運行。TR2TR21 1,啟動,啟動T2T2,否則停止。否則停止。 C/T2(T2CONT2CON1 1)T2T2的定時器方式或計數(shù)器方式選擇位。的定時器方式或計數(shù)器方式選擇位。 靠軟件設置或清除??寇浖O置或清除。T2T2有計數(shù)和定時兩種功能有計數(shù)和定時兩種功能, ,,由控制位,由控制位C/T2C/T2決決定。定。C/T2C/T20 0時,選擇定時器工作方式。時,選擇定時器工作方式。TH2TH2和和TL2TL2對機器周期進行計數(shù)。對機器周期進

29、行計數(shù)。每個機器周期使每個機器周期使TL2TL2寄存器的值增寄存器的值增1 1。計數(shù)脈沖的頻率為。計數(shù)脈沖的頻率為1 11212振蕩振蕩器頻率。器頻率。 C CT2T21 1時,選擇計數(shù)器工作方式,下降沿觸發(fā)。計數(shù)脈沖自時,選擇計數(shù)器工作方式,下降沿觸發(fā)。計數(shù)脈沖自T2T2(P1P10 0)引腳輸入,)引腳輸入,TH2TH2和和TL2TL2作外部信號脈沖計數(shù)器用,每當外作外部信號脈沖計數(shù)器用,每當外部脈沖負跳變時,計數(shù)器值增部脈沖負跳變時,計數(shù)器值增1 1。其工作情況和時序關系與定時器。其工作情況和時序關系與定時器計數(shù)器計數(shù)器T0T0和和T1T1的完全一樣,對外部計數(shù)脈沖的要求也相同。的完全一

30、樣,對外部計數(shù)脈沖的要求也相同。在每在每個機器周期的個機器周期的S5P2期間,期間,CPU采樣引腳的輸入電平。若前一機器周采樣引腳的輸入電平。若前一機器周期采樣值為期采樣值為1,下一機器周期采樣值為,下一機器周期采樣值為0,則計數(shù)器增,則計數(shù)器增1,此后的機,此后的機器周期器周期S3P1期間,新的計數(shù)值裝入計數(shù)器。所以檢測一個期間,新的計數(shù)值裝入計數(shù)器。所以檢測一個1到到0的跳的跳變需要兩個機器周期,故變需要兩個機器周期,故外部脈沖頻率不超過振蕩器頻率的外部脈沖頻率不超過振蕩器頻率的1 12424。 CPRL2(T2CON0)捕獲重裝載標志。捕獲重裝載標志。用軟件設置或清除。用軟件設置或清除。

31、CPCPRL2RL2l l選擇捕獲功能,這時若選擇捕獲功能,這時若EXEN2EXEN21 1,且,且T2EXT2EX端的信號負跳變時,發(fā)生捕獲操作。端的信號負跳變時,發(fā)生捕獲操作。CPCPRL2RL20 0,選擇重裝載功能,這時若選擇重裝載功能,這時若T2T2溢出或在溢出或在EXEN2EXEN21 1條件下條件下 T2EXT2EX端信號端信號負跳變,都會造成自動重裝載操作。當負跳變,都會造成自動重裝載操作。當RCLKRCLKl l或或TCLKTCLKl l時,時,CPRL2RL2控制位不起作用,控制位不起作用,T2 T2 被強制工作于重裝載方式。重裝載發(fā)生被強制工作于重裝載方式。重裝載發(fā)生于于

32、T2T2溢出時,常用來作波特率發(fā)生器。溢出時,常用來作波特率發(fā)生器。 T2CONT2CON中的各位都是可位尋址的,因此所有標志或控制位中的各位都是可位尋址的,因此所有標志或控制位都可以靠軟件來設置或清除。都可以靠軟件來設置或清除。 T2T2控制寄存器控制寄存器T2CON的復位值的復位值=00000000B 方式控制寄存器方式控制寄存器T2MOD 方式控制寄存器方式控制寄存器T2MOD是是80C525458芯片新增添的、芯片新增添的、T2的方式控制寄存器,字節(jié)地址為的方式控制寄存器,字節(jié)地址為C9H。其格式如下:。其格式如下:位地址位地址 D7D6D5D4D3D2D1D0位功能位功能 -T2OE

33、 DCEN 該寄存器定義了該寄存器定義了2位,它們的含義是:位,它們的含義是: T2OE(T2MODl)T2輸出允許位。輸出允許位。當當T2OE1時,允許時鐘輸出至時,允許時鐘輸出至T2(P10)引腳。這)引腳。這一位僅對一位僅對80C5480C58有定義。有定義。 DCEN (T2MOD0)向下計數(shù)允許位。向下計數(shù)允許位。當當 DCENl時,允許時,允許T2向下向下(減減) 計數(shù),計數(shù),當當 DCEN0時,時, T2自動向上自動向上(增增)計數(shù)。計數(shù)。 方式控制寄存器方式控制寄存器T2MOD復位值復位值00B 數(shù)據(jù)寄存器數(shù)據(jù)寄存器TH2、TL2 T2有一個有一個16位的數(shù)據(jù)寄存器,是由高位的

34、數(shù)據(jù)寄存器,是由高8位寄存器位寄存器TH2和低和低8位位寄存器寄存器TL2所組成。它們都只能字節(jié)尋址,相應的字節(jié)地址為所組成。它們都只能字節(jié)尋址,相應的字節(jié)地址為CDH和和CCH。這兩個寄存器都是讀寫寄存器。這兩個寄存器都是讀寫寄存器。 復位后,所有這兩個寄存器全部清零。復位后,所有這兩個寄存器全部清零。 捕獲寄存器捕獲寄存器RCAP2HRCAP2H、RCAP2LRCAP2L T2中的捕獲寄存器是一個中的捕獲寄存器是一個16位的數(shù)據(jù)寄存器,由高位的數(shù)據(jù)寄存器,由高8位寄存器位寄存器RCAP2H和低和低8 位寄存器位寄存器RCAP2L所組成。它們也都只能字節(jié)尋址,所組成。它們也都只能字節(jié)尋址,相

35、應的字節(jié)地址為相應的字節(jié)地址為CBH和和CAH。捕獲寄存器捕獲寄存器RCAP2H和和RCAP2L,用于捕獲計數(shù)器,用于捕獲計數(shù)器TL2、TH2的計數(shù)狀態(tài),或用來預置計數(shù)初值的。的計數(shù)狀態(tài),或用來預置計數(shù)初值的。TH2、TL2和和 RCAP2H、RCAP2L之間接有雙向緩沖器(三態(tài)門)。之間接有雙向緩沖器(三態(tài)門)。復位后,所有這兩個寄存器全部清零。復位后,所有這兩個寄存器全部清零。T2的工作方式用控制位的工作方式用控制位CPRL2(T2CON0)和)和RCLKTCLK來選擇。來選擇。T2可能有三種工作方式(可能有三種工作方式(表表62):):捕獲方式、自動重轉載方式和波特率發(fā)生器方式。捕獲方式

36、、自動重轉載方式和波特率發(fā)生器方式。 捕獲方式捕獲方式 捕獲方式是指:在一定條件下,自動將計數(shù)器捕獲方式是指:在一定條件下,自動將計數(shù)器TH2和和TL2的數(shù)的數(shù)據(jù)讀入捕獲寄存器據(jù)讀入捕獲寄存器RCAP2H和和RCAP2L,亦即,亦即TH2和和TL2內容內容的捕獲是通過捕獲寄存器的捕獲是通過捕獲寄存器RCAP2H和和RCAP2L來實現(xiàn)的。其工來實現(xiàn)的。其工作原理可參見作原理可參見圖圖67。6.3.2 6.3.2 定時器計數(shù)器定時器計數(shù)器T2T2的工作方式的工作方式當當CPRL2l時,選擇捕獲方式。捕獲操作發(fā)生于下述兩種情時,選擇捕獲方式。捕獲操作發(fā)生于下述兩種情況下:況下: 定時器定時器2的寄存

37、器的寄存器TH2和和TL2溢出時,打開重裝載三態(tài)緩沖溢出時,打開重裝載三態(tài)緩沖器,把器,把TH2和和TL2的內容自動讀入到捕獲寄存器的內容自動讀入到捕獲寄存器RCAP2H和和RCAP2L中。同時,溢出標志中。同時,溢出標志TF2置置1,申請中斷。,申請中斷。 當當 EXEN2l且且 T2EX(P11)端的信號有負跳變時,將)端的信號有負跳變時,將發(fā)生捕獲操作。同時標志發(fā)生捕獲操作。同時標志EXF2置置1,申請中斷。,申請中斷。若若T2的中斷是被允許的,則無論發(fā)生的中斷是被允許的,則無論發(fā)生TF2l還是還是EXF2l,CPU都會響應中斷,此中斷向量的地址為都會響應中斷,此中斷向量的地址為002B

38、H。響應中斷后,。響應中斷后,應用軟件清除中斷申請。應用軟件清除中斷申請。TF2和和EXF2都是直接可尋址位,可采都是直接可尋址位,可采用用CLR TF2和和CLR EXF2指令實現(xiàn)清除中斷申請的功能。指令實現(xiàn)清除中斷申請的功能。 自動重裝載方式自動重裝載方式自動重裝載方式是指:在一定條件下,自動地將捕獲寄存器自動重裝載方式是指:在一定條件下,自動地將捕獲寄存器RCAP2H和和RCAP2L的數(shù)據(jù)裝入計數(shù)器的數(shù)據(jù)裝入計數(shù)器TH2和和TL2中。中。一般說來捕獲寄存器一般說來捕獲寄存器RCAP2H和和RCAP2L在這里起預置在這里起預置計數(shù)初值的功能。對計數(shù)初值的功能。對8XC52,其工作原理可參見

39、,其工作原理可參見圖圖68。當當CPRL20時,選擇自動重裝載方式。時,選擇自動重裝載方式。重裝載操作發(fā)生于下述兩種情況下:重裝載操作發(fā)生于下述兩種情況下: T2的寄存器的寄存器TH2和和TL2溢出時,打開重裝載三態(tài)緩沖器,溢出時,打開重裝載三態(tài)緩沖器,把捕獲寄存器把捕獲寄存器RCAP2H和和RCAP2L的內容自動裝載到的內容自動裝載到TH2和和TL2中。同時,溢出標志中。同時,溢出標志TF2置置1,申請中斷。,申請中斷。 當當EXEN21且且T2EX(P11)端的信號有負跳變時,將發(fā))端的信號有負跳變時,將發(fā)生重裝載操作。同時標志生重裝載操作。同時標志EXF2置置1,申請中斷。,申請中斷。若

40、若T2的中斷是被允許的,則無論發(fā)生的中斷是被允許的,則無論發(fā)生TF21還是還是EXF21,CPU都會響應中斷,此中斷向量的地址為都會響應中斷,此中斷向量的地址為002BH。響應中斷后,。響應中斷后,應用軟件撤除中斷申請。應用軟件撤除中斷申請。TF2 和和EXF2都是直接可尋址位,可都是直接可尋址位,可采用采用CLR TF2和和CLR EXF2指令實現(xiàn)撤除中斷申請的功能。指令實現(xiàn)撤除中斷申請的功能。 波特率發(fā)生器方式波特率發(fā)生器方式當當 T2CON中中 RCLK十十TCLK 1時,時,T2工作于波特率發(fā)生器方式,工作于波特率發(fā)生器方式,即其溢出脈沖用做串行口的時鐘。即其溢出脈沖用做串行口的時鐘。

41、T2的波特率發(fā)生器方式下的結構的波特率發(fā)生器方式下的結構圖示于圖示于圖圖69中。在中。在T2CON中,中,RCLK選擇串行通信接收波特率發(fā)選擇串行通信接收波特率發(fā)生器,生器,TCLK選擇發(fā)送波特率發(fā)生器,因而,發(fā)送和接收的波特率選擇發(fā)送波特率發(fā)生器,因而,發(fā)送和接收的波特率可以不同??梢圆煌?。 此時,此時,T2的輸入時鐘可由內部時鐘決定,也可由外部時鐘決定。的輸入時鐘可由內部時鐘決定,也可由外部時鐘決定。若若CT20,選用內部時鐘,對機器周期計數(shù),計數(shù)脈沖的頻率,選用內部時鐘,對機器周期計數(shù),計數(shù)脈沖的頻率為為112振蕩器頻率振蕩器頻率. 若若C/T2C/T21,選用外部時鐘,該時鐘由,選用外

42、部時鐘,該時鐘由T2(P10)端輸入,每當)端輸入,每當外部脈沖負跳變時,計外部脈沖負跳變時,計數(shù)器值增數(shù)器值增l。外部脈沖頻率不超過振蕩器頻率。外部脈沖頻率不超過振蕩器頻率的的l24。 由于脈沖溢出時,由于脈沖溢出時,RCAP2H和和RCAP2L的內容會自動裝載的內容會自動裝載到到TH2和和TL2中,故波特率的值還決定于中,故波特率的值還決定于RCAP2H和和RCAP2L裝裝載初值。載初值。RCLKTCLK還用于選擇還用于選擇T1還是還是T2作串行通信的波特率作串行通信的波特率發(fā)生器。由發(fā)生器。由圖圖69可看出,這兩位的值用來控制兩個電子開關的可看出,這兩位的值用來控制兩個電子開關的位置。值

43、為位置。值為0時,選用時,選用T1做波特率發(fā)生器;值為做波特率發(fā)生器;值為1時,選用時,選用T2做波做波特率發(fā)生器。特率發(fā)生器。 當當T2用做波特率發(fā)生器時,用做波特率發(fā)生器時,TH2的溢出不使的溢出不使TF2置位,不產生置位,不產生中斷。因而,當中斷。因而,當T2用做波特率發(fā)生器時,沒有必要禁止中斷。用做波特率發(fā)生器時,沒有必要禁止中斷。 當當T2用做波特率發(fā)生器時,若用做波特率發(fā)生器時,若EXEN2置置1,則,則T2EX端的信號產端的信號產生負跳變時,生負跳變時,EXF2將置將置1,但不會發(fā)生重裝載或捕獲操作。這時,但不會發(fā)生重裝載或捕獲操作。這時,T2EX可以作為一個附加的外部中斷源???/p>

44、以作為一個附加的外部中斷源。 在波特率發(fā)生器工作方式下,在在波特率發(fā)生器工作方式下,在 T2T2計數(shù)過程中(即計數(shù)過程中(即 TR2TR2 1之之后)后),不能再讀寫不能再讀寫 TH2TH2和和TL2TL2的內容。的內容。如果讀,則讀出的結果不會精確(因為每個狀態(tài)加如果讀,則讀出的結果不會精確(因為每個狀態(tài)加1 1);如果寫,);如果寫,則會影響則會影響T2T2的溢出而使波特率不穩(wěn)定。在的溢出而使波特率不穩(wěn)定。在T2T2計數(shù)過程中,可以計數(shù)過程中,可以讀出但不能改寫讀出但不能改寫RCAP2HRCAP2H和和RCAP2LRCAP2L的內容。需要訪問的內容。需要訪問RCAP2HRCAP2H和和RC

45、AP2LRCAP2L,應事先關閉定時器工作。,應事先關閉定時器工作。監(jiān)視定時器監(jiān)視定時器T3有時俗稱看門狗(有時俗稱看門狗(watchdog),它的作用是強),它的作用是強迫單片微機進入復位狀態(tài),使之從硬件或軟件故障中解脫出來。迫單片微機進入復位狀態(tài),使之從硬件或軟件故障中解脫出來。在飛利浦在飛利浦80C552中,監(jiān)視定時器中,監(jiān)視定時器T3由一個由一個11位的分頻器和位的分頻器和8位定時器位定時器T3組成,如組成,如圖圖6一一10所示。所示。預分頻器輸入為晶振預分頻器輸入為晶振1/12的信號,晶振為的信號,晶振為12MHz時,輸入為時,輸入為1MHz,而而8位定時器位定時器T3每隔時間每隔時

46、間t加加1:t122048/fosc 當晶振為當晶振為12MHz時,時,t為為2ms。若若8位定時器溢出,則產生一個尖脈沖,它將復位位定時器溢出,則產生一個尖脈沖,它將復位8C552,同時在同時在RST引腳上也將產生引腳上也將產生1個正的復位尖脈沖。個正的復位尖脈沖。6.4 6.4 監(jiān)視定時器監(jiān)視定時器( (看門狗看門狗) )T3 T3 T3由外部引腳由外部引腳/EW和電源控制寄存器中的和電源控制寄存器中的PCON4(WLE)和)和PCONl(PD)控制。)控制。 EW看門狗定時器允許,低電平有效。看門狗定時器允許,低電平有效。 EW0時,允許看門狗定時器,禁止掉電方式;時,允許看門狗定時器,

47、禁止掉電方式;EW1時禁止看門狗定時器,允許掉電方式。時禁止看門狗定時器,允許掉電方式。 WLE(PCON4)看門狗定時器允許重裝標志??撮T狗定時器允許重裝標志。 若若WLE置位,定時器置位,定時器T3只能被軟件裝入,裝入后只能被軟件裝入,裝入后WLE自動自動清除。清除。 定時器定時器T3的重裝和溢出,產生復位的時間間隔,由裝入的重裝和溢出,產生復位的時間間隔,由裝入T3的的值決定,對于值決定,對于8C552,其監(jiān)視間隔可編程為,其監(jiān)視間隔可編程為2ms至至2255ms。 定時器定時器T3的工作過程:在的工作過程:在T3溢出時,復位溢出時,復位8XC552,并產生,并產生復位脈沖輸出至復位引腳

48、復位脈沖輸出至復位引腳RST。為防止系統(tǒng)復位,必須在定時。為防止系統(tǒng)復位,必須在定時器器T3溢出前,通過軟件對其進行重裝。如果發(fā)生軟件或硬件故溢出前,通過軟件對其進行重裝。如果發(fā)生軟件或硬件故障,將使軟件對定時器障,將使軟件對定時器T3重裝失敗,重裝失敗,從而從而T3溢出導致復位信號的產生。用這樣的方法可以在軟件溢出導致復位信號的產生。用這樣的方法可以在軟件失控時,恢復程序的正常運行。失控時,恢復程序的正常運行。首先要確定系統(tǒng)能在不正常狀態(tài)下維持多久,這段時間首先要確定系統(tǒng)能在不正常狀態(tài)下維持多久,這段時間就設定為監(jiān)視定時器的最大間隔時間。因為就設定為監(jiān)視定時器的最大間隔時間。因為T3是加是加

49、1計數(shù)器,計數(shù)器,T3中裝入中裝入0,則監(jiān)視時間間隔最長,裝入值為,則監(jiān)視時間間隔最長,裝入值為FFH時,監(jiān)視時時,監(jiān)視時間間隔最短。間間隔最短。在軟件調試時,可以把在軟件調試時,可以把EW接高電平以禁止看門狗工作,接高電平以禁止看門狗工作,軟件調試結束后再把軟件調試結束后再把EW接至低電平,通過人為制造故障,觀接至低電平,通過人為制造故障,觀察看門狗工作是否正常。察看門狗工作是否正常。下面一段程序顯示了如何控制看門狗工作的。下面一段程序顯示了如何控制看門狗工作的。 例:例:watchdog使用的一段程序如下:使用的一段程序如下:T3 EQU 0FFH ;定時器;定時器T3的地址的地址 PCO

50、N EQU 87H ;電源控制寄存器;電源控制寄存器PCON的地址的地址WATCH_INTV EQU 156 ;看門狗的時間間隔;看門狗的時間間隔(2X100ms) 插在用戶程序中對看門狗需要重新裝入的地方:插在用戶程序中對看門狗需要重新裝入的地方: LCALL WATCHDOG 看門狗的服務子程序:看門狗的服務子程序:WATCHDOG:ORL PCON,10H ;允許定時器;允許定時器T3重裝重裝 MOV T3,WATCHINTV ;裝載定時器;裝載定時器T3 RET 定時器計數(shù)器溢出率的計算定時器計數(shù)器溢出率的計算定時器計數(shù)器運行前,在其中預先置入的常數(shù),稱為定時器計數(shù)器運行前,在其中預先

51、置入的常數(shù),稱為定時常數(shù)或計數(shù)常數(shù)(定時常數(shù)或計數(shù)常數(shù)(TC)。由于計數(shù)器是加)。由于計數(shù)器是加 1(向上)計(向上)計數(shù)的,故而預先置入的常數(shù)均應為補碼。數(shù)的,故而預先置入的常數(shù)均應為補碼。其中:其中:t定時時間。定時時間。 Tc機器周期。機器周期。6.5 6.5 定時器定時器/ /計數(shù)器的應用編程計數(shù)器的應用編程6.5.1 6.5.1 定時器的應用定時器的應用Fosc晶體振蕩器頻率。晶體振蕩器頻率。L計數(shù)器的長度。計數(shù)器的長度。對于對于T0及及T1: 方式方式0 L=13 2138 192 方式方式1 L16 21665 536 方式方式2 L8 28256對于對于T2: L16 2166

52、5 536TC定時器計數(shù)器初值,即定時常數(shù)或計數(shù)常數(shù)。定時器計數(shù)器初值,即定時常數(shù)或計數(shù)常數(shù)。定時時間的倒數(shù)即為溢出率,即:定時時間的倒數(shù)即為溢出率,即:根據(jù)要求的定時時間根據(jù)要求的定時時間t、設定的定時器工作方式、設定的定時器工作方式(確定確定L) 及晶體振蕩及晶體振蕩頻率頻率fosc,可計算出,可計算出TC值值(十進制數(shù)十進制數(shù)),再將其轉換成二進制數(shù),再將其轉換成二進制數(shù)TCB,然后再分別送入然后再分別送入THi、TLi(對于(對于T0,i0;對于;對于T1,il)。)。 對于定時器計數(shù)器對于定時器計數(shù)器T0、T1: 方式方式0時:時:TCB=TCHTCL,TCH高高8位,位,TCL低低

53、5位位 MOV THi,TCH;送高;送高8位位 MOV TLi,TCL ;送;送低低5位位(高高3位為位為0) 方式方式1時:時:TCB=TCHTCL,TCH高高8位,位,TCL低低8位位 MOV THi,TCH;送高;送高8位位 MOV TLi,TCL ;送;送低低8位。位。 方式方式2時:時:TCB8位重裝載位重裝載 MOV THi,TCB;送高;送高8位位 MOV TLi,TCB;送;送低低8位。位。 對于定時器計數(shù)器對于定時器計數(shù)器T2:與:與T0、T1的方式的方式1相同相同例例 1要求在要求在 P10引腳上產生周期為引腳上產生周期為2 ms的方波輸出。的方波輸出。已知晶體振蕩器的頻

54、率為已知晶體振蕩器的頻率為fosc=6MHz。可使用??墒褂肨0作定時作定時器,設為方式器,設為方式0,設定,設定 lms的定時,每隔的定時,每隔1ms使使P1.0引腳上的電引腳上的電平變反。平變反。 (1) 解:定時常數(shù)計算解:定時常數(shù)計算 振蕩器的頻率振蕩器的頻率fosc6MHz,機器周期為,機器周期為2s,方式,方式0計數(shù)器計數(shù)器長度長度L13(2138 192),定時時間,定時時間 t1ms0.001s定時常數(shù):定時常數(shù):TC為為76921E0CH,二進制數(shù),二進制數(shù)TCB0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 B,取低,取低13位,其中高位,其中高8位位TCH

55、F0H,低,低5位為位為TCL 0CH.計 數(shù) 長 度 為計 數(shù) 長 度 為 1E 0C H = 7692 , 定 時 為, 定 時 為 ( 81927692)2s=0.001STMOD的設定(即控制字)的設定(即控制字)( 2) 編編 程程 ORG 0000HAJMP MAINORG 000BH;T0中斷矢量中斷矢量AJMP INQPORG 0030HMAIN:MOV TMOD,00H ;寫控制字,設寫控制字,設T0為定時器為定時器 ;方式;方式0 0 MOV TH0,0F0H ;寫定時常數(shù);寫定時常數(shù)( (定時定時1 1ms)ms) MOV TL0,0CH SETB TR0 ;啟動;啟動

56、T0 SETB ET0 ;允許;允許T0中斷中斷 SETB EA ;開放;開放CPU中斷中斷 AJMP $ ;定時中斷等待;定時中斷等待ORG XXXX H ;T0T0中斷服務程序中斷服務程序 INQP:MOV TH0,0F0H ;重寫定時常數(shù);重寫定時常數(shù) MOV TL0,0CHCPL P10 ;P10變反輸出變反輸出 RETI ;中斷返回;中斷返回 例例2 2使用使用T1T1的方式的方式1 1,設定,設定1ms1ms的定時。同樣,在的定時。同樣,在P1P10 0引腳上引腳上產生周期為產生周期為2 ms的方波輸出。晶體振蕩器的頻率為的方波輸出。晶體振蕩器的頻率為fosc6 MHz。 解:解:

57、 定時常數(shù)計算定時常數(shù)計算 振蕩器的頻率振蕩器的頻率fosc6MHz6106Hz,方式,方式1計數(shù)器長度計數(shù)器長度L16,2L21665536 定時時間定時時間 t1ms0.001s定時常數(shù)定時常數(shù)定時常數(shù)定時常數(shù)TC轉換成二進制轉換成二進制TCB1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 BF E 0 CH所以所以 TCHFEH(高(高8位),位),TCL0CH(低(低8位)位)TMOD的設定(即控制字)的設定(即控制字) 編編 程程ORG 0000HAJMP MAINORG 000BH ;T0中斷矢量地址中斷矢量地址 AJMP INQP ORG 100H ;主程序入口;

58、主程序入口MAIN:MOV TMOD,10H ;寫控制字,;寫控制字,T1為定時器、為定時器、;方式;方式1MOV TH1,0FEH ;寫定時常數(shù);寫定時常數(shù) ,定時,定時1ms MOV TL1,0CH SETB TR1 ;啟動;啟動T1 SETB ET1 ;允許;允許T1中斷中斷 SETB EA ;開放;開放CPU中斷中斷 AJMP ORG 00 XX H ;中斷服務程序;中斷服務程序INQP:MOV TH1,0FEH ;重寫定時常數(shù);重寫定時常數(shù) MOV TL1,0CH CPL P10 ;P10變反輸出變反輸出 RETI ;中斷返回;中斷返回例例3欲用欲用80C51產生兩個方波,一個周期為

59、產生兩個方波,一個周期為200s,另一個周期為,另一個周期為400s,該,該80C51同時使用串行口,用定時器計數(shù)器作為同時使用串行口,用定時器計數(shù)器作為波特率發(fā)生器。波特率發(fā)生器。 這時這時T0采用方式采用方式3工作,其中,工作,其中,TL0產生產生200s定時,由定時,由 P10輸出方波;輸出方波;TH0產生產生400s定時,由定時,由Pl1輸出方波;輸出方波;T1設置為方式設置為方式2作波特率發(fā)生器用。作波特率發(fā)生器用。focs9216 MHz。定時常數(shù)計算定時常數(shù)計算TL0定時常數(shù)為定時常數(shù)為 TCL0:tl0100s單位單位s,為十進數(shù)制數(shù)值。十六進制數(shù)值為,為十進數(shù)制數(shù)值。十六進制

60、數(shù)值為TCBL0B3H。TH0定時常數(shù)為定時常數(shù)為TCH0:定時時間為:定時時間為th0200s單位單位s,為十進制數(shù)值。十六進制的值為,為十進制數(shù)值。十六進制的值為TCBH066 H。TH1的波特率(詳細計算見串行口部分)的波特率(詳細計算見串行口部分)設波特率為設波特率為2400,則定時常數(shù)為,則定時常數(shù)為TC2F6H 編編 程程ORG 0000H AJMP MAINORG 000BH ;TL0的中斷入口的中斷入口AJMP ITL0ORG 00lBH;TH0的中斷入口的中斷入口AJMP ITH0ORG 0100HMAIN:MOV SP, 60H;設棧指針;設棧指針MOV TMOD, 23H

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論