版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、單片機與控制技術(shù)單片機與控制技術(shù)電氣學(xué)院:王欣第第6章:章:MCS-51的定時器的定時器/計數(shù)器計數(shù)器RE:l 硬件編程結(jié)構(gòu)及引腳已介紹l CPU主要部件與特殊功能寄存器(SFR)已介紹l 片內(nèi)外存儲器的組織結(jié)構(gòu)和編址已介紹l 并行I/O口已介紹l 中斷及中斷系統(tǒng)已介紹l 定時/計數(shù)器(外設(shè)) 【本次課內(nèi)容!】l 串行口(外設(shè))生產(chǎn)線上產(chǎn)品計數(shù)。每個產(chǎn)品通過得到一個脈沖信號,生產(chǎn)線上產(chǎn)品計數(shù)。每個產(chǎn)品通過得到一個脈沖信號,計數(shù)器記錄脈沖個數(shù),當(dāng)計數(shù)值與設(shè)定值相等,啟動包裝計數(shù)器記錄脈沖個數(shù),當(dāng)計數(shù)值與設(shè)定值相等,啟動包裝機器。機器。檢測轉(zhuǎn)速。電機轉(zhuǎn)動一圈發(fā)出一個脈沖,計數(shù)器記錄一檢測轉(zhuǎn)速。電機
2、轉(zhuǎn)動一圈發(fā)出一個脈沖,計數(shù)器記錄一秒時間內(nèi)脈沖個數(shù),顯示轉(zhuǎn)速。秒時間內(nèi)脈沖個數(shù),顯示轉(zhuǎn)速。定時定時/計數(shù)器的應(yīng)用計數(shù)器的應(yīng)用 (1)獲取一定的時間間隔信號(即定時),或)獲取一定的時間間隔信號(即定時),或?qū)ν獠康拿}沖個數(shù)進行計數(shù)。采用專用的硬件定時對外部的脈沖個數(shù)進行計數(shù)。采用專用的硬件定時/計數(shù)器(而不是用延時程序來獲得定時),減輕計數(shù)器(而不是用延時程序來獲得定時),減輕了了CPU的負擔(dān)。的負擔(dān)。 (2)定時和計數(shù)的本質(zhì)是一樣的。當(dāng)計數(shù)器所)定時和計數(shù)的本質(zhì)是一樣的。當(dāng)計數(shù)器所計的脈沖是頻率不變的信號時,通過計數(shù)值就可以計的脈沖是頻率不變的信號時,通過計數(shù)值就可以知道時間長短,這時計數(shù)器
3、就成了定時器。知道時間長短,這時計數(shù)器就成了定時器。定時定時/計數(shù)器的作用:計數(shù)器的作用:MCS51單片機的定時單片機的定時/計數(shù)器資源計數(shù)器資源l 有有2個個(8052有有3個個)16位位的定時的定時/計數(shù)器,均為計數(shù)器,均為加加1計數(shù);計數(shù);l 4種工作方式種工作方式(16位位/13位位/8位位/波特率),由波特率),由TMOD控控制寄存器中的制寄存器中的M1、M0位來控制位來控制l 兩個兩個SFR:TMOD定義工作方式,定義工作方式,TCON控制有關(guān)功控制有關(guān)功能能l 定時器定時器的實質(zhì)為對的實質(zhì)為對MCU片內(nèi)機器周期計數(shù),而片內(nèi)機器周期計數(shù),而計數(shù)器計數(shù)器對芯片外部引腳對芯片外部引腳T
4、0、T1上的脈沖信號個數(shù)計數(shù)。上的脈沖信號個數(shù)計數(shù)。定時定時/計數(shù)器的工作原理計數(shù)器的工作原理l 定時定時/ /計數(shù)器中的核心部件為可預(yù)置初值計數(shù)器。預(yù)計數(shù)器中的核心部件為可預(yù)置初值計數(shù)器。預(yù)置初值后開始計數(shù),直至計數(shù)值歸置初值后開始計數(shù),直至計數(shù)值歸0 0或產(chǎn)生溢出,可申請或產(chǎn)生溢出,可申請中斷。中斷。l 計數(shù)器有加計數(shù)器有加 1 1 計數(shù)或減計數(shù)或減1 1計數(shù)兩種形式。計數(shù)兩種形式。K1K2可預(yù)置初值計數(shù)器可預(yù)置初值計數(shù)器中斷中斷請求請求功能功能選擇選擇啟動啟動控制控制內(nèi)部時鐘脈沖內(nèi)部時鐘脈沖(定時)(定時)外部輸入脈沖外部輸入脈沖(計數(shù))(計數(shù))溢出信號溢出信號計數(shù)脈沖計數(shù)脈沖計數(shù)初值計
5、數(shù)初值 說明:說明: 當(dāng)用作當(dāng)用作定時器功能定時器功能時,加時,加1計數(shù)器每經(jīng)過一個機器周計數(shù)器每經(jīng)過一個機器周期的時間加期的時間加1 ,所以定時器,所以定時器可看作計算機器周期的計數(shù)器??煽醋饔嬎銠C器周期的計數(shù)器。由于每個機器周期包含由于每個機器周期包含12個振蕩信號周期,所以加個振蕩信號周期,所以加1計數(shù)計數(shù)器的計數(shù)脈沖頻率為振蕩器信號的器的計數(shù)脈沖頻率為振蕩器信號的1/12,當(dāng)振蕩器頻率為,當(dāng)振蕩器頻率為6MHz時計數(shù)脈沖的最高頻率為時計數(shù)脈沖的最高頻率為500KHz,或周期為,或周期為2s。 當(dāng)用作當(dāng)用作計數(shù)器功能時,加計數(shù)器功能時,加1計數(shù)器的計數(shù)脈沖取自外計數(shù)器的計數(shù)脈沖取自外部輸
6、入引腳部輸入引腳T0、T1(8052還有還有T2),只要這些引腳上有),只要這些引腳上有一個從一個從“1”到到“0”的負跳變,加的負跳變,加1計數(shù)器就加計數(shù)器就加1。CPU在每在每個機器周期對外部輸入狀態(tài)進行采樣。計數(shù)器加個機器周期對外部輸入狀態(tài)進行采樣。計數(shù)器加1的執(zhí)行的執(zhí)行是在檢測到跳變后的那個機器周期時刻。是在檢測到跳變后的那個機器周期時刻。由于需要兩個機由于需要兩個機器周期(器周期(24個振蕩信號周期)來識別一個從個振蕩信號周期)來識別一個從“1”到到“0”的的負跳變,所以最大計數(shù)速率為振蕩信號頻率的負跳變,所以最大計數(shù)速率為振蕩信號頻率的1/24。顯而顯而易見,為了保障外部輸入狀態(tài)在
7、改變之前至少采樣一次,易見,為了保障外部輸入狀態(tài)在改變之前至少采樣一次,因此,信號必須至少保持一個完整的機器周期。因此,信號必須至少保持一個完整的機器周期。 圖圖6-1 MCS-51定時器定時器/計數(shù)器邏輯結(jié)構(gòu)框圖計數(shù)器邏輯結(jié)構(gòu)框圖T0T1TF1TF0設(shè)定4種工作狀態(tài)1 定時定時/計數(shù)器的結(jié)構(gòu)計數(shù)器的結(jié)構(gòu) 51系列單片機中有兩個特殊功能寄存器系列單片機中有兩個特殊功能寄存器(TMOD/TCON),用于用于定義定時定義定時/計數(shù)器的工作方式和控制定時計數(shù)器的工作方式和控制定時/計數(shù)器的有關(guān)功能計數(shù)器的有關(guān)功能. 1)定時器方式寄存器)定時器方式寄存器TMOD(只能按字節(jié)地址訪問?。ㄖ荒馨醋止?jié)地
8、址訪問?。?TMOD用于定義工作方式以及操作方式。用于定義工作方式以及操作方式。其格式為其格式為: 高位 低位GATE C/TM1M0GATEC/TM1M0 定時/計數(shù)器1 定時/計數(shù)器0TMODTMOD的高的高4位控制定時位控制定時/計數(shù)器計數(shù)器1,低,低4位控制定時位控制定時/計數(shù)計數(shù)0。其中其中M1、M0定義定時定義定時/計數(shù)器的工作方式。計數(shù)器的工作方式。1)定時器方式寄存器)定時器方式寄存器TMODl C/T:定時:定時/計數(shù)器功能選擇位。計數(shù)器功能選擇位。 1:計數(shù)器功能(對外部脈沖即負跳變計數(shù),:計數(shù)器功能(對外部脈沖即負跳變計數(shù),允許的最高計數(shù)允許的最高計數(shù)頻率為晶振頻率的頻率
9、為晶振頻率的1/24); 0:定時器功能:定時器功能l GATE:門控制位,用于控制定時:門控制位,用于控制定時/計數(shù)器的(啟動計數(shù)器的(啟動)計數(shù)計數(shù)是否是否受受外部中斷輸入引腳(外部中斷輸入引腳(INT0、INT1腳)電平腳)電平的影響。的影響。 GATE=0,與外部中斷無關(guān),以運行控制位,與外部中斷無關(guān),以運行控制位TRX來啟動;來啟動; GATE=1,只有在沒有外部中斷請求信號情況下(即外部中斷,只有在沒有外部中斷請求信號情況下(即外部中斷引腳引腳INTx=1),才允許),才允許計數(shù)。計數(shù)。l M1、M0:工作方式選擇:工作方式選擇 GATE C/TM1M0 GATEC/TM1 M0T
10、1T0 D7 D6 D5 D4 D3 D2 D1 D0由M1、M0決定的定時/計數(shù)器的工作方式M1M0工作方式工作方式說明說明00013位定時位定時/計數(shù)器計數(shù)器01116位定時位定時/計數(shù)器計數(shù)器102具有自動重裝入的具有自動重裝入的8位定時位定時/計數(shù)器計數(shù)器113定時器定時器0(T0)分為)分為2個個獨立的獨立的8位定時器,位定時器,T1在方式在方式3時停止工作時停止工作舉例:舉例:設(shè)置設(shè)置T1為為16位位的的計數(shù)計數(shù)器對外部脈沖計數(shù),器對外部脈沖計數(shù),T1啟動不受啟動不受外部中斷影響。則外部中斷影響。則 MOV TMOD,50H;(;(0101 0000B)2)定時器控制寄存器)定時器
11、控制寄存器TCON用于外部中斷(中斷系統(tǒng)中已介紹)SETB TR0;啟動定時器0使用中斷方式,作為中斷請求標志位,進入中斷服務(wù)程序后硬件自動清零軟件控制3)定時器初值的確定?)定時器初值的確定? 加法計數(shù)器是計滿溢出時才申請中斷, 所以在給定時器/計數(shù)器賦初值時, 不能直接輸入所需的計數(shù)值, 而應(yīng)輸入的是計數(shù)器計數(shù)的最大值與這一計數(shù)值的差值, 設(shè)最大值為 M, 初值為 X, 則 X的計算方法如下: 計數(shù)狀態(tài): X=M計數(shù)值 定時狀態(tài): X=M定時時間/Tcy 而 Tcy=12晶振頻率 每一種工作方式對應(yīng)的最大計數(shù)值:每一種工作方式對應(yīng)的最大計數(shù)值:方式方式0 13位計數(shù)器位計數(shù)器1328192
12、方式方式1 16位計數(shù)器位計數(shù)器16265536方式方式2 8位計數(shù)器位計數(shù)器方式方式3 8位計數(shù)器位計數(shù)器8225682256 定時初值:定時初值:對機器周期進行計數(shù)。對機器周期進行計數(shù)。T:定時時間,:定時時間,X:初值,:初值,N:計數(shù):計數(shù)器位數(shù),器位數(shù),oscf:系統(tǒng)時鐘(晶振)頻率,則:系統(tǒng)時鐘(晶振)頻率,則:2/12NoscXfT 計數(shù)初值:計數(shù)初值:對外部脈沖進行計數(shù),計數(shù)值根據(jù)要求確定。對外部脈沖進行計數(shù),計數(shù)值根據(jù)要求確定。X:初值,:初值,N:計數(shù)器位數(shù),則計數(shù)器位數(shù),則2NX 計數(shù)值12(2)NoscXTf2 定時器/計數(shù)器的4種工作方式SFR: 定時器方式寄存器定時
13、器方式寄存器TMOD TMOD用于定義工作方式以及操作方式。其格式為: 高位 低位GATE C/TM1M0GATEC/TM1M0 定時/計數(shù)器1 定時/計數(shù)器0TMODTMOD的高的高4位控制定時位控制定時/計數(shù)器計數(shù)器1,低,低4位控制定時位控制定時/計數(shù)計數(shù)0。其中其中M1、M0定義定時定義定時/計數(shù)器的工作方式。計數(shù)器的工作方式。1 1)方式)方式0 0 (13位計數(shù)器) 當(dāng)當(dāng)M1、M0位置成位置成00時,工作方式為方式時,工作方式為方式0,由圖這時定時,由圖這時定時/計數(shù)器的加計數(shù)器的加1計數(shù)器為計數(shù)器為13位,即位,即TL的低的低5位位和和TH的的8位位。 計數(shù)脈沖源由計數(shù)脈沖源由T
14、MOD的的C/T位來決定。位來決定。TL和和TH的計數(shù)值由全的計數(shù)值由全“1”變?yōu)樽優(yōu)槿?”時,時,TCON的中斷溢出標志位的中斷溢出標志位TF置位,定時置位,定時/計數(shù)器向計數(shù)器向CPU申請中申請中斷。允許計數(shù)脈沖輸入的條件是:斷。允許計數(shù)脈沖輸入的條件是:TR0/1=1且且GATE=0或或/INT01=1,這些,這些均由軟件設(shè)置。均由軟件設(shè)置。0111110100TimerCountl 當(dāng)定時/計數(shù)器工作于定時功能且選為方式0時,應(yīng)按照定時的時間選擇一個時間常數(shù)作為計數(shù)器的初值,需要連續(xù)定時時,應(yīng)在每次溢出產(chǎn)生中斷后,在程序(ISR)中為TL和TH 裝入初值。l 方式0的計數(shù)長度M為2
15、的13次方。初值也是13位二進制數(shù),但要注意是高8位賦值給THx,低5位前面補足 3 個 0 湊成 8 位賦給TLx。 舉例:如要求T0的計數(shù)值為1000,則初值為 xM100081921000 1C18H1 1100 0001 1000B 則賦初值時, TH0 1 1100 000B=0E0H, TL0 0001 1000B =18H。2 2)方式)方式1 1 (16位計數(shù)器)方式方式1和方式和方式0的工作原理基本相同的工作原理基本相同,唯一不同是,唯一不同是T0和和T1工作工作在方式在方式1時是時是16位位的計數(shù)的計數(shù)/定時器定時器方式方式1時的時的計數(shù)長度計數(shù)長度M是是2的的16次方次方
16、。16位的初值直接拆成高位的初值直接拆成高低字節(jié),分別送入低字節(jié),分別送入THx和和TLx即可即可。3 3)方式)方式2 2 (8位計數(shù)器,初始值自動重裝) 工作方式工作方式0和工作方式和工作方式1的最大特點的最大特點就是計數(shù)溢出后,計數(shù)器為就是計數(shù)溢出后,計數(shù)器為全全0,因而循環(huán)定時或循環(huán)計數(shù)應(yīng)用時就,因而循環(huán)定時或循環(huán)計數(shù)應(yīng)用時就存在反復(fù)設(shè)置初值存在反復(fù)設(shè)置初值的問的問題,這給程序設(shè)計帶來許多不便,同時也會影響計時精度。題,這給程序設(shè)計帶來許多不便,同時也會影響計時精度。作為計數(shù)器保存計數(shù)初值l 工作方式工作方式2就針對這個問題而設(shè)置,它具有自動重裝載功能,即自就針對這個問題而設(shè)置,它具有
17、自動重裝載功能,即自動加載計數(shù)初值,所以也稱為自動重加載工作方式。動加載計數(shù)初值,所以也稱為自動重加載工作方式。l 在這種工作方式中,在這種工作方式中,16位計數(shù)器分為兩部分,即以位計數(shù)器分為兩部分,即以TL0為計數(shù)器,為計數(shù)器,以以TH0作為預(yù)置寄存器,初始化時把計數(shù)初值分別加載至作為預(yù)置寄存器,初始化時把計數(shù)初值分別加載至TL0和和TH0中,當(dāng)計數(shù)溢出時,不再象方式中,當(dāng)計數(shù)溢出時,不再象方式0和方式和方式1那樣需要那樣需要“人工干人工干預(yù)預(yù)”,由軟件重新賦值,而是由預(yù)置寄存器,由軟件重新賦值,而是由預(yù)置寄存器TH以硬件方法自動給以硬件方法自動給計數(shù)器計數(shù)器TL0重新加載。重新加載。4 4
18、)方式)方式3 3 (兩個獨立(兩個獨立8位計數(shù)器,僅限T0)TH0、TL0被拆作于不同用途獨立!定時器模式l 在工作方式在工作方式3模式下,定時模式下,定時/計數(shù)器計數(shù)器0被拆成兩個獨立的被拆成兩個獨立的8位計數(shù)器位計數(shù)器TL0和和TH0。其中。其中TL0既可以作計數(shù)器使用,也可以作為定時器使用,定時既可以作計數(shù)器使用,也可以作為定時器使用,定時/計計數(shù)器數(shù)器0的各控制位和引腳信號全歸它使用的各控制位和引腳信號全歸它使用。其功能和操作與方式。其功能和操作與方式0或方式或方式1完全相同。完全相同。 TH0就沒有那么多就沒有那么多“資源資源”可利用了,只能作為簡單的內(nèi)部定時器使用,可利用了,只能
19、作為簡單的內(nèi)部定時器使用,而且由于定時而且由于定時/計數(shù)器計數(shù)器0的控制位已被的控制位已被TL0占用,因此只能借用定時占用,因此只能借用定時/計數(shù)計數(shù)器器1的控制位的控制位TR1和和TF1,也就是以計數(shù)溢出去置位,也就是以計數(shù)溢出去置位TF1,TR1則負責(zé)控則負責(zé)控制制TH0定時的啟動和停止。定時的啟動和停止。l 由于由于TL0既能作定時器也能作計數(shù)器使用,而既能作定時器也能作計數(shù)器使用,而TH0只能作定時器使用而只能作定時器使用而不能作計數(shù)器使用,因此在方式不能作計數(shù)器使用,因此在方式3模式下,定時模式下,定時/計數(shù)器計數(shù)器0可以構(gòu)成二個可以構(gòu)成二個定時器或者一個定時器和一個計數(shù)器。定時器或
20、者一個定時器和一個計數(shù)器。l T0工作于方式工作于方式3時,時,T1的工作方式就不可避免受到一定的限制,因為自的工作方式就不可避免受到一定的限制,因為自己的一些控制位已被定時己的一些控制位已被定時/計數(shù)器計數(shù)器0借用,只能工作在方式借用,只能工作在方式0、方式、方式1或方或方式式2下,下,不同的是定時不同的是定時/計數(shù)器計數(shù)器1不能使用溢出標志和中斷!不能使用溢出標志和中斷!l 如果設(shè)置如果設(shè)置T1工作在方式工作在方式3,則,則T1停止工作,相當(dāng)于其他方式時令停止工作,相當(dāng)于其他方式時令TR10。T0工作在方式工作在方式3下下T1的各種工作方式的各種工作方式l 一般情況下,當(dāng)當(dāng)T1T1用作串行
21、口的波特率發(fā)生器用作串行口的波特率發(fā)生器時,時, T0 T0才工作在方式才工作在方式3 3。l T0T0處于方式處于方式3 3時,時, T1T1可定為方式可定為方式0 0、方式、方式1 1和方和方式式2 2,用來,用來作為串行口的波特率發(fā)生器,作為串行口的波特率發(fā)生器,或不或不需要中斷的場合。需要中斷的場合。(1 1)T1T1工作在方式工作在方式0 0 (2 2)T1T1工作在方式工作在方式1 1 振蕩器1/12TL1(8位)TH1(8位)串行口C/T=0C/T=1T1(P3.5)(3 3)T1T1工作在方式工作在方式2 2(3) 定時/計數(shù)器的初始化由于定時由于定時/計數(shù)器是可編程的,因此在
22、進行定時或計數(shù)之前要把程計數(shù)器是可編程的,因此在進行定時或計數(shù)之前要把程序進行初始化。初始化一般包括以下幾個步驟:序進行初始化。初始化一般包括以下幾個步驟:S1確定工作方式確定工作方式TMOD寄存器賦值。寄存器賦值。S2置定時置定時/計數(shù)器的初值計數(shù)器的初值直接將初值寫入寄存器直接將初值寫入寄存器TH0、TL0和和 TH1、TL1。S3根據(jù)需要,開放中斷根據(jù)需要,開放中斷對寄存器對寄存器IE置初值。置初值。S4啟動啟動使使TCON寄存器中的寄存器中的TR1或或TR0置位,置位后,加置位,置位后,加1計計數(shù)器按規(guī)定的工作方式和初值開始計數(shù)。數(shù)器按規(guī)定的工作方式和初值開始計數(shù)。初值初值N的計算的計
23、算可以通過下式求得:可以通過下式求得: 計數(shù)方式:計數(shù)方式:N=M-計數(shù)值計數(shù)值 定時方式時:定時方式時:N=M-定時值定時值(fosc/12)。)。其中:其中:M為加為加1計數(shù)器的最大值(在不同的工作方式中,計數(shù)器的最大值(在不同的工作方式中,M可以為可以為213、216或或28),),fosc為振蕩器頻率(即主振頻率)。為振蕩器頻率(即主振頻率)。補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 一、一、 方式方式 0 的應(yīng)用的應(yīng)用 例例 1 利用定時器利用定時器T0產(chǎn)生產(chǎn)生1ms定時,并使定時,并使P1.0輸出周期為輸出周期為 2 ms的方波的方波, 設(shè)單片機晶振頻率為設(shè)單片機晶
24、振頻率為 6 MHz。 選用定時器選用定時器 /計數(shù)器計數(shù)器T0 作定時器作定時器, 輸出為輸出為P1.0 引腳引腳, 2 ms 的方波可由間隔的方波可由間隔 1 ms的高低電平相間而成的高低電平相間而成, 因而只要每隔因而只要每隔 1 ms對對 P1.0 取反一次即可得到這個方波。取反一次即可得到這個方波。 定時定時 1 ms的初值的初值: 因為因為 機器周期機器周期=126 MHz= 2 s所以所以 1 ms內(nèi)內(nèi)T0 需要計數(shù)需要計數(shù)N次次: N= 1 ms2 s = 500 由此可知由此可知: 使用方式使用方式 0 的的 13 位計數(shù)器即可位計數(shù)器即可, T0 的初值的初值X為為 X=M
25、N=8 192500=7 692=1E0CH 但是但是, 因為因為 13 位計數(shù)器中位計數(shù)器中, 低低 8 位位 TL0 只使用了只使用了 5 位位, 其其余碼均計入高余碼均計入高 8 位位TH0 的初值的初值, 則則 T0 的初值調(diào)整為的初值調(diào)整為 TH0=0F0H, TL0=0CHTMOD初始化初始化: TMOD=00000000B=00H (GATE=0, C/T=0, M1=0, M0=0)TCON初始化初始化: 啟動啟動TR0=1 IE初始化初始化: 開放中斷開放中斷EA=1, 定時器定時器T0 中斷允許中斷允許ET0=1 補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 程
26、序清單如下程序清單如下: ORG 0000H AJMP START; 復(fù)位入口復(fù)位入口 ORG 000BH AJMP TOINT ; T0中斷入口中斷入口 ORG 0030HSTART: MOV SP, 60H; 初始化程序初始化程序 MOV TH0, 0F0H ; T0賦初值賦初值 MOV TL0, 0CH MOV TMOD, 00H ; 工作方式設(shè)定工作方式設(shè)定 SETB TR0 ; 啟動啟動T0 補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 SETB ET0 ; 開開T0中斷中斷 SETB EA ; 開總允許中斷開總允許中斷 MAIN: AJMP MAIN ; 主程序主程序
27、T0INT: CPL P1.0 ; 取反取反 MOV TL0, 0CH;重裝計數(shù)初值;重裝計數(shù)初值 MOV TH0, 0F0HRETI END補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 一、一、 方式方式 1 的應(yīng)用的應(yīng)用 例例 2 利用定時器利用定時器T1產(chǎn)生一個產(chǎn)生一個25Hz方波,并使方波,并使P1.0輸出的輸出的, 設(shè)單片機晶振頻率為設(shè)單片機晶振頻率為 12 MHz。 選用定時器選用定時器 /計數(shù)器計數(shù)器T1 作定時器作定時器, 輸出為輸出為P1.0 引腳引腳, 25Hz的方波的周期為的方波的周期為1/25=40ms, T1可由間隔可由間隔20ms的高低的高低電平相間而成
28、電平相間而成, 因而只要每隔因而只要每隔20ms對對 P1.0 取反一次即可得取反一次即可得到這個方波。到這個方波。 定時定時 20ms的初值的初值: 因為因為 機器周期機器周期=1212MHz= 1 s所以所以 20ms內(nèi)內(nèi)T1需要計數(shù)的次數(shù)為需要計數(shù)的次數(shù)為: 20 ms1 s = 20000 次次 由此可知由此可知: 使用方式使用方式 1 的的 16 位計數(shù)器即可位計數(shù)器即可, T1 的初值的初值X為為 X=MN=6553620000=45536=B1E0H 方式方式1為為 16 位計數(shù)器位計數(shù)器, 低低 8 位位 TL1 和高和高 8 位位TH1 可以直可以直接賦初值接賦初值, 則則
29、T1 的初值為的初值為 TH0=0B1H, TL0=0E0HTMOD初始化初始化: TMOD=00010000B=10H (GATE=0, C/T=0, M1=0, M0=1)TCON初始化初始化: 啟動啟動TR1=1 IE初始化初始化: 開放中斷開放中斷EA=1, 定時器定時器T0 中斷允許中斷允許ET1=1 補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 程序清單如下程序清單如下: (中斷方式中斷方式) ORG 0000H AJMP START; 復(fù)位入口復(fù)位入口 ORG 001BH AJMP TOINT ; T1中斷入口中斷入口 ORG 0030HSTART: MOV SP,
30、60H; 初始化程序初始化程序 MOV TH0, 0B1H ; T1賦初值賦初值 MOV TL0, 0E0H MOV TMOD, 10H ; 工作方式設(shè)定工作方式設(shè)定 SETB TR1 ; 啟動啟動T1 補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 SETB ET1 ; 開開T1中斷中斷 SETB EA ; 開總允許中斷開總允許中斷 MAIN: AJMP MAIN ; 主程序主程序 T0INT: CPL P1.0 ; 取反取反 MOV TL0, 0B1H;重裝計數(shù)初值;重裝計數(shù)初值 MOV TH0, 0E0HRETI END查詢方式 二、二、 方式方式 1應(yīng)用應(yīng)用 方式方式 1 與
31、方式與方式 0 基本相同基本相同, 只是方式只是方式 1 改用了改用了 16 位計數(shù)位計數(shù)器。器。 要求定時周期較長時要求定時周期較長時, 13 位計數(shù)器不夠用位計數(shù)器不夠用, 可改用可改用 16 位位計數(shù)器。計數(shù)器。 例例 2 已知某生產(chǎn)線的傳送帶上不斷地有產(chǎn)品單向傳送已知某生產(chǎn)線的傳送帶上不斷地有產(chǎn)品單向傳送, 產(chǎn)品之間有較大間隔。使用光電開關(guān)統(tǒng)計一定時間內(nèi)的產(chǎn)品產(chǎn)品之間有較大間隔。使用光電開關(guān)統(tǒng)計一定時間內(nèi)的產(chǎn)品個數(shù)。個數(shù)。 假定紅燈亮?xí)r停止統(tǒng)計假定紅燈亮?xí)r停止統(tǒng)計, 紅燈滅時才在上次統(tǒng)計結(jié)果紅燈滅時才在上次統(tǒng)計結(jié)果的基礎(chǔ)上繼續(xù)統(tǒng)計的基礎(chǔ)上繼續(xù)統(tǒng)計, 試用單片機定時器試用單片機定時器 /
32、計數(shù)器計數(shù)器T1的方式的方式 1完成該項產(chǎn)品的計數(shù)任務(wù)。完成該項產(chǎn)品的計數(shù)任務(wù)。 補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 圖 6.7 硬件原理圖 補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 (1) 初始化初始化: TMOD=11010000B=0D0H (GATE=1, C/T=1, M0M1=01) TCON=00H (2) T1在方式在方式1時時, 溢出產(chǎn)生中斷溢出產(chǎn)生中斷, 且計數(shù)器回零且計數(shù)器回零, 故在中故在中斷服務(wù)程序中斷服務(wù)程序中, 需用需用R0計數(shù)中斷次數(shù)計數(shù)中斷次數(shù), 以保護累積計數(shù)結(jié)果。以保護累積計數(shù)結(jié)果。 補充:補充: 定時器定時器/計數(shù)器
33、應(yīng)用舉例計數(shù)器應(yīng)用舉例 (3) 啟動啟動T1計數(shù)計數(shù), 開開T1中斷。中斷。 程序清單如下程序清單如下: ORG 0000H AJMP START ; 復(fù)位入口復(fù)位入口 ORG 001BH AJMP T1INT ; T1中斷入口中斷入口 ORG 0100H START: MOV SP, 60H ; 初始化程序初始化程序 MOV TCON, 00H MOV TMOD, 0D0H MOV TH1, 00H 補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 MOV TL1, 00H MOV R0, 00H ; 清中斷次數(shù)計數(shù)單元清中斷次數(shù)計數(shù)單元 MOV P3, 28H; 設(shè)置設(shè)置P3.5第
34、二功能第二功能 SETB TR1 ; 啟動啟動T1 SETB ET1; 開開T1中斷中斷 SETB EA ; 開總中斷開總中斷 MAIN: ACALL DISP ; 主程序主程序, 調(diào)顯示子程序調(diào)顯示子程序 ORG 0A00H T1INT: INC R0 ; 中斷服務(wù)子程序中斷服務(wù)子程序 RETI DISP: ; 顯示子程序顯示子程序 RET 補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 三、三、 方式方式 2 應(yīng)用應(yīng)用 方式方式 2 是定時器自動重裝載的操作方式是定時器自動重裝載的操作方式, 在這種方式下在這種方式下, 定時器定時器 0 和和 1 的工作是相同的的工作是相同的,
35、它的工作過程與方式它的工作過程與方式 0、 方式方式 1 基本相同基本相同, 只不過在溢出的同時只不過在溢出的同時, 將將 8 位二進制初值位二進制初值自動重裝載自動重裝載, 即在中斷服務(wù)子程序中即在中斷服務(wù)子程序中, 不需要編程送初值不需要編程送初值, 這這里不再舉例。定時器里不再舉例。定時器 T1 工作在方式工作在方式 2 時時, 可直接用作串行可直接用作串行口波特率發(fā)生器口波特率發(fā)生器, 補充:補充: 定時器定時器/計數(shù)器計數(shù)器應(yīng)用應(yīng)用舉例舉例 補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 例例 3 利用定時器利用定時器T1,采用工作方式,采用工作方式2,計數(shù),要求每,計數(shù),
36、要求每計數(shù)計數(shù)156次,將次,將P1.7取反。取反。 選用定時器選用定時器 /計數(shù)器計數(shù)器T1 工作于計數(shù)方式工作于計數(shù)方式, 外部計數(shù)脈外部計數(shù)脈沖由沖由T1(P3.5)引腳引入)引腳引入,每來一個由每來一個由1至至0的跳變計數(shù)器加的跳變計數(shù)器加1, 由程序查詢由程序查詢TF1的狀態(tài)。的狀態(tài)。 計數(shù)初值計數(shù)初值: X=256-156=100=64H TH1=TL1=64HTMOD初始化初始化: TMOD=01100000B=60H (GATE=0, C/T=1, M1=1, M0=0)TCON初始化初始化: 啟動啟動TR1=1 ORG 2000H MOV TMOD, 60H;T1方式方式2,
37、計數(shù)方式,計數(shù)方式 MOV TH1, 64H ;T1計數(shù)初值計數(shù)初值 MOV TL1, 64H SETB TR1 ;啟動;啟動T1START: JBC TF1,REP ;TF1=1轉(zhuǎn)移轉(zhuǎn)移 SJMP LOOP ;等待;等待REP: CPL P1.7 ;取反輸出;取反輸出 SJMP LOOP補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 四、四、 方式方式 3 的應(yīng)用的應(yīng)用 定時器定時器 T0 工作在方式工作在方式 3 時是時是 2 個個 8 位定時器位定時器 /計數(shù)器。計數(shù)器。 且且TH0 借用了定時器借用了定時器 T1 的溢出中斷標志的溢出中斷標志TF1和運行控制位和運行控制位 T
38、R1。 例例 3 假設(shè)有一個用戶系統(tǒng)中已使用了兩個外部中斷源假設(shè)有一個用戶系統(tǒng)中已使用了兩個外部中斷源, 并置定時器并置定時器 T1 于方式于方式 2, 作串行口波特率發(fā)生器用作串行口波特率發(fā)生器用, 現(xiàn)要求現(xiàn)要求再增加一個外部中斷源再增加一個外部中斷源, 并由并由 P1.0 口輸出一個口輸出一個 5K Hz的方的方波(假設(shè)晶振頻率為波(假設(shè)晶振頻率為 6 MHz)。)。 補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 在不增加其它硬件開銷時在不增加其它硬件開銷時, 可把定時器可把定時器/計數(shù)器計數(shù)器 T0 置于置于工作方式工作方式 3, 利用外部引腳利用外部引腳 T0端作附加的外部
39、中斷輸入端端作附加的外部中斷輸入端, 把把 TL0 預(yù)置為預(yù)置為 0FFH, 這樣在這樣在 T0 端出現(xiàn)由端出現(xiàn)由 1至至 0 的負跳變的負跳變時時, TL0 立即溢出立即溢出, 申請中斷申請中斷, 相當(dāng)于邊沿激活的外部中斷源。相當(dāng)于邊沿激活的外部中斷源。 在方式在方式 3下下, TH0 總是作總是作 8 位定時器用位定時器用, 可以靠它來控制由可以靠它來控制由 P1.0 輸出的輸出的 5 kHz方波。方波。 由由 P1.0 輸出輸出 5 kHz的方波的方波, 即每隔即每隔 100 s使使 P1.0 的電的電平發(fā)生一次變化。則平發(fā)生一次變化。則TH0中的初始值中的初始值 X=MN=256100/2=206。 下面是有關(guān)的程序。下面是有關(guān)的程序。 補充:補充: 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 MOV TL0, 0FFH MOV TH0, 206 MOV TL1, BAUD ; BAUD根據(jù)波特率要求設(shè)置常數(shù) MOV TH1, BAUD MOV TMOD, 27H ; 置T0工作方式3計數(shù),置T1為方式2定時 MOV TCON, 55H ; 啟動定時器 T0、 T1, 置外部中斷 0 和 1 ; 為跳沿
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專項純凈水品供應(yīng)協(xié)議2024版
- 2025年影視基地場地合作經(jīng)營協(xié)議書4篇
- 個人房產(chǎn)抵押貸款協(xié)議(2024版)版A版
- 2025年度城市更新違法建筑清拆合作協(xié)議4篇
- 專屬定制體檢服務(wù)協(xié)議版
- 二零二四塔吊司機勞動合同及勞動保護規(guī)定范本3篇
- 2025年影視基地場地租賃及影視制作服務(wù)協(xié)議4篇
- 2025年度智能安防產(chǎn)品區(qū)域代理銷售合同12篇
- 2025年度廠房中央空調(diào)設(shè)備安裝與售后服務(wù)一體化合同4篇
- 2025年度場海參產(chǎn)品綠色生產(chǎn)與環(huán)保認證合同4篇
- 軟件項目應(yīng)急措施及方案
- 2025河北邯鄲經(jīng)開國控資產(chǎn)運營管理限公司招聘專業(yè)技術(shù)人才5名高頻重點提升(共500題)附帶答案詳解
- 2024年民法典知識競賽考試題庫及答案(共50題)
- 2025老年公寓合同管理制度
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級上冊 期末綜合卷(含答案)
- 鈑金設(shè)備操作培訓(xùn)
- 感染性腹瀉的護理查房
- 中考英語688高頻詞大綱詞頻表
- 九年級初三中考物理綜合復(fù)習(xí)測試卷3套(含答案)
- 管理制度評價表(填寫模板)
- 工地設(shè)計代表服務(wù)記錄
評論
0/150
提交評論