




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)原理及應(yīng)用(第五章 定時(shí)/計(jì)數(shù)器)教學(xué)內(nèi)容定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與功能定時(shí)/計(jì)數(shù)器的控制DATE: 2022/7/17PAGE: 2 一、 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與功能 8051單片機(jī)內(nèi)部有兩個(gè)定時(shí)/計(jì)數(shù)器T0及T1,具有定時(shí)和計(jì)數(shù)兩種功能。T0及T1在計(jì)數(shù)過程中不需要CPU參與,也不影響CPU的其他工作。當(dāng)計(jì)數(shù)溢出后,定時(shí)/計(jì)數(shù)器給出中斷信號,申請CPU停止當(dāng)前的工作,去處理預(yù)先設(shè)定的中斷事件。DATE: 2022/7/17PAGE: 3 一、 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與功能 1.計(jì)數(shù)功能計(jì)數(shù)器用于統(tǒng)計(jì)從TO(P3.4)和Tl(P3.5)兩個(gè)引腳輸入脈沖的負(fù)跳變數(shù)量。負(fù)跳變是指前一個(gè)機(jī)器周期采樣為高
2、電平,后一個(gè)機(jī)器周期為低電平。每輸入一個(gè)脈沖負(fù)跳變,計(jì)數(shù)器加1。輸入脈沖的高電平與低電平至少應(yīng)保持一個(gè)機(jī)器周期時(shí)間,以確保正確采樣,因此輸入脈沖的頻率最高為單片機(jī)內(nèi)部脈沖頻率的一半。如果內(nèi)部脈沖頻率為1 MHZ,則最高計(jì)數(shù)頻率為0.5 MHz。DATE: 2022/7/17PAGE: 4 一、 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與功能 2.定時(shí)功能定時(shí)功能是單片機(jī)通過對內(nèi)部機(jī)器脈沖信號計(jì)數(shù)實(shí)現(xiàn)的,計(jì)數(shù)值乘以機(jī)器周期就是相應(yīng)的時(shí)間。例如,如果單片機(jī)采用12 MHz的晶振,則機(jī)器內(nèi)部脈沖頻率為1 MHz,則機(jī)器周期為1us,若共計(jì)數(shù)1000,則用時(shí)為1ms時(shí)間。DATE: 2022/7/17PAGE: 5 二、定
3、時(shí)/計(jì)數(shù)器的控制每個(gè)定時(shí)/計(jì)數(shù)器都是16位,分別由兩個(gè)8位專用寄存器組成。低8位記為TL,高8位記為TH,用以存放16位計(jì)數(shù)初值的低8位和高8位。為控制定時(shí)器正常工作,其內(nèi)部還設(shè)有兩個(gè)8位的特殊寄存器TMOD和TCON。TMOD用于控制定時(shí)/計(jì)數(shù)器的工作方式,TCON用于控制T0和T1的啟動與停止,以及保存T0和 T1的溢出和中斷標(biāo)志。TMOD和TCON的內(nèi)容是通過編程設(shè)置的,系統(tǒng)復(fù)位時(shí),二者均自動清零。設(shè)置定時(shí)/計(jì)數(shù)器的過程是先初始化工作方式寄存器TMOD,并為定時(shí)/計(jì)數(shù)器賦初值,然后通過控制寄存器TCON中的TRO或TRl實(shí)現(xiàn)啟動或停止。 DATE: 2022/7/17PAGE: 6 二、
4、定時(shí)/計(jì)數(shù)器的控制定時(shí)/計(jì)數(shù)器的控制字1.工作方式寄存器TMOD (Timer mode)工作方式寄存器TMOD用于控制定時(shí)/計(jì)數(shù)器的工作方式和工作模式,長度為一個(gè)字節(jié),只能按字節(jié)整體賦值,其各位的意義見表5-1。DATE: 2022/7/17PAGE: 7 二、定時(shí)/計(jì)數(shù)器的控制(1)GATE(門控制位)用于設(shè)置TO(T1)的啟動方式。當(dāng)GATE=0時(shí),以寄存器TCON中的TRO(TR1)位控制TO(T1)啟動或停止。例如,當(dāng)置TRO為“1”時(shí)T0啟動,當(dāng)置TRO為“0”時(shí)T0停止。當(dāng)設(shè)置GATE=1時(shí),則TO(Tl)的啟動受TRO(TR1)和外部中斷信號INT0(INT1)共同控制。例如,
5、只有當(dāng)置INT0和TRO都為“1”時(shí)T0才啟動,否則T0停止。DATE: 2022/7/17PAGE: 8 二、定時(shí)/計(jì)數(shù)器的控制(2)CT用于設(shè)置TRO(TR1)是工作于計(jì)數(shù)器或定時(shí)器模式。當(dāng) CT =0時(shí),TRO(TR1)工作于定時(shí)器方式;當(dāng)CT =1時(shí),TRO(TR1)工作于計(jì)數(shù)器方式。(3)Ml和M0用于設(shè)置TO(T1)的工作方式。當(dāng)M1=0且M0=0時(shí)工作于方式0(13位計(jì)數(shù)器);當(dāng)M1=0且M0=1時(shí)工作于方式1(16位計(jì)數(shù)器);當(dāng)M1=1且M0=0時(shí)工作于方式2(自重裝的8位計(jì)數(shù)器);當(dāng)M1=1且M0=1時(shí)工作于方式3(T0為兩個(gè)獨(dú)立的8位計(jì)數(shù) 器,T1無效)。DATE: 202
6、2/7/17PAGE: 9 二、定時(shí)/計(jì)數(shù)器的控制 例5-1:設(shè)定時(shí)器1為定時(shí)工作方式,按方式2工作,定時(shí)器0為計(jì)數(shù)方式,按方式1工作,均由程序單獨(dú)控制啟動和停止,請給出TMOD控制字。解:定時(shí)器1做定時(shí)器使用則D6=0;按方式2工作則D5=1,D4=0;由程序單獨(dú)控制啟停則 D7=0 。定時(shí)器0做計(jì)數(shù)器使用則D2=1;按方式1工作則D0=0,D1=1;由程序單獨(dú)控制啟停則 D3=0。因此命令字TMOD的值應(yīng)為00100101B,即25H。DATE: 2022/7/17PAGE: 10 二、定時(shí)/計(jì)數(shù)器的控制2.定時(shí)器控制寄存器TCON (Timer controller)TCON也是8位寄存
7、器,與TMOD不同的是它可按位單獨(dú)賦值,其各位的意義見下表2。DATE: 2022/7/17PAGE: 11 二、定時(shí)/計(jì)數(shù)器的控制低4位用于設(shè)置外部中斷,高4位用于設(shè)置定時(shí)/計(jì)數(shù)器。(1)TRO和TRl分別用于控制T0 和T1的啟動或停止。當(dāng)TRO(TRl)置“1”時(shí),啟動定時(shí)/計(jì)數(shù)器;當(dāng)TRO(TRl)置“0”時(shí),停止定時(shí)/計(jì)數(shù)器。(2)TFO 和TFl分別是T0 和T1的溢出標(biāo)志位。當(dāng)定時(shí)或計(jì)數(shù)因達(dá)到最大計(jì)數(shù)容量而產(chǎn)生溢出時(shí),此位由硬件自動置1,當(dāng)轉(zhuǎn)向中斷服務(wù)程序時(shí)由硬件自動清零,若無中斷服務(wù)程序則需要由編程進(jìn)行清0。DATE: 2022/7/17PAGE: 12 二、定時(shí)/計(jì)數(shù)器的控制
8、定時(shí)/計(jì)數(shù)器的工作方式 寄存器TMOD的M1和M0兩位的四種組合構(gòu)成了定時(shí)/計(jì)數(shù)器的四種工作方式。一、方式0和方式1 方式0是13位的定時(shí)/計(jì)數(shù)器,它由TL的低5位和TH的8位構(gòu)成,方式1是16位的定時(shí)/計(jì)數(shù)器,由 TH的8位和TL的8位構(gòu)成。方式0和方式1的工作原理基本相同,以下以T0為例進(jìn)行說明。DATE: 2022/7/17PAGE: 13 二、定時(shí)/計(jì)數(shù)器的控制一、方式0和方式1 方式0是13位的定時(shí)/計(jì)數(shù)器,它由TL的低5位和TH的8位構(gòu)成,方式1是16位的定時(shí)/計(jì)數(shù)器,由TH的8位和TL的8位構(gòu)成。方式0和方式1的工作原理基本相同。DATE: 2022/7/17PAGE: 14 二
9、、定時(shí)/計(jì)數(shù)器的控制方式0和方式1的特點(diǎn):TO啟動后,在TL和TH中存儲的計(jì)數(shù)初值基礎(chǔ)上進(jìn)行加“1”計(jì)數(shù),直至溢出。溢出時(shí)T0寄存器被清零,TF0被置位,并申請中斷。此后,若TO重新啟動,則從零重新開始計(jì)數(shù)。若希望T0從某一數(shù)值開始計(jì)數(shù),則應(yīng)給計(jì)數(shù)器賦初值。若所需計(jì)數(shù)長度為N,則計(jì)數(shù)初值X=2M-N(1N2M),其中當(dāng)工作于方式0時(shí),M=13,當(dāng)工作于方式1時(shí),M=16。在為計(jì)數(shù)器賦初值時(shí),應(yīng)將初值拆成高低兩部分字節(jié),分別送入TL和TH。DATE: 2022/7/17PAGE: 15 二、定時(shí)/計(jì)數(shù)器的控制實(shí)例5-2 欲采用8051單片機(jī)控制8個(gè)LED同時(shí)以1s為周期閃爍,設(shè)計(jì)電路原理圖并編寫
10、程序。DATE: 2022/7/17PAGE: 16 設(shè)置定時(shí)/計(jì)數(shù)器的過程: 1)先初始化工作方式寄存器TMOD 2)為定時(shí)/計(jì)數(shù)器賦初值 3)通過控制寄存器TCON中的TRO或TRl實(shí)現(xiàn)啟動或停止。 二、定時(shí)/計(jì)數(shù)器的控制#include / 將8051單片機(jī)頭文件包含到文件中main(void ) unsigned char counter; /設(shè)置無符號字符型變量,存儲定時(shí)器中斷次數(shù)。 TMOD=0 x01; /設(shè)T0為定時(shí)模式,由TR0控制啟動和停止,且工作于方式1TH0=(65536-46083)/256; /初始化T0的高8位TL0=(65536-46083)%256; /初始化
11、T0的低8位TF0=0; /初始化定時(shí)器溢出標(biāo)志P0=0 xff; /關(guān)閉LED counter=0; /從0開始計(jì)數(shù) TR0=1; /啟動定時(shí)器0 while(1) while(TF0=1) /如果定時(shí)器溢出 counter+; /計(jì)時(shí)次數(shù)加1 if(counter=20) /計(jì)時(shí)時(shí)間達(dá)到1s P0=P0; / P0所有位取反,使LED閃爍 counter=0; /重新從0開始計(jì)數(shù) TH0=(65536-46083)/256; /重新初始化T0的高8位 TL0=(65536-46083)%256; /重新初始化T0的低8位 TF0=0; /重新初始化定時(shí)器溢出標(biāo)志 DATE: 2022/7/
12、17PAGE: 17 二、定時(shí)/計(jì)數(shù)器的控制二、方式2 方式2的特點(diǎn)是能自動加載計(jì)數(shù)初值。16位計(jì)數(shù)器被分為兩部分,以TL0作為計(jì)數(shù)器,以TH0作為存儲器。初始化時(shí)把計(jì)數(shù)初值分別加載至TL0和TH0中,當(dāng)計(jì)數(shù)溢出時(shí),由存儲器TH0自動給計(jì)數(shù)器TL0加載計(jì)數(shù)初值。若所需計(jì)數(shù)長度為N,則計(jì)數(shù)初值X=28-N(1N256)。DATE: 2022/7/17PAGE: 18 二、定時(shí)/計(jì)數(shù)器的控制實(shí)例5-3 圖5-4是產(chǎn)品包裝生產(chǎn)線的計(jì)數(shù)系統(tǒng),每個(gè)產(chǎn)品經(jīng)過計(jì)數(shù)裝置時(shí)由機(jī)械桿碰合按鍵S1一次。當(dāng)?shù)谝淮斡?jì)滿一包(5個(gè))則D1亮,計(jì)滿第二包則D2亮,計(jì)滿第八包則D1D8全亮,八包包裝成一箱,此后重復(fù)以上過程。
13、編寫程序?qū)崿F(xiàn)此功能。DATE: 2022/7/17PAGE: 19 二、定時(shí)/計(jì)數(shù)器的控制解:程序如下:#include / 包含51單片機(jī)寄存器定義的頭文件unsigned char counter; /計(jì)數(shù)初值main(void ) TMOD=0 x60; /使用T1的工作方式2TH1=256-5; / T1的高8位賦初值TL1=256-5; / T1的低8位賦初值 counter=0; TR1=1; /啟動T1while(1) while(TF1=1) /如果計(jì)滿 TF1=0; /計(jì)數(shù)器溢出后,將TF1清0 counter+; /計(jì)數(shù)加1DATE: 2022/7/17PAGE: 20 二
14、、定時(shí)/計(jì)數(shù)器的控制 switch (counter) /檢查中斷計(jì)數(shù)值 case 1: P0=0 xfe; break; /則第1個(gè)燈亮 case 2: P0=0 xfd; break; /第2個(gè)燈亮 case 3: P0=0 xfb; break; /第3個(gè)燈亮 case 4: P0=0 xf7; break; /第4個(gè)燈亮 case 5: P0=0 xef; break; /第5個(gè)燈亮 case 6: P0=0 xdf; break; /第6個(gè)燈亮 case 7: P0=0 xbf; break; /第7個(gè)燈亮 case 8: P0=0 x00; counter=0; break; /8個(gè)燈全亮 DATE: 2022/7/17PAGE: 21 二、定時(shí)/計(jì)數(shù)器的控制四、方式3 TO被拆成兩個(gè)獨(dú)立的8位計(jì)數(shù)器TLO和THO,TL0獨(dú)占T0的各控制位、引腳和中斷源,既可以用作定時(shí)器也可作計(jì)數(shù)器。TH0只能作為定時(shí)器使用,且需要占用T1的控制位TR1和TF1實(shí)現(xiàn)啟停和中斷。DA
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水泥定價(jià)協(xié)議書
- 牛奶價(jià)格協(xié)議書
- 建筑服務(wù)保潔合同
- 綠色食品供應(yīng)鏈管理系統(tǒng)開發(fā)與運(yùn)營合作協(xié)議
- 平安普惠借款合同
- 鄉(xiāng)村農(nóng)業(yè)現(xiàn)代化推廣協(xié)議
- 車隊(duì)承包維修合同協(xié)議
- 運(yùn)輸企業(yè)雇車合同協(xié)議
- 運(yùn)輸項(xiàng)目合作合同協(xié)議
- 油品設(shè)備協(xié)議書
- 2024-2025年上海中考英語真題及答案解析
- GB/T 19510.213-2023光源控制裝置第2-13部分:LED模塊用直流或交流電子控制裝置的特殊要求
- 2024年橋式起重機(jī)司機(jī)(中級)職業(yè)技能考試題庫(職校培訓(xùn))
- 工程建設(shè)公司QC小組道路瀝青混凝土面層裂縫的控制成果匯報(bào)書
- 提升教師專業(yè)素養(yǎng)與綜合能力的培訓(xùn)
- 文創(chuàng)產(chǎn)品設(shè)計(jì)-第四章-文創(chuàng)產(chǎn)品設(shè)計(jì)的基本流程
- 【承諾書】危險(xiǎn)化學(xué)品承諾書
- C語言程序設(shè)計(jì)說課(共34張PPT)
- (完整版)初二地理會考模擬試卷(含答案)
- 骨盆骨折的護(hù)理查房課件
- 爆破安全規(guī)程解讀
評論
0/150
提交評論