MCS-51單片機(jī)的定時(shí)器計(jì)數(shù)器_第1頁
MCS-51單片機(jī)的定時(shí)器計(jì)數(shù)器_第2頁
MCS-51單片機(jī)的定時(shí)器計(jì)數(shù)器_第3頁
MCS-51單片機(jī)的定時(shí)器計(jì)數(shù)器_第4頁
MCS-51單片機(jī)的定時(shí)器計(jì)數(shù)器_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第六章第六章 MCS-51MCS-51單片機(jī)的定時(shí)器單片機(jī)的定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器v實(shí)現(xiàn)定時(shí)常用的三種方法:實(shí)現(xiàn)定時(shí)常用的三種方法:軟件定時(shí):占用軟件定時(shí):占用CPU時(shí)間,效率低。時(shí)間,效率低。用用555電路:不可編程。電路:不可編程。可編程芯片:功能強(qiáng),需要另外擴(kuò)展??删幊绦酒汗δ軓?qiáng),需要另外擴(kuò)展。 單片機(jī)內(nèi)部有單片機(jī)內(nèi)部有2個(gè)個(gè)16位的定時(shí)位的定時(shí)/計(jì)數(shù)器:使用計(jì)數(shù)器:使用靈活,編程方便。靈活,編程方便。優(yōu)先選用優(yōu)先選用6.1 6.1 定時(shí)器定時(shí)器/ /計(jì)數(shù)器結(jié)構(gòu)計(jì)數(shù)器結(jié)構(gòu)一一. .定時(shí)器定時(shí)器/ /計(jì)數(shù)器的結(jié)構(gòu)及工作原理計(jì)數(shù)器的結(jié)構(gòu)及工作原理 MCS-51單片機(jī)內(nèi)部有兩個(gè)單片機(jī)內(nèi)部有

2、兩個(gè)16位可編程的定時(shí)器位可編程的定時(shí)器/計(jì)數(shù)器,即計(jì)數(shù)器,即定時(shí)器定時(shí)器T0和定時(shí)器和定時(shí)器T1。每個(gè)定時(shí)器。每個(gè)定時(shí)器/計(jì)計(jì)數(shù)器的基本部件是兩個(gè)數(shù)器的基本部件是兩個(gè)8位的計(jì)數(shù)器位的計(jì)數(shù)器(其中其中TH1、TL1是是T1的計(jì)數(shù)器,的計(jì)數(shù)器,TH0、TL0是是T0的計(jì)數(shù)器的計(jì)數(shù)器)拼裝拼裝而成。它們是采用而成。它們是采用加加“1”方式工作的。方式工作的。 兩個(gè)特殊功能寄存器兩個(gè)特殊功能寄存器(TMOD和和TCON)用來對用來對定時(shí)器定時(shí)器/計(jì)數(shù)器的工作方式進(jìn)行選擇和控制。計(jì)數(shù)器的工作方式進(jìn)行選擇和控制。80518051單片機(jī)的定時(shí)器單片機(jī)的定時(shí)器/ /計(jì)數(shù)器結(jié)構(gòu)如下圖所示。計(jì)數(shù)器結(jié)構(gòu)如下圖所示

3、。內(nèi)部總線工作方式工作方式TH1TL1TH0TL0TCONTMODT1T0微處理器8051單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)示意圖計(jì)數(shù)器結(jié)構(gòu)示意圖u 定時(shí)功能定時(shí)功能-計(jì)數(shù)輸入信號是內(nèi)部時(shí)鐘脈沖,其計(jì)數(shù)計(jì)數(shù)輸入信號是內(nèi)部時(shí)鐘脈沖,其計(jì)數(shù)脈沖來源于晶振時(shí)鐘輸出信號的脈沖來源于晶振時(shí)鐘輸出信號的12分頻,即每個(gè)分頻,即每個(gè)機(jī)機(jī)器周期器周期使寄存器的值加使寄存器的值加1。定時(shí)器可看做是對機(jī)器。定時(shí)器可看做是對機(jī)器周期的計(jì)數(shù)器。所以,定時(shí)計(jì)數(shù)頻率是振蕩頻率的周期的計(jì)數(shù)器。所以,定時(shí)計(jì)數(shù)頻率是振蕩頻率的1/12。計(jì)數(shù)功能計(jì)數(shù)功能-計(jì)數(shù)脈沖來自相應(yīng)的計(jì)數(shù)脈沖來自相應(yīng)的外部輸入引腳,外部輸入引腳,T0為為

4、P3.4,T1為為P3.5。只要。只要T0或或T1的引腳上有一的引腳上有一個(gè)個(gè)1到到0的負(fù)跳變,相應(yīng)的計(jì)數(shù)器就加的負(fù)跳變,相應(yīng)的計(jì)數(shù)器就加1.在在TMOD中,各有一個(gè)控制位(中,各有一個(gè)控制位(CT),分別用),分別用于控制定時(shí)于控制定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0和和T1工作在工作在定時(shí)器定時(shí)器方式還是方式還是計(jì)數(shù)器計(jì)數(shù)器方式。方式。v定時(shí)模式,對內(nèi)部定時(shí)模式,對內(nèi)部機(jī)器周期機(jī)器周期計(jì)數(shù)計(jì)數(shù) 定時(shí)時(shí)間定時(shí)時(shí)間 t 計(jì)數(shù)值計(jì)數(shù)值N x Tcyv計(jì)數(shù)模式,對計(jì)數(shù)模式,對外部事件脈沖外部事件脈沖計(jì)數(shù)計(jì)數(shù) 計(jì)數(shù)脈沖周期要大于計(jì)數(shù)脈沖周期要大于2 TcyvT0和和T1計(jì)數(shù)器都計(jì)數(shù)器都只能遞增計(jì)數(shù),只能遞增計(jì)數(shù),

5、當(dāng)當(dāng)16位計(jì)數(shù)器的位計(jì)數(shù)器的計(jì)數(shù)值增加到計(jì)數(shù)值增加到0FFFFH時(shí),再輸入時(shí),再輸入1個(gè)脈沖就會使計(jì)個(gè)脈沖就會使計(jì)數(shù)器的值數(shù)器的值回零回零,并發(fā)生,并發(fā)生溢出信號,溢出信號,置相應(yīng)的標(biāo)志位置相應(yīng)的標(biāo)志位(TCON中中TF0或或TF1置置1),), 向向CPU發(fā)出中斷請求發(fā)出中斷請求。v設(shè)定計(jì)數(shù)次數(shù):設(shè)定計(jì)數(shù)次數(shù):計(jì)數(shù)器的計(jì)數(shù)量程計(jì)數(shù)初值計(jì)數(shù)器的計(jì)數(shù)量程計(jì)數(shù)初值。二二. .定時(shí)器計(jì)數(shù)器的控制寄存器定時(shí)器計(jì)數(shù)器的控制寄存器 v與定時(shí)器計(jì)數(shù)器有關(guān)的控制寄存器有:與定時(shí)器計(jì)數(shù)器有關(guān)的控制寄存器有:1. 定時(shí)器控制寄存器定時(shí)器控制寄存器TCONvTF1:定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器1(T1)的溢出中斷標(biāo)志

6、位)的溢出中斷標(biāo)志位。vTF0:定時(shí)器:定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器0(T0)的溢出中斷標(biāo)志位。)的溢出中斷標(biāo)志位。vTR1:定時(shí)器:定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器1的運(yùn)行控制位。通過的運(yùn)行控制位。通過置置1或清或清0來啟動(dòng)或停止來啟動(dòng)或停止T1的計(jì)數(shù)的計(jì)數(shù)。vTR0:定時(shí)器:定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器0的運(yùn)行控制位。的運(yùn)行控制位。v單片機(jī)復(fù)位后單片機(jī)復(fù)位后,TCON寄存器的所有位均為寄存器的所有位均為0.2. 工作方式控制寄存器工作方式控制寄存器TMOD v高高4 4位用于定時(shí)器位用于定時(shí)器1 1,低,低4 4位用于定時(shí)器位用于定時(shí)器0 0 M1 M1,M0M0:工作模式選擇位。:工作模式選擇位。定時(shí)器定時(shí)器/ /

7、計(jì)數(shù)器四種工作模式選擇如表計(jì)數(shù)器四種工作模式選擇如表6-16-1所示。所示。 C/T:定時(shí)器方式或計(jì)數(shù)器方式選擇位:定時(shí)器方式或計(jì)數(shù)器方式選擇位 C/T=0時(shí),為定時(shí)器方式時(shí),為定時(shí)器方式 C/T=1時(shí),為計(jì)數(shù)器方式時(shí),為計(jì)數(shù)器方式 GATE:門控位:門控位當(dāng)當(dāng)GATE=0時(shí),時(shí),TCON寄存器中的寄存器中的TR0或或TR1為為1,則可立即啟動(dòng)定時(shí)器則可立即啟動(dòng)定時(shí)器/計(jì)數(shù)器;計(jì)數(shù)器;當(dāng)當(dāng)GATE=1時(shí),不但要時(shí),不但要TR0或或TR1為為1,且單片機(jī)的,且單片機(jī)的INT0或或INT1引腳的輸入要為高電平,才能啟動(dòng)定時(shí)引腳的輸入要為高電平,才能啟動(dòng)定時(shí)器器/計(jì)數(shù)器。計(jì)數(shù)器。三三. .定時(shí)器定時(shí)

8、器/ /計(jì)數(shù)器計(jì)數(shù)器0 0或或1 1的工作方式的工作方式1. 方式方式013位方式位方式。由由TL0的的低低5位位和和TH0的的8位位組成。組成。TL0的的5位計(jì)數(shù)溢出后,位計(jì)數(shù)溢出后,TH0的計(jì)數(shù)加的計(jì)數(shù)加1,直到全部,直到全部的的13位計(jì)數(shù)值為全位計(jì)數(shù)值為全1后,下一個(gè)計(jì)數(shù)脈沖的到達(dá)將后,下一個(gè)計(jì)數(shù)脈沖的到達(dá)將使使TF0置位為置位為1,向,向CPU發(fā)出中斷請求,同時(shí)把計(jì)數(shù)發(fā)出中斷請求,同時(shí)把計(jì)數(shù)器變?yōu)槿髯優(yōu)槿?”。其定時(shí)時(shí)間為:其定時(shí)時(shí)間為:(213-初值)初值)機(jī)器周期機(jī)器周期2. 方式方式116位方式位方式v16位計(jì)數(shù),由位計(jì)數(shù),由TL0作為低作為低8位、位、TH0作為高作為高8位

9、位 ;v16位計(jì)數(shù),由位計(jì)數(shù),由TL1作為低作為低8位、位、TH1作為高作為高8位。位。其定時(shí)時(shí)間為:其定時(shí)時(shí)間為:(216-初值)初值)機(jī)器周期機(jī)器周期3. 3. 方式方式2828位自動(dòng)裝入時(shí)間常數(shù)方式位自動(dòng)裝入時(shí)間常數(shù)方式v TL0作為作為8位內(nèi)部計(jì)數(shù)器,位內(nèi)部計(jì)數(shù)器,TH0作為重裝初值寄存作為重裝初值寄存器,在器,在TL0計(jì)數(shù)溢出置位計(jì)數(shù)溢出置位TF0標(biāo)志的同時(shí),由硬件標(biāo)志的同時(shí),由硬件控制直接將重裝初值裝入控制直接將重裝初值裝入TL0,開始新一輪的計(jì)數(shù),開始新一輪的計(jì)數(shù),如此不斷循環(huán)。如此不斷循環(huán)。v方式方式2和方式和方式0、1最大的差別就是最大的差別就是計(jì)數(shù)器的初值是計(jì)數(shù)器的初值是由

10、硬件控制自動(dòng)裝入的。由硬件控制自動(dòng)裝入的。v方式方式0、1一旦計(jì)數(shù)溢出,就表示計(jì)數(shù)器已回一旦計(jì)數(shù)溢出,就表示計(jì)數(shù)器已回0,如,如果要按照原先的初值重新計(jì)數(shù),就需要通過軟件重果要按照原先的初值重新計(jì)數(shù),就需要通過軟件重裝計(jì)數(shù)器初值。裝計(jì)數(shù)器初值。方式方式2 2適合于用作較精確的脈沖信號發(fā)生器適合于用作較精確的脈沖信號發(fā)生器。4. 4. 方式方式3232個(gè)個(gè)8 8位方式位方式v僅僅T0可以工作在方式可以工作在方式3,T1處于方式處于方式3時(shí)停止計(jì)數(shù)。時(shí)停止計(jì)數(shù)。此時(shí),此時(shí),T0分成分成2個(gè)獨(dú)立的計(jì)數(shù)器個(gè)獨(dú)立的計(jì)數(shù)器TL0和和TH0,前者,前者用原來用原來T0的控制信號(的控制信號(TR0、TF0)

11、,后者用原來),后者用原來T1的控制信號(的控制信號(TR1、TF1)。)。v(1)TH0(1)TH0由由TR1TR1啟動(dòng)啟動(dòng)/ /停止,溢出停止,溢出TF1TF1v(2)TL0(2)TL0由由TR0TR0啟動(dòng)啟動(dòng)/ /停止,溢出停止,溢出TF0TF0v(3)TH0(3)TH0只能定時(shí),只能定時(shí),TL0TL0可以定時(shí)可以定時(shí)/ /計(jì)數(shù),且都是計(jì)數(shù),且都是8 8位。位。1初始化步驟初始化步驟 MCS-51內(nèi)部定時(shí)器內(nèi)部定時(shí)器/計(jì)數(shù)器是可編程的,其工計(jì)數(shù)器是可編程的,其工作方式和工作過程均可由作方式和工作過程均可由MCS-51通過程序?qū)λM(jìn)通過程序?qū)λM(jìn)行設(shè)定和控制。因此,行設(shè)定和控制。因此,MC

12、S-51在定時(shí)器在定時(shí)器/計(jì)數(shù)器工計(jì)數(shù)器工作前必須先對它進(jìn)行初始化。初始化步驟為:作前必須先對它進(jìn)行初始化。初始化步驟為:(1) 根據(jù)題目要求先給根據(jù)題目要求先給定時(shí)器方式寄存器定時(shí)器方式寄存器TMOD送一送一個(gè)方式控制字,以設(shè)定定時(shí)器個(gè)方式控制字,以設(shè)定定時(shí)器/計(jì)數(shù)器的相應(yīng)工作方計(jì)數(shù)器的相應(yīng)工作方式。式。(2) 根據(jù)實(shí)際需要給定時(shí)器根據(jù)實(shí)際需要給定時(shí)器/計(jì)數(shù)器選送定時(shí)器初值或計(jì)數(shù)器選送定時(shí)器初值或計(jì)數(shù)器初值,以計(jì)數(shù)器初值,以確定需要定時(shí)的時(shí)間和需要計(jì)數(shù)的確定需要定時(shí)的時(shí)間和需要計(jì)數(shù)的初值。初值。6.2 6.2 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的初始化計(jì)數(shù)器的初始化(3) (3) 根據(jù)需要給中斷允許寄

13、存器根據(jù)需要給中斷允許寄存器IEIE選送中斷控制字和選送中斷控制字和給中斷優(yōu)先級寄存器給中斷優(yōu)先級寄存器IPIP選送中斷優(yōu)先級字,以選送中斷優(yōu)先級字,以開放開放相應(yīng)中斷和設(shè)定中斷優(yōu)先級。(若采用中斷方式)相應(yīng)中斷和設(shè)定中斷優(yōu)先級。(若采用中斷方式)(4) (4) 給定時(shí)器控制寄存器給定時(shí)器控制寄存器TCONTCON送命令字,以送命令字,以啟動(dòng)或禁啟動(dòng)或禁止定時(shí)器止定時(shí)器/ /計(jì)數(shù)器的運(yùn)行計(jì)數(shù)器的運(yùn)行。 2. 計(jì)數(shù)器初值的計(jì)算計(jì)數(shù)器初值的計(jì)算 定時(shí)器定時(shí)器/計(jì)數(shù)器可用軟件隨時(shí)隨地啟動(dòng)和關(guān)閉,計(jì)數(shù)器可用軟件隨時(shí)隨地啟動(dòng)和關(guān)閉,啟動(dòng)時(shí)它就自動(dòng)加啟動(dòng)時(shí)它就自動(dòng)加1計(jì)數(shù),一直計(jì)到滿,即全為計(jì)數(shù),一直計(jì)到

14、滿,即全為1,若不停止,計(jì)數(shù)值從全若不停止,計(jì)數(shù)值從全1變?yōu)槿優(yōu)槿?,同時(shí)將計(jì)數(shù)溢出,同時(shí)將計(jì)數(shù)溢出位置位置1并向并向CPU發(fā)出定時(shí)器溢出中斷申請。對于各發(fā)出定時(shí)器溢出中斷申請。對于各種不同的工作模式,最大的定時(shí)時(shí)間和計(jì)數(shù)數(shù)值不種不同的工作模式,最大的定時(shí)時(shí)間和計(jì)數(shù)數(shù)值不同。這里在使用中就會出現(xiàn)兩個(gè)問題:同。這里在使用中就會出現(xiàn)兩個(gè)問題:一是要產(chǎn)生比定時(shí)器最長的定時(shí)時(shí)間還要短的時(shí)一是要產(chǎn)生比定時(shí)器最長的定時(shí)時(shí)間還要短的時(shí)間和比計(jì)數(shù)器最多的計(jì)數(shù)次數(shù)還要少的計(jì)數(shù)次數(shù);間和比計(jì)數(shù)器最多的計(jì)數(shù)次數(shù)還要少的計(jì)數(shù)次數(shù); 二是要產(chǎn)生比定時(shí)器最長的定時(shí)時(shí)間還要長的時(shí)二是要產(chǎn)生比定時(shí)器最長的定時(shí)時(shí)間還要長的時(shí)

15、間和比計(jì)數(shù)器最多的計(jì)數(shù)次數(shù)還要多的計(jì)數(shù)次數(shù)。間和比計(jì)數(shù)器最多的計(jì)數(shù)次數(shù)還要多的計(jì)數(shù)次數(shù)。 如果計(jì)數(shù)初值設(shè)定為如果計(jì)數(shù)初值設(shè)定為C C,則計(jì)數(shù)器從初值,則計(jì)數(shù)器從初值C C開始作加開始作加1 1計(jì)數(shù)到計(jì)滿為全計(jì)數(shù)到計(jì)滿為全1 1所需要的計(jì)數(shù)值設(shè)定為所需要的計(jì)數(shù)值設(shè)定為D D,由此,由此便可得到如下的計(jì)算通式:便可得到如下的計(jì)算通式: C C = =M M- -D D 式中,式中,M M為計(jì)數(shù)器量程,該值和計(jì)數(shù)器工作模式有關(guān)。為計(jì)數(shù)器量程,該值和計(jì)數(shù)器工作模式有關(guān)。在在模式模式0 0時(shí),時(shí),M M為為2 21313;在模式;在模式1 1時(shí),時(shí),M M為為2 21616;在模式;在模式2 2和模式和

16、模式3 3時(shí),時(shí),M M為為2 28 8。3 3定時(shí)器初值的計(jì)算定時(shí)器初值的計(jì)算 在定時(shí)器方式下,計(jì)數(shù)器由單片機(jī)脈沖經(jīng)在定時(shí)器方式下,計(jì)數(shù)器由單片機(jī)脈沖經(jīng)1212分頻后分頻后計(jì)數(shù)。因此,定時(shí)器定時(shí)時(shí)間計(jì)數(shù)。因此,定時(shí)器定時(shí)時(shí)間T T的計(jì)算公式為的計(jì)算公式為式中,式中,Tc為定時(shí)器的初始常數(shù)值;為定時(shí)器的初始常數(shù)值;T為計(jì)數(shù)器從初為計(jì)數(shù)器從初值值Tc開始作加開始作加1計(jì)數(shù)到計(jì)滿為全計(jì)數(shù)到計(jì)滿為全1所需要的時(shí)間;所需要的時(shí)間;M為計(jì)數(shù)器量程,和定時(shí)器的工作模式有關(guān);為計(jì)數(shù)器量程,和定時(shí)器的工作模式有關(guān);fosc是單片機(jī)晶體振蕩器的頻率。是單片機(jī)晶體振蕩器的頻率。v在上式中,若設(shè)在上式中,若設(shè)Tc=

17、0,則定時(shí)器定時(shí)時(shí)間為最大,則定時(shí)器定時(shí)時(shí)間為最大(初值為初值為0,計(jì)數(shù)從全,計(jì)數(shù)從全0到全到全1,溢出后又為全,溢出后又為全0)。由。由于于M的值和定時(shí)器工作模式有關(guān),因此不同工作模的值和定時(shí)器工作模式有關(guān),因此不同工作模式下定時(shí)器的最大定時(shí)時(shí)間也不一樣。例如,若設(shè)式下定時(shí)器的最大定時(shí)時(shí)間也不一樣。例如,若設(shè)單片機(jī)主脈沖晶體振蕩器頻率單片機(jī)主脈沖晶體振蕩器頻率fosc為為12MHz,則最,則最大定時(shí)時(shí)間為大定時(shí)時(shí)間為v模式模式0 0時(shí):時(shí): T Tmaxmax= =2 213131s1s= =8.1928.192msmsv模式模式1 1時(shí):時(shí): T Tmaxmax= =2 21616 1s1

18、s= =65.53665.536msmsv模式模式2 2和和3 3時(shí):時(shí): T Tmaxmax= =2 28 8 1s1s= =0.2560.256msms例例6-5.用定時(shí)器用定時(shí)器1,方式,方式2實(shí)現(xiàn)實(shí)現(xiàn)1s的延時(shí)。的延時(shí)。 【例 6-1】 設(shè)定時(shí)器 T0 工作在模式 0 時(shí),時(shí)鐘振蕩頻率為6 MHz,要求定時(shí)時(shí)間為 1 ms。 解 將數(shù)據(jù)代入公式得定時(shí)器 T0 初值為 612)(cTM s = 1 ms = 1000 s Tc = 213 - 500 = 7692 = 1E0CH 化成二進(jìn)制數(shù)為 Tc = 1 1110 0000 1100B (213 - Tc) 12 根據(jù)根據(jù)13位定時(shí)

19、器位定時(shí)器/計(jì)數(shù)器特性,先把低計(jì)數(shù)器特性,先把低5位位0CH送送TL0,TL0的高三位置零,高的高三位置零,高8位位F0H送至送至TH0。可用下列。可用下列指令實(shí)現(xiàn)定時(shí)器指令實(shí)現(xiàn)定時(shí)器T0初始化。初始化。MOV TMOD,#00H ;T0工作于模式工作于模式0,定,定時(shí)方式時(shí)方式MOV TL0,#0CH ;低;低5位送位送TL0寄存器寄存器MOV TH0,#0F0H ;高;高8位送位送TH0寄存器寄存器同樣,先把低 5 位 10000B 送 TL0,TL0 的高 3 位置零,余下的 8 位 11000 001B 送至 TH0。這樣就得到定時(shí)器工作在模式 0 時(shí)的初值 C110H,TH0 應(yīng)裝

20、C1H,TL0 應(yīng)裝 10H。 若采取模式 1,則有 Tc = 11022316 s = 63 536 = F830H TH0 應(yīng)裝 F8H;TL0 應(yīng)裝 30H。 【例 6-3】 設(shè) T1 作定時(shí)器,以模式 1 工作,定時(shí)時(shí)間為 10 ms;T0 作計(jì)數(shù)器,工作在模式 2,T0(P3.4)引腳上發(fā)生一次事件(脈沖)即溢出。 解 T1 的時(shí)間初值為 (216 - Tc) 2 s = 10 ms Tc = EC78H T0 的計(jì)數(shù)初值常數(shù)為 FFH。 v初始化程序:初始化程序:MOV TMOD,#16H ;T1定時(shí)模式定時(shí)模式1,T0計(jì)數(shù)模式計(jì)數(shù)模式2MOV TL0,#0FFH ;T0時(shí)間常數(shù)送

21、時(shí)間常數(shù)送TL0MOV TH0,#0FFH ;T0時(shí)間常數(shù)送時(shí)間常數(shù)送TH0MOV TL1,#78H ;T1時(shí)間常數(shù)時(shí)間常數(shù)(低低8位位)送送TL1MOV TH1,#0ECH ;T1時(shí)間常數(shù)時(shí)間常數(shù)(高高8位位)送送TH1SETB TR0 ;置;置TR0為為1,允許,允許T0啟動(dòng)計(jì)數(shù)啟動(dòng)計(jì)數(shù)SETB TR1 ;置;置TR1為為1,允許,允許T1啟動(dòng)計(jì)啟動(dòng)計(jì) 【例 6-4】 設(shè)定時(shí)器 T0,工作在模式 1,試編寫一個(gè)延時(shí) 1 s 的子程序。 解 若主頻頻率為 6 MHz,可求得 T0 的最大定時(shí)時(shí)間為 Tmax = 216 2 s = 131.072 ms 我們就用定時(shí)器獲得 100 ms 的定

22、時(shí)時(shí)間再加 10 次循環(huán)得到 1 s的延時(shí),可算得 100 ms 定時(shí)的定時(shí)初值: (216 - Tc) 2 s = 100 ms = 100 000 s Tc = 216 - 50 000 = 15 536 = 3CB0H 例例6-5.用定時(shí)器用定時(shí)器1,方式,方式2實(shí)現(xiàn)實(shí)現(xiàn)1s的延時(shí)(的延時(shí)(12MHZ)。)。解:因方式解:因方式2 2是是8 8位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:256256* *1s=256s1s=256s,為實(shí)現(xiàn),為實(shí)現(xiàn)1s1s的延時(shí),可選擇定時(shí)的延時(shí),可選擇定時(shí)時(shí)間為時(shí)間為250s250s,再循環(huán),再循環(huán)40004000次次。定時(shí)時(shí)間選定后,。定

23、時(shí)時(shí)間選定后,可確定計(jì)數(shù)值為可確定計(jì)數(shù)值為250250,則定時(shí)器,則定時(shí)器1 1的初值為:的初值為:X=M-X=M-計(jì)計(jì)數(shù)值數(shù)值=256-250=6=6H=256-250=6=6H。采用。采用定時(shí)器定時(shí)器1 1,方式,方式2 2工作工作,因此,因此,TMOD=20HTMOD=20H。DELAYDELAY:MOV R7MOV R7,#40#40; ;置置25ms25ms計(jì)數(shù)循環(huán)初值計(jì)數(shù)循環(huán)初值 MOV R6MOV R6,#100#100; ;置置250s250s計(jì)數(shù)循環(huán)初值計(jì)數(shù)循環(huán)初值 MOV TMODMOV TMOD,#20H#20H; ;設(shè)定時(shí)器設(shè)定時(shí)器1 1為方式為方式2 2 MOV TH

24、1 MOV TH1,#06H#06H; ;置定時(shí)器初值置定時(shí)器初值 MOV TL1MOV TL1,#06H#06H SETB TR1 SETB TR1; ;啟動(dòng)啟動(dòng)T1T1LP1LP1: JBC TF1JBC TF1,LP2LP2 ; ;查詢計(jì)數(shù)溢出查詢計(jì)數(shù)溢出 SJMP LP1SJMP LP1 ; ;無溢出則繼續(xù)計(jì)數(shù)無溢出則繼續(xù)計(jì)數(shù)LP2LP2: DJNZ R6DJNZ R6,LP1LP1; ;未到未到25ms25ms繼續(xù)循環(huán)繼續(xù)循環(huán) MOV R6MOV R6,#100#100 DJNZ R7 DJNZ R7,LP1LP1; ;未到未到1s1s繼續(xù)循環(huán)繼續(xù)循環(huán) RETRET; ;返回主程序返回主程序 6.3 定時(shí)器定時(shí)器/計(jì)數(shù)器的應(yīng)用計(jì)數(shù)器的應(yīng)用v 定時(shí)器定時(shí)器/計(jì)數(shù)器是單片機(jī)的重要組成部分,其工作計(jì)數(shù)器是單片機(jī)的重要組成部分,其工作方式靈活,功能強(qiáng)大,配合中斷使用可減輕方式靈活,功能強(qiáng)大,配合中斷使用可減輕CPU的的負(fù)擔(dān),減少外圍電路。本節(jié)通過實(shí)例說明定時(shí)器負(fù)擔(dān),減少外圍電路。本節(jié)通過實(shí)例說

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論