版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第6章章 AT89S51單片機的定時器單片機的定時器/計數(shù)器計數(shù)器1AT89S51單片機片內(nèi)單片機片內(nèi)兩個可編程兩個可編程的定時器的定時器/計數(shù)器計數(shù)器T1、T0結(jié)構(gòu)與功能結(jié)構(gòu)與功能兩種工作模式和兩種工作模式和4種工作方式種工作方式 TMOD和和TCON各位的定義及其編程各位的定義及其編程 編程應(yīng)用案例編程應(yīng)用案例2內(nèi)容概要內(nèi)容概要6.1 定時器定時器/計數(shù)器的結(jié)構(gòu)計數(shù)器的結(jié)構(gòu)定時器定時器/計數(shù)器結(jié)構(gòu)如圖計數(shù)器結(jié)構(gòu)如圖6-1,定時器,定時器/計數(shù)器計數(shù)器T0由特殊功能寄存由特殊功能寄存器器TH0、TL0構(gòu)成,定時器構(gòu)成,定時器/計數(shù)器計數(shù)器T1由特殊功能寄存器由特殊功能寄存器TH1、TL1構(gòu)
2、成。構(gòu)成。圖圖6-1 定時器定時器/計數(shù)器結(jié)構(gòu)框圖計數(shù)器結(jié)構(gòu)框圖3兩種工作模式兩種工作模式(定時器、計數(shù)器);(定時器、計數(shù)器);4種工作方式種工作方式(方式(方式0、方式、方式1、方式、方式2和方式和方式3)。)。TMOD用于用于選擇選擇定時器定時器/計數(shù)器計數(shù)器T0、T1的的工作模式工作模式和和工作方式工作方式。TCON用于用于控制控制T0、T1的的啟動啟動和和停止計數(shù)停止計數(shù),同時包含,同時包含了了T0、T1的狀態(tài)。的狀態(tài)。45T0、T1不論是工作在定時器模式還是計數(shù)器模式,不論是工作在定時器模式還是計數(shù)器模式,實質(zhì)都是對脈沖信號進行計數(shù),實質(zhì)都是對脈沖信號進行計數(shù),只不過是只不過是計數(shù)
3、信號的來計數(shù)信號的來源不同。源不同。計數(shù)器模式計數(shù)器模式是對加在是對加在T0(P3.4)和)和T1(P3.5)兩個引)兩個引腳上的腳上的外部脈沖外部脈沖進行計數(shù)(見圖進行計數(shù)(見圖6-1););定時器工作模式定時器工作模式是對系統(tǒng)的時鐘振蕩器信號經(jīng)片內(nèi)是對系統(tǒng)的時鐘振蕩器信號經(jīng)片內(nèi)12分頻后的分頻后的內(nèi)部脈沖內(nèi)部脈沖信號計數(shù)。由于時鐘頻率是定值,所信號計數(shù)。由于時鐘頻率是定值,所以以12分頻后的脈沖信號周期也為定值,所以可根據(jù)對內(nèi)分頻后的脈沖信號周期也為定值,所以可根據(jù)對內(nèi)部脈沖信號的計數(shù)值計算出定時時間。部脈沖信號的計數(shù)值計算出定時時間。 計數(shù)器的起始計數(shù)都是從計數(shù)器的初值開始。單片機計數(shù)器
4、的起始計數(shù)都是從計數(shù)器的初值開始。單片機復(fù)位時計數(shù)器的初值為復(fù)位時計數(shù)器的初值為0,也可用指令給計數(shù)器裝入一個,也可用指令給計數(shù)器裝入一個新的初值。新的初值。AT89S51的定時器的定時器/計數(shù)器屬于計數(shù)器屬于增增1計數(shù)器。計數(shù)器。6.1.1 工作方式控制寄存器工作方式控制寄存器TMOD AT89S51單片機的定時器單片機的定時器/計數(shù)器工作方式寄存器計數(shù)器工作方式寄存器TMOD用于用于選擇選擇定時器定時器/計數(shù)器的計數(shù)器的工作模式工作模式和和工作方式,工作方式,字節(jié)地址為字節(jié)地址為89H,不能位尋址,不能位尋址,其格式如圖其格式如圖6-2所示。所示。 圖圖6-2 TMOD格式格式8位分為兩組
5、,位分為兩組,高高4位位控制控制T1,低低4位位控制控制T0。TMOD各位功能。各位功能。(1)GATE門控位。門控位。 0:僅由:僅由運行控制位運行控制位TRx(x = 0,1)來控制定時)來控制定時器器/計數(shù)器運行。計數(shù)器運行。 1:用外中斷引腳用外中斷引腳INT0*( 或或 INT1* )上的電平與)上的電平與運行控制位運行控制位TRx來來共同共同控制定時器控制定時器/計數(shù)器運行。計數(shù)器運行。7(2)M1、M0工作方式選擇位工作方式選擇位 M1、M0共共4種編碼,種編碼,4種工作方式種工作方式選擇,見表選擇,見表6-1。89(3)C/T* 計數(shù)器模式和定時器模式選擇位計數(shù)器模式和定時器模
6、式選擇位 0:定時器:定時器工作模式,對單片機的晶體振蕩器工作模式,對單片機的晶體振蕩器12分頻后的脈沖進行計數(shù)。分頻后的脈沖進行計數(shù)。 1:計數(shù)器計數(shù)器工作模式,計數(shù)器對外部輸入引腳工作模式,計數(shù)器對外部輸入引腳T0(P3.4)或)或T1(P3.5)的外部脈沖(負(fù)跳變)的外部脈沖(負(fù)跳變)計數(shù)。計數(shù)。 6.1.2 定時器定時器/計數(shù)器控制寄存器計數(shù)器控制寄存器TCON 字節(jié)地址字節(jié)地址為為88H,可位尋址,可位尋址,位地址位地址為為88H8FH。格式見圖。格式見圖6-3。 圖圖6-3 TCON格式格式(1)TF1、TF0計數(shù)溢出標(biāo)志位。計數(shù)溢出標(biāo)志位。當(dāng)計數(shù)器計數(shù)溢出時,該位置當(dāng)計數(shù)器計數(shù)溢
7、出時,該位置“1”。使用。使用查詢方式查詢方式時,時,此位作為狀態(tài)位供此位作為狀態(tài)位供CPU查詢,但應(yīng)注意查詢,但應(yīng)注意查詢有效查詢有效后,后,應(yīng)應(yīng)使用軟件及時將該位清使用軟件及時將該位清“0”。使用。使用中斷方式中斷方式時,此位作時,此位作為中斷請求標(biāo)志位,進入中斷服務(wù)程序后由硬件自動清為中斷請求標(biāo)志位,進入中斷服務(wù)程序后由硬件自動清“0”。(2)TR1、TR0計數(shù)運行控制位。計數(shù)運行控制位。TR1位(或位(或TR0位)位)=1,啟動定時器啟動定時器/計數(shù)器工作計數(shù)器工作的必要的必要條件。條件。TR1位(或位(或TR0位)位)= 0,停止定時器停止定時器/計數(shù)器計數(shù)器工作。工作。該位可由軟件
8、置該位可由軟件置“1”或清或清“0”。116.2 定時器定時器/計數(shù)器的計數(shù)器的4種工作方式種工作方式4種工作方式如下。種工作方式如下。6.2.1 方式方式0M1、M0=00時,被設(shè)置為工作方式時,被設(shè)置為工作方式0,等效邏輯結(jié)構(gòu),等效邏輯結(jié)構(gòu)框圖見圖框圖見圖6-4(以定時器(以定時器/計數(shù)器計數(shù)器T1為例,為例,TMOD.5、TMOD.4 = 00)。)。12圖圖6-4 定時器定時器/計數(shù)器方式計數(shù)器方式0邏輯結(jié)構(gòu)框圖邏輯結(jié)構(gòu)框圖13位計數(shù)器,位計數(shù)器,由由TLx(x = 0,1)低低5位位和和THx高高8位位構(gòu)構(gòu)成。成。TLx低低5位溢出則向位溢出則向THx進位,進位,THx計數(shù)溢出則把計
9、數(shù)溢出則把TCON中的溢出標(biāo)志位中的溢出標(biāo)志位TFx置置“1”。13圖圖6-2的的C/T* 位位控制的電子開關(guān)決定了定時器控制的電子開關(guān)決定了定時器/計數(shù)器計數(shù)器的兩種工作模式。的兩種工作模式。(1)C/T*=0,電子開關(guān)打在上面,電子開關(guān)打在上面,T1(或(或T0)為定)為定時器模式,把時鐘振蕩器時器模式,把時鐘振蕩器12分頻后的脈沖作為計數(shù)信號。分頻后的脈沖作為計數(shù)信號。(2)C/T*=1,電子開關(guān)打在下面,電子開關(guān)打在下面,T1(或(或T0)為計)為計數(shù)器模式,計數(shù)脈沖為數(shù)器模式,計數(shù)脈沖為P3.4(或(或P3.5)引腳上的外部輸入)引腳上的外部輸入脈沖,當(dāng)引腳上發(fā)生脈沖,當(dāng)引腳上發(fā)生負(fù)
10、跳變負(fù)跳變時,時,計數(shù)器加計數(shù)器加1。 GATE位狀態(tài)位狀態(tài)決定定時器決定定時器/計數(shù)器的運行控制取決計數(shù)器的運行控制取決TRx一個條件一個條件還是還是TRx和和INTx*(x = 0,1)引腳狀態(tài))引腳狀態(tài)兩個條兩個條件。件。14 (1) GATE =0,A點(見圖點(見圖6-4)電位恒為)電位恒為1,B點電位點電位僅取決于僅取決于TRx狀態(tài)。狀態(tài)。TRx = 1,B點為高電平,控制端控點為高電平,控制端控制電子開關(guān)閉合,允許制電子開關(guān)閉合,允許T1(或(或T0)對脈沖計數(shù)。)對脈沖計數(shù)。TRx =0,B點為低電平,電子開關(guān)斷開,禁止點為低電平,電子開關(guān)斷開,禁止T1(或(或T0)計數(shù)。)計
11、數(shù)。 (2) GATE =1,B點電位由點電位由 INTx* (x= 0,1)的輸)的輸入電平和入電平和TRx的狀態(tài)這的狀態(tài)這兩個條件來確定。兩個條件來確定。當(dāng)當(dāng)TRx = 1,且,且 INTx* =1時,時,B點才為點才為1,控制端控制電子開關(guān)閉合,允,控制端控制電子開關(guān)閉合,允許許T1(或(或T0)計數(shù)。故這種情況下計數(shù)器是否計數(shù)是)計數(shù)。故這種情況下計數(shù)器是否計數(shù)是由由TRx和和INTx* 兩個條件來共同控制。兩個條件來共同控制。6.2.2 方式方式1 當(dāng)當(dāng)M1、M0=01時,定時器時,定時器/計數(shù)器工作于計數(shù)器工作于方式方式1,這時這時定時器定時器/計數(shù)器的等效電路邏輯結(jié)構(gòu)見圖計數(shù)器的
12、等效電路邏輯結(jié)構(gòu)見圖6-5。 方式方式1和方式和方式0的差別的差別僅僅在于僅僅在于計數(shù)器的位數(shù)計數(shù)器的位數(shù)不同,方不同,方式式1為為16位計數(shù)器位計數(shù)器,由,由THx高高8位和位和TLx低低8位構(gòu)成(位構(gòu)成(x=0,1),方式),方式0則為則為13位計數(shù)器,有關(guān)控制狀態(tài)位的含義位計數(shù)器,有關(guān)控制狀態(tài)位的含義(GATE、C/T* 、TFx、TRx)與方式)與方式0相同。相同。 17圖圖6-5 定時器定時器/計數(shù)器方式計數(shù)器方式1邏輯結(jié)構(gòu)框圖邏輯結(jié)構(gòu)框圖6.2.3 方式方式2 方式方式0和和方式方式1的最大特點是的最大特點是計數(shù)溢出計數(shù)溢出后,計數(shù)器后,計數(shù)器清清0。因此在循環(huán)定時或循環(huán)計數(shù)應(yīng)用時
13、就因此在循環(huán)定時或循環(huán)計數(shù)應(yīng)用時就存在存在用指令反復(fù)裝用指令反復(fù)裝入計數(shù)初值入計數(shù)初值的的問題。問題。這不僅影響定時精度,也給程序設(shè)這不僅影響定時精度,也給程序設(shè)計帶來麻煩。計帶來麻煩。方式方式2就是針對此問題而設(shè)置的就是針對此問題而設(shè)置的。 當(dāng)當(dāng)M1、M0為為10時,定時器時,定時器/計數(shù)器處于工作方式計數(shù)器處于工作方式2,這時定時器這時定時器/計數(shù)器的等效邏輯結(jié)構(gòu)如圖計數(shù)器的等效邏輯結(jié)構(gòu)如圖6-6(以定時器(以定時器T1為例,為例,x= 1)。)。圖圖6-6 方式方式2邏輯結(jié)構(gòu)框圖邏輯結(jié)構(gòu)框圖 方式方式2為為自動恢復(fù)初值自動恢復(fù)初值(初值自動裝入)的(初值自動裝入)的8位位定時器定時器/計
14、數(shù)器計數(shù)器。 TLx(x = 0,1)作為常數(shù)緩沖器,當(dāng))作為常數(shù)緩沖器,當(dāng)TLx計數(shù)計數(shù)溢出時,在溢出標(biāo)志溢出時,在溢出標(biāo)志TFx置置“1”的同時,還的同時,還自動自動將將THx中的初值送至中的初值送至TLx,使使TLx從初值開始重新從初值開始重新計數(shù)。定時器計數(shù)。定時器/計數(shù)器的方式計數(shù)器的方式2工作過程見圖工作過程見圖6-7。 圖圖6-7 方式方式2工作過程工作過程該方式可省去用戶軟件中重裝初值的指令執(zhí)行時間,該方式可省去用戶軟件中重裝初值的指令執(zhí)行時間,簡化定時初值的計算方法,可簡化定時初值的計算方法,可相當(dāng)精確地確定相當(dāng)精確地確定定時時間定時時間。216.2.4 方式方式3為為增加一
15、個增加一個8位定時器位定時器/計數(shù)器計數(shù)器而設(shè),使而設(shè),使AT89S51單片機單片機具有具有3個定時器個定時器/計數(shù)器。計數(shù)器。方式方式3只適用于只適用于T0,T1不能工作在方式不能工作在方式3。T1處于方式處于方式3時相當(dāng)于時相當(dāng)于TR1=0,停止計數(shù)(此時,停止計數(shù)(此時T1可用來作為串行口可用來作為串行口波特率產(chǎn)生器)。波特率產(chǎn)生器)。1工作方式工作方式3下的下的T0TMOD的低的低2位為位為11時,時,T0被選為方式被選為方式3,各引腳與,各引腳與T0的邏輯關(guān)系如圖的邏輯關(guān)系如圖6-8。定時器定時器/計數(shù)器計數(shù)器T0分為兩個獨立的分為兩個獨立的8位計數(shù)器位計數(shù)器TL0和和TH0,TL0
16、使用使用T0的狀態(tài)控制位的狀態(tài)控制位C/T*、GATE、TR0、TF0, 而而TH0被被固定為一個固定為一個8位定時器位定時器(不能作為外部計數(shù)(不能作為外部計數(shù)模式),并模式),并使用使用定時器定時器T1的狀態(tài)控制位的狀態(tài)控制位TR1和和TF1,同同時占用定時器時占用定時器T1的中斷請求源的中斷請求源TF1。2T0工作在方式工作在方式3時時T1的各種工作方式的各種工作方式 一般情況下,一般情況下,當(dāng)當(dāng)T1用作串行口的波特率發(fā)生器時,用作串行口的波特率發(fā)生器時,T0才工作在方式才工作在方式3。T0處于工作方式處于工作方式3時,時,T1可定為方可定為方式式0、方式、方式1和方式和方式2,用來作為
17、串行口的波特率發(fā)生器,用來作為串行口的波特率發(fā)生器,或不需要中斷的場合。或不需要中斷的場合。 圖圖6-8 定時器定時器/計數(shù)器計數(shù)器T0方式方式3的邏輯結(jié)構(gòu)框圖的邏輯結(jié)構(gòu)框圖24(1)T1工作在方式工作在方式0T1的控制字中的控制字中M1、M0 = 00時,時,T1工作在方式工作在方式0,工作,工作示意如圖示意如圖6-9。 圖圖6-9 T0工作在方式工作在方式3時時T1為方式為方式0的工作示意圖的工作示意圖25(2)T1工作在方式工作在方式1當(dāng)當(dāng)T1的控制字中的控制字中M1、M0 = 01時,時,T1工作在方式工作在方式1,工,工作示意圖如作示意圖如圖圖6-10所示。所示。26圖圖6-10 T
18、0工作在方式工作在方式3時時T1為方式為方式1的工作示意圖的工作示意圖(3)T1工作在方式工作在方式2當(dāng)當(dāng)T1的控制字中的控制字中M1、M0 = 10時,時,T1的工作方式為方式的工作方式為方式2,工作示意圖如,工作示意圖如圖圖6-11所示。所示。 27圖圖6-11 T0工作在方式工作在方式3時時T1為方式為方式2的工作示意圖的工作示意圖(4)T1設(shè)置在方式設(shè)置在方式3 當(dāng)當(dāng)T0設(shè)置在方式設(shè)置在方式3,再把,再把T1也設(shè)成方式也設(shè)成方式3,此時,此時T1停止停止計數(shù)。計數(shù)。6.3 對外部輸入的計數(shù)信號的要求對外部輸入的計數(shù)信號的要求 當(dāng)定時器當(dāng)定時器/計數(shù)器工作在計數(shù)器模式時,計數(shù)脈沖來自計數(shù)
19、器工作在計數(shù)器模式時,計數(shù)脈沖來自外部輸入引腳外部輸入引腳T0或或T1。當(dāng)輸入信號產(chǎn)生負(fù)跳變時,計數(shù)。當(dāng)輸入信號產(chǎn)生負(fù)跳變時,計數(shù)器的值增器的值增1。 每個機器周期每個機器周期的的S5P2期間,都期間,都對外部輸入引腳對外部輸入引腳T0或或T1進行進行采樣。采樣。如在第一個機器周期中采得的值為如在第一個機器周期中采得的值為1,而在下,而在下一個機器周期中采得的值為一個機器周期中采得的值為0,則在緊跟著的再下一個機,則在緊跟著的再下一個機器周期器周期S3P1期間,計數(shù)器加期間,計數(shù)器加1。 由于由于確認(rèn)一次確認(rèn)一次負(fù)跳變負(fù)跳變要花要花2個個機器周期機器周期,因此因此外部輸外部輸入的計數(shù)脈沖的入的
20、計數(shù)脈沖的最高頻率最高頻率為系統(tǒng)振蕩器頻率的為系統(tǒng)振蕩器頻率的1/24。 例如,選用例如,選用6MHz頻率的晶體,允許輸入的脈沖頻率頻率的晶體,允許輸入的脈沖頻率最高為最高為250kHz。如果選用。如果選用12MHz頻率的晶體,則可輸入頻率的晶體,則可輸入最高頻率為最高頻率為500kHz的外部脈沖。的外部脈沖。 對于外部輸入信號的對于外部輸入信號的占空比占空比并沒有什么限制,但為并沒有什么限制,但為了確保某一給定電平在變化之前能被采樣一次,則這一了確保某一給定電平在變化之前能被采樣一次,則這一電平電平至少要保持一個機器周期。至少要保持一個機器周期。故對外部輸入信號的要求如圖故對外部輸入信號的要
21、求如圖6-12所示,圖中所示,圖中Tcy為機器周期。為機器周期。30圖圖6-12 對外部計數(shù)輸入信號的要求對外部計數(shù)輸入信號的要求6.4 定時器定時器/計數(shù)器的編程和應(yīng)用計數(shù)器的編程和應(yīng)用4種方式,方式種方式,方式0與方式與方式1基本相同,只是計數(shù)位數(shù)不同。基本相同,只是計數(shù)位數(shù)不同。方式方式0初值計算復(fù)雜,初值計算復(fù)雜,一般不用方式一般不用方式0,而而用方式用方式1。6.4.1 方式方式1的應(yīng)用的應(yīng)用【例例6-1】假設(shè)系統(tǒng)時鐘頻率采用假設(shè)系統(tǒng)時鐘頻率采用6MHz,在在P1.0引腳上引腳上輸出一個輸出一個周期為周期為2ms的的方波,方波,如圖如圖6-13。31圖圖6-13 要求要求P1.0引腳
22、輸出的波形引腳輸出的波形基本思想:基本思想:方波周期方波周期T0確定,確定,T0每隔每隔1ms計數(shù)溢出計數(shù)溢出1次,次,即即T0每隔每隔1ms產(chǎn)生一次中斷,產(chǎn)生一次中斷,CPU響應(yīng)中斷后,在中斷服響應(yīng)中斷后,在中斷服務(wù)子程序中對務(wù)子程序中對P1.0取反。取反。為此要做如下幾步工作:為此要做如下幾步工作: (1)計算計數(shù)初值)計算計數(shù)初值X機器周期機器周期 = 2s = 2106s 設(shè)需要設(shè)需要裝入裝入T0的的初值為初值為X,則有則有(216 X)2106 = 1103。216 X = 500, X = 65036。X化為化為16進制數(shù),即:進制數(shù),即: 65036 = FE0CH 。T0的的初
23、值初值為為TH0 = FEH,TL0 = 0CH。32(2)初始化程序設(shè)計)初始化程序設(shè)計采用定時器采用定時器中斷方式中斷方式工作。包括定時器初始化和中斷系工作。包括定時器初始化和中斷系統(tǒng)初始化,主要是對統(tǒng)初始化,主要是對寄存器寄存器IP、IE、TCON、TMOD的的相應(yīng)位進行正確的設(shè)置,并將計數(shù)初值送入定時器中。相應(yīng)位進行正確的設(shè)置,并將計數(shù)初值送入定時器中。(3)程序設(shè)計)程序設(shè)計中斷服務(wù)子程序除了完成所要求的中斷服務(wù)子程序除了完成所要求的產(chǎn)生方波產(chǎn)生方波的工作之外,的工作之外,還要注意將計數(shù)還要注意將計數(shù)初值重新裝入定時器,初值重新裝入定時器,為下一次產(chǎn)生中斷為下一次產(chǎn)生中斷做準(zhǔn)備。做準(zhǔn)
24、備。33參考程序如下:參考程序如下: 34程序說明:程序說明:當(dāng)單片機復(fù)位時,從程序入口當(dāng)單片機復(fù)位時,從程序入口0000H跳向主跳向主程序程序MAIN處執(zhí)行。其中調(diào)用了處執(zhí)行。其中調(diào)用了T0初始化子程序初始化子程序PT0M0。子程序返回后,子程序返回后,程序執(zhí)行程序執(zhí)行“AJMP HERE”指令,則指令,則循環(huán)等待。循環(huán)等待。當(dāng)當(dāng)響應(yīng)響應(yīng)T0定時中斷定時中斷時,則跳向時,則跳向T0中斷入口,再從中斷入口,再從T0中中斷入口跳向斷入口跳向IT0P標(biāo)號處執(zhí)行標(biāo)號處執(zhí)行T0中斷服務(wù)子程序。中斷服務(wù)子程序。35當(dāng)當(dāng)執(zhí)行完中斷返回的指令執(zhí)行完中斷返回的指令“RETI”后,又返回斷點處繼續(xù)后,又返回斷點
25、處繼續(xù)執(zhí)行循環(huán)指令執(zhí)行循環(huán)指令“AJMP HERE”。在實際的程序中,。在實際的程序中,“AJMP HERE” 實際上是一段主程序。當(dāng)下一次定時器實際上是一段主程序。當(dāng)下一次定時器T0的的1ms定定時中斷發(fā)生時,再跳向時中斷發(fā)生時,再跳向T0中斷入口,從而重復(fù)執(zhí)行上述過程。中斷入口,從而重復(fù)執(zhí)行上述過程。如如CPU不做其他工作,不做其他工作,也可用查詢方式也可用查詢方式進行控制,程序要進行控制,程序要簡單得多。簡單得多。36查詢查詢程序雖簡單,程序雖簡單,但但CPU必須要不斷查詢必須要不斷查詢TF0標(biāo)志,標(biāo)志,工作工作效率低。效率低。【例例6-2】系統(tǒng)時鐘為系統(tǒng)時鐘為6MHz,編寫定時器,編寫
26、定時器T0產(chǎn)生產(chǎn)生1s定定時的程序。時的程序?;舅枷耄夯舅枷耄翰捎枚〞r器模式。因采用定時器模式。因定時時間較長,定時時間較長,首先首先確定確定采用哪一種工作方式。采用哪一種工作方式。時鐘為時鐘為6MHz的條件下,定的條件下,定時器各種工作方式最長可定時時間:時器各種工作方式最長可定時時間: 方式方式0最長可定時最長可定時16.384ms; 方式方式1最長可定時最長可定時131.072ms; 方式方式2最長可定時最長可定時512 s。由上可見,由上可見,可選方式可選方式1,每隔每隔100ms中斷一次,中斷中斷一次,中斷10次次為為1s。37(1)計算計數(shù)初值)計算計數(shù)初值X因為因為(216
27、X)2 106 = 101,所以,所以X = 15536 = 3CB0H因此因此 TH0 = 3CH,TL0 = B0H。(2)10次計數(shù)的實現(xiàn)次計數(shù)的實現(xiàn)對于中斷對于中斷10次的計數(shù),采用次的計數(shù),采用B寄存器寄存器作為作為中斷次數(shù)計數(shù)器中斷次數(shù)計數(shù)器。(3)程序設(shè)計)程序設(shè)計參考程序如下:參考程序如下: 3839程序說明:程序說明:不論不論1s定時時間是否已到,都返回到定時時間是否已到,都返回到“SJMP HERE”指令處。指令處?!癝JMP HERE”指令實際是一段主程序。指令實際是一段主程序。在這段主程序中在這段主程序中再通過對再通過對F0標(biāo)志的判定,標(biāo)志的判定,可知可知1s定時是否定
28、時是否到,再進行具體處理。到,再進行具體處理。6.4.2 方式方式2的應(yīng)用的應(yīng)用是可是可自動重新裝載初值自動重新裝載初值的的8位位計數(shù)器計數(shù)器/定時器,省去重定時器,省去重裝初值指令。裝初值指令。當(dāng)某個定時器當(dāng)某個定時器/計數(shù)器不使用時,可計數(shù)器不使用時,可擴展一個擴展一個負(fù)跳沿觸負(fù)跳沿觸發(fā)發(fā)的的外部中斷源外部中斷源?!纠?-3】擴展一個擴展一個負(fù)跳沿觸發(fā)的外部中斷源負(fù)跳沿觸發(fā)的外部中斷源,把定時,把定時器器/計數(shù)器計數(shù)器T0腳腳作為作為外部中斷請求輸入端外部中斷請求輸入端,溢出標(biāo)志,溢出標(biāo)志TF0作為外中斷請求標(biāo)志。作為外中斷請求標(biāo)志?;舅枷耄夯舅枷耄涸O(shè)為方式設(shè)為方式2(自動裝入常數(shù)方
29、式)計數(shù)模式,(自動裝入常數(shù)方式)計數(shù)模式,TH0、TL0初值初值均為均為0FFH。當(dāng)當(dāng)T0腳發(fā)生負(fù)跳變時,腳發(fā)生負(fù)跳變時,T0計數(shù)溢出,計數(shù)溢出,TF0置置“1”,單片機發(fā)出中斷請求。,單片機發(fā)出中斷請求。40程序說明:程序說明:當(dāng)連接在當(dāng)連接在P3.4(T0腳)的外部中斷請求輸腳)的外部中斷請求輸入腳電平發(fā)生負(fù)跳變時,入腳電平發(fā)生負(fù)跳變時,TL0加加1,產(chǎn)生溢出,產(chǎn)生溢出,TF0置置“1”,向單片機發(fā)出中斷請求,同時,向單片機發(fā)出中斷請求,同時TH0的內(nèi)容的內(nèi)容0FFH送送TL0,即,即TL0恢復(fù)初值恢復(fù)初值0FFH。P3.4腳相當(dāng)于一個腳相當(dāng)于一個負(fù)跳沿負(fù)跳沿觸發(fā)的觸發(fā)的外中斷請求源外中
30、斷請求源輸入輸入。【例例6-4】 當(dāng)當(dāng)T0(P3.4)引腳上發(fā)生負(fù)跳變時,作為)引腳上發(fā)生負(fù)跳變時,作為P1.0引腳產(chǎn)生方波的啟動信號。開始從引腳產(chǎn)生方波的啟動信號。開始從P1.0腳腳上輸出一個上輸出一個周周期為期為1ms的的方波方波,如圖,如圖6-14(系統(tǒng)時鐘(系統(tǒng)時鐘6MHz)。)。41設(shè)計思想:設(shè)計思想:T0設(shè)為設(shè)為方式方式1計數(shù)計數(shù),初值初值為為FFFFH。當(dāng)外部。當(dāng)外部計數(shù)輸入端計數(shù)輸入端T0(P3.4)發(fā)生一次負(fù)跳變發(fā)生一次負(fù)跳變時,時,T0加加1且且溢出溢出,溢出標(biāo)志溢出標(biāo)志TF0置置“1”,向,向CPU發(fā)出中斷請求,此時發(fā)出中斷請求,此時T0相相當(dāng)于一個負(fù)跳沿觸發(fā)的外部中斷源
31、。當(dāng)于一個負(fù)跳沿觸發(fā)的外部中斷源。進入進入T0中斷程序后,中斷程序后,F(xiàn)0標(biāo)志置標(biāo)志置“1”,說明,說明T0引腳上已引腳上已接收過負(fù)跳變信號。接收過負(fù)跳變信號。T1定義為定義為方式方式2定時定時。在。在T0引腳產(chǎn)生引腳產(chǎn)生一次負(fù)跳變后,啟動一次負(fù)跳變后,啟動T1每每500s產(chǎn)生一次中斷產(chǎn)生一次中斷,在,在中斷服中斷服務(wù)子程序務(wù)子程序中對中對P1.0求反求反,使,使P1.0產(chǎn)生產(chǎn)生周期周期1ms方波。由于方波。由于省去重新裝初值指令,所以可產(chǎn)生省去重新裝初值指令,所以可產(chǎn)生精確精確的定時。的定時。4243圖圖6-14 負(fù)跳變觸發(fā)輸出一個周期為負(fù)跳變觸發(fā)輸出一個周期為1ms的方波的方波(1)計算)
32、計算T1的初值的初值設(shè)設(shè)T1的初值為的初值為X,則,則(28 X)2106=5104X =28 250=6=06H(2)程序設(shè)計)程序設(shè)計參考程序參考程序: 4445程序說明:程序說明:當(dāng)單片機復(fù)位時,從當(dāng)單片機復(fù)位時,從0000H跳向主程序跳向主程序MAIN處執(zhí)行程序。其中調(diào)用了對處執(zhí)行程序。其中調(diào)用了對T0,T1初始化子程序初始化子程序PT0M2。子程序返回后執(zhí)行標(biāo)號。子程序返回后執(zhí)行標(biāo)號LOOP處指令,循環(huán)等處指令,循環(huán)等待待T0引腳上負(fù)脈沖的到來。由于負(fù)脈沖到來的標(biāo)志位引腳上負(fù)脈沖的到來。由于負(fù)脈沖到來的標(biāo)志位F0的復(fù)位初始值為的復(fù)位初始值為0,所以程序就在標(biāo)號,所以程序就在標(biāo)號LOO
33、P處循環(huán)等待。處循環(huán)等待。當(dāng)當(dāng)T0(P3.4)腳)腳發(fā)生負(fù)跳變發(fā)生負(fù)跳變時,由于時,由于T0計數(shù)溢出,則計數(shù)溢出,則跳向跳向T0中斷服務(wù)子程序。此時停止中斷服務(wù)子程序。此時停止T0計數(shù),并把計數(shù),并把T0引引腳接收過負(fù)脈沖的標(biāo)志腳接收過負(fù)脈沖的標(biāo)志F0置置1。4647當(dāng)當(dāng)中斷返回中斷返回時,由于時,由于F0已被置已被置1,則程序跳出,則程序跳出LOOP處的循環(huán)等待。此時執(zhí)行指令來允許處的循環(huán)等待。此時執(zhí)行指令來允許T1中斷,并啟動中斷,并啟動T1定時,然后執(zhí)行定時,然后執(zhí)行“AJMP HERE”指令,循環(huán)等待,指令,循環(huán)等待,等待等待T1的的500s定時中斷定時中斷到來。到來。當(dāng)當(dāng)T1的的50
34、0 s定時中斷產(chǎn)生時,定時中斷產(chǎn)生時,則進入則進入T1的中斷服的中斷服務(wù)子程序務(wù)子程序IT1P,把把P1.0腳電平取反。由于自動裝初值,腳電平取反。由于自動裝初值,省去對省去對T1重裝初值指令。中斷返回后,到重裝初值指令。中斷返回后,到“AJMP HERE” 處等待處等待T1的的500s定時中斷。如此重復(fù),即定時中斷。如此重復(fù),即得到圖得到圖6-14波形。波形?!纠?-5】 利用定時器利用定時器T1的的方式方式2計數(shù)計數(shù),每,每計滿計滿100個個數(shù),將數(shù),將P1.0取反。本例是取反。本例是方式方式2計數(shù)模式計數(shù)模式的應(yīng)用舉例。的應(yīng)用舉例。(1)選擇工作方式)選擇工作方式外部信號由外部信號由T
35、1(P3.5)引腳輸入,每發(fā)生一次負(fù)跳變)引腳輸入,每發(fā)生一次負(fù)跳變計數(shù)器便加計數(shù)器便加1,每輸入,每輸入100個脈沖,計數(shù)器將產(chǎn)生溢出中個脈沖,計數(shù)器將產(chǎn)生溢出中斷,在中斷服務(wù)程序中將斷,在中斷服務(wù)程序中將P1.0取反一次。取反一次。T1工作在工作在方式方式2的控制字的控制字TMOD = 60H。不使用。不使用T0時,時,TMOD低低4位任取,但不能使位任取,但不能使T0為方式為方式3,這里取全,這里取全0。(2)計算)計算T1的初值的初值X = 28 100 = 156 = 9CHTL1的初值為的初值為9CH,重裝初值寄存器,重裝初值寄存器TH1 = 9CH。(3)參考程序)參考程序484
36、9說明:由于說明:由于T1的中斷服務(wù)子程序只有兩條指令,不超的中斷服務(wù)子程序只有兩條指令,不超過過8字節(jié),所以進入字節(jié),所以進入T1中斷服務(wù)程序入口后,沒有選擇中斷服務(wù)程序入口后,沒有選擇再跳轉(zhuǎn)。再跳轉(zhuǎn)。6.4.3 方式方式3的應(yīng)用的應(yīng)用方式方式3下的下的T0和和T1大不相同大不相同。T0工作在方式工作在方式3,TL0和和TH0被分成兩個獨立的被分成兩個獨立的8位定時器位定時器/計數(shù)器。其中,計數(shù)器。其中,TL0可作為可作為8位的定時器位的定時器/計數(shù)器,而計數(shù)器,而TH0只能作為只能作為8位的位的定時器。此時定時器。此時T1只能工作在方式只能工作在方式0、1或或2。一般情況下,當(dāng)一般情況下,
37、當(dāng)T1用作用作串行口波特率發(fā)生器串行口波特率發(fā)生器時,時,T0才設(shè)置為才設(shè)置為方式方式3。此時,常把定時器。此時,常把定時器T1設(shè)置為設(shè)置為方式方式2,用,用作波特率發(fā)生器。作波特率發(fā)生器。50【例例6-6】假設(shè)某假設(shè)某AT89S51單片機應(yīng)用系統(tǒng)的兩個外部單片機應(yīng)用系統(tǒng)的兩個外部中斷源已被占用,設(shè)置中斷源已被占用,設(shè)置T1工作在方式工作在方式2,用作波特率發(fā),用作波特率發(fā)生器生器?,F(xiàn)?,F(xiàn)要求增加一個要求增加一個外部中斷源外部中斷源,并,并控制控制P1.0引腳輸引腳輸出一個出一個5kHz(周期為(周期為200s)的)的方波方波。設(shè)時鐘為。設(shè)時鐘為6MHz?;舅枷耄夯舅枷耄涸O(shè)置設(shè)置TL0工作
38、在方式工作在方式3計數(shù)模式,計數(shù)模式,TL0的初的初值設(shè)為值設(shè)為0FFH,當(dāng),當(dāng)檢測到檢測到T0腳信號出現(xiàn)腳信號出現(xiàn)負(fù)跳變負(fù)跳變時,時,TL0溢出,同時向溢出,同時向CPU申請中斷,這里申請中斷,這里T0腳作為一個負(fù)跳沿腳作為一個負(fù)跳沿觸發(fā)的外部中斷請求輸入端觸發(fā)的外部中斷請求輸入端。在中斷處理子程序中,啟。在中斷處理子程序中,啟動動TH0,TH0事先被設(shè)置為事先被設(shè)置為方式方式3的的100s定時定時,從而,從而控控制制P1.0輸出周期為輸出周期為200s的方波信號的方波信號,如圖,如圖6-15。5152圖圖6-15 定時器定時器P1.0輸出的方波信號輸出的方波信號(1)初值)初值X計算計算TL0的的初值初值設(shè)為設(shè)為0FFH。5kHz方波方波的的周期為周期為200s,因此,因此TH0的定時時間為的定時時間為100s。 初值初值X計算:計算:(28 X)2106 = 1104 X = 28 100 =156 = 9CH(2)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版汽車銷售合同范本
- 2024陜西智能制造行業(yè)勞動合同范本3篇
- 二零二五年度餐飲品牌加盟店合同范本3篇
- 2024版施工工程勞務(wù)分包合同
- 二零二五年高溫高壓管道材料購銷合同2篇
- 專用倉儲物流倉庫建設(shè)施工協(xié)議模板版B版
- 二零二五版國有企業(yè)員工勞動合同解除與經(jīng)濟補償協(xié)議3篇
- 二零二五版?zhèn)€人購房貸款擔(dān)保與房屋權(quán)屬登記服務(wù)合同3篇
- 2024版代生產(chǎn)加工服務(wù)合同范本2篇
- 二零二五年度特色餐飲品牌加盟保密合同范本3篇
- 國網(wǎng)山東電力生產(chǎn)技術(shù)改造原則
- 鐵路運輸安全現(xiàn)場管理
- 2023年某保險公司春節(jié)經(jīng)營教材
- 劉都才-南方水稻田雜草發(fā)生動態(tài)及防控技術(shù)
- 全自動化學(xué)發(fā)光分析儀操作規(guī)程
- 北侖區(qū)建筑工程質(zhì)量監(jiān)督站監(jiān)督告知書
- 深藍(lán)的故事(全3冊)
- GB/T 42461-2023信息安全技術(shù)網(wǎng)絡(luò)安全服務(wù)成本度量指南
- 職校開學(xué)第一課班會PPT
- 央國企信創(chuàng)白皮書 -基于信創(chuàng)體系的數(shù)字化轉(zhuǎn)型
- GB/T 36964-2018軟件工程軟件開發(fā)成本度量規(guī)范
評論
0/150
提交評論