版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第6章MCS-51單片機(jī)
的定時器/計(jì)數(shù)器2/4/202316.1計(jì)數(shù)/定時器的結(jié)構(gòu)CPU計(jì)數(shù)器/定時器T1計(jì)數(shù)器/定時器T0TL0TH07070168CH8AH8位的加1計(jì)數(shù)器TL1TH170708DH8B16TMOD(89H)方式寄存器機(jī)器周期定時模式P3.5P3.4計(jì)數(shù)模式只能字節(jié)尋址TCON(88H)控制寄存器TMOD(89H)GATEC/TM0M0GATEC/TM1M0D7D6D5D4D3D2D1D0TMOD:計(jì)數(shù)器/定時器方式寄存器定時/計(jì)數(shù)器0定時/計(jì)數(shù)器11:計(jì)數(shù)模式分別對P3.5P3.4的脈沖計(jì)數(shù)脈沖頻率<晶振頻率0:定時模式對機(jī)器周期脈沖計(jì)數(shù)TCON88hTF1TR1TF0TR0IE1IT1IE0IT0D7D6D5D4D3D2D1D0計(jì)數(shù)器/定時器控制寄存器TR1=1計(jì)數(shù)/定時器1開始計(jì)數(shù)TR1=0計(jì)數(shù)/定時器1停止計(jì)數(shù)TR0=1計(jì)數(shù)/定時器0開始計(jì)數(shù)TR0=0計(jì)數(shù)/定時器0停止計(jì)數(shù)計(jì)數(shù)/定時器0的工作原理16位計(jì)數(shù)器TL0TH0TR0工作模式選擇定時計(jì)數(shù)TF0啟動與停止控制振蕩器12P3.4晶振頻率fosc=12MHz123456789101112計(jì)數(shù)頻率fc=1MHz1s機(jī)器周期機(jī)器周期&GATE1T0啟動方式兩種:軟件(GATE0=0):
TR0=1硬件(GATE0=1,TR0=1):門控位0定時計(jì)數(shù)00000123456555300000123455556300000TMOD(89H)GATEC/TM0M0GATEC/TM1M0D7D6D5D4D3D2D1D0TMOD:計(jì)數(shù)器/定時器方式寄存器定時/計(jì)數(shù)器0定時/計(jì)數(shù)器1M1M0工作方式功能說明00方式013位定時器/計(jì)數(shù)器01方式116位定時器/計(jì)數(shù)器10方式28位自動重裝定時器/計(jì)數(shù)器11方式3
T0分成兩個獨(dú)立的8位定時器/計(jì)數(shù)器;T1在該方式下停止計(jì)數(shù),在其他方式下可工作,但不能產(chǎn)生溢出中斷請求標(biāo)志6.3.1方式0圖6-4定時器/計(jì)數(shù)器工作于方式0時的邏輯結(jié)構(gòu)圖選擇開關(guān)接通的計(jì)數(shù)脈沖是機(jī)器周期脈沖,T0對內(nèi)部機(jī)器周期計(jì)數(shù)。定時時間由如下公式確定。定時時間
=
計(jì)數(shù)值
×
機(jī)器周期
=
(213?計(jì)數(shù)初值)
×
機(jī)器周期其中,機(jī)器周期
=
時鐘周期
×
12213是T0在方式0時的最大計(jì)數(shù)值。1.當(dāng)=
0時,為定時模式在定時應(yīng)用中,只要根據(jù)需要定時的時間值計(jì)算出計(jì)數(shù)初值,送入TH0、TL0中,便可以實(shí)現(xiàn)精確定時,計(jì)數(shù)初值按如下公式計(jì)算。計(jì)數(shù)初值
=
213
?
定時時間/機(jī)器周期如果晶振頻率為12MHz,則時鐘周期為(1/12)s,機(jī)器周期為1s,當(dāng)初值為0時,方式0的最長定時時間為8.192ms。解:根據(jù)公式,計(jì)算如下。計(jì)數(shù)初值
=
213
?
定時時間/機(jī)器周期
=
213
?
2ms/1s
=
6192
=
1100000110000B
即TH0應(yīng)裝入計(jì)數(shù)初值的高8位為C1H,TL0應(yīng)裝入計(jì)數(shù)初值的低5位為10H?!纠?-1】若單片機(jī)使用的晶振頻率為12MHz。請計(jì)算采用T0方式0定時2ms所需的定時器初值。MOVTH0,#0C1HMOVTL0,#10H6.3.2方式1圖6-5定時器/計(jì)數(shù)器工作于方式1時的邏輯結(jié)構(gòu)圖方式1的計(jì)數(shù)位數(shù)是16位,由TL0作為低8位,TH0作為高8位,組成了16位加1計(jì)數(shù)器。計(jì)數(shù)模值為216。計(jì)數(shù)初值的計(jì)算公式如下。計(jì)數(shù)初值
=
216
?
定時時間/機(jī)器周期如果晶振頻率為12MHz,則時鐘周期為1/12s,機(jī)器周期為1s,方式1的最長定時時間為65.536ms。解:根據(jù)公式,計(jì)算如下。計(jì)數(shù)初值
=
216
?
定時時間/機(jī)器周期
=65536
?
2ms/1s
=
63536
=
F830H
即TH0應(yīng)裝入計(jì)數(shù)初值的高8位為F8H,TL0應(yīng)裝入計(jì)數(shù)初值的低8位為30H。【例6-2】若單片機(jī)使用的晶振頻率為12MHz。請計(jì)算采用T0方式1定時2ms所需的定時器初值。MOVTH0,#0F8HMOVTL0,#30H上述兩種方式,應(yīng)先裝入計(jì)數(shù)初始值,并設(shè)定工作方式,然后啟動計(jì)數(shù)/定時器,當(dāng)計(jì)數(shù)器計(jì)滿溢出時,回到全0,自動向CPU發(fā)出溢出中斷請求,計(jì)數(shù)器從0開始計(jì)數(shù)。注意:若需要定時器/計(jì)數(shù)器工作,從需要的初始值進(jìn)行計(jì)數(shù),必須重裝初值。
ORG0000HLJMPMAINORG000BHCPLP1.0MOVTH0,#7fHMOVTL0,#7fH ;重裝計(jì)數(shù)初值
RETIMAIN:MOVTMOD,#01H ;置T0為定時方式1MOVTH0,#7fHMOVTL0,#7fH;送入計(jì)數(shù)初值
SETBEA ;開放總中斷
SETBET0 ;允許T1中斷
SETBTR0 ;啟動T1工作
SJMP$END6.3.3方式2圖6-6定時器/計(jì)數(shù)器工作于方式2時的邏輯結(jié)構(gòu)圖1初值寄存器定時器初始化時,必須將計(jì)數(shù)初值同時送入TL0和TH0 計(jì)數(shù)初值
=
28
?
定時時間/機(jī)器周期當(dāng)TL0計(jì)滿溢出時,由硬件電路使TF0置1,向CPU發(fā)出中斷請求,并將TH0中的計(jì)數(shù)初值自動送入TL0,TL0從初值重新進(jìn)行加1計(jì)數(shù)。不需軟件重裝初值,適用于較精確的脈沖信號發(fā)生器。如果晶振頻率為12MHz,則時鐘周期為(1/12)s,機(jī)器周期為1s,方式2的最長定時時間為0.256ms。6.3.4方式3定時器T1不能工作在方式3,一旦設(shè)定T1為方式3,則T1自動停止工作。
圖6-7定時器/計(jì)數(shù)器工作方式3邏輯結(jié)構(gòu)圖1方式3:T0分為兩個獨(dú)立的8位計(jì)數(shù)器TL0和TH0。TL0使用T0的所有控制位:
GATE、TR0、TF0和。當(dāng)TL0計(jì)數(shù)溢出時,由硬件電路使TF0置1,向CPU發(fā)出中斷請求。
TH0固定為定時方式使用T1的控制位:TR1、TF16.4定時器/計(jì)數(shù)器應(yīng)用舉例【例6-3】
利用T0擴(kuò)展一個外部中斷源的初始化程序。解:將T0設(shè)置為計(jì)數(shù)器方式從P3.4引腳輸入下降沿信號,向CPU發(fā)出中斷請求按方式0工作軟件啟動計(jì)數(shù)初值6.4.1定時器/計(jì)數(shù)器用于外部中斷擴(kuò)展
ORG0000H
LJMPMAIN
ORG000BH
LJMPT0INTT0INT:
CPLP1.0
MOV TL0,#1FH ;送入計(jì)數(shù)初值
MOV TH0,#0FFH
RETIMAIN:MOV
TMOD,#04H ;置T0為計(jì)數(shù)方式0
MOV
TL0,#1FH ;送入計(jì)數(shù)初值
MOV
TH0,#0FFH
SETB
EA ;開放總中斷
SETB
ET0 ;允許T1中斷
SETB
TR0 ;啟動T1工作
SJMP$
END初始化程序解:將T0設(shè)置為計(jì)數(shù)器方式從P3.4引腳輸入下降沿信號,向CPU發(fā)出中斷請求按方式1工作軟件啟動計(jì)數(shù)初值【例6-3】
利用T0擴(kuò)展一個外部中斷源的初始化程序。
ORG0000H
LJMPMAIN
ORG000BH
LJMPT0INTT0INT:
CPLP1.0
MOV TL0,#0FFH ;送入計(jì)數(shù)初值
MOV TH0,#0FFH
RETIMAIN:MOV
TMOD,#05H ;置T0為計(jì)數(shù)方式0
MOV
TL0,#0FFH ;送入計(jì)數(shù)初值
MOV
TH0,#0FFH
SETB
EA ;開放總中斷
SETB
ET0 ;允許T1中斷
SETB
TR0 ;啟動T1工作
SJMP$
END解:將T0設(shè)置為計(jì)數(shù)器方式從P3.4引腳輸入下降沿信號,向CPU發(fā)出中斷請求按方式2工作軟件啟動計(jì)數(shù)初值【例6-3】
利用T0擴(kuò)展一個外部中斷源的初始化程序。
ORG0000H
LJMPMAIN
ORG000BH
CPLP1.0
RETIMAIN:MOV
TMOD,#06H ;置T0為計(jì)數(shù)方式0
MOV
TL0,#0FFH ;送入計(jì)數(shù)初值
MOV
TH0,#0FFH
SETB
EA ;開放總中斷
SETB
ET0 ;允許T1中斷
SETB
TR0 ;啟動T1工作
SJMP$
END解:將T0設(shè)置為計(jì)數(shù)器方式從P3.4引腳輸入下降沿信號,向CPU發(fā)出中斷請求按方式3工作軟件啟動計(jì)數(shù)初值【例6-3】
利用T0擴(kuò)展一個外部中斷源的初始化程序。
ORG0000H
LJMPMAIN
ORG000BH
CPLP1.0
MOV
TL0,#
0FFH ;重裝計(jì)數(shù)初值
RETIMAIN:MOV
TMOD,#07H ;置T0為計(jì)數(shù)方式0
MOV
TL0,#0FFH ;送入計(jì)數(shù)初值
SETB
EA ;開放總中斷
SETB
ET0 ;允許T1中斷
SETB
TR0 ;啟動T1工作
SJMP$
END結(jié)論:P3.4引腳每輸入一個下降沿信號,都將TF0置1,向CPU發(fā)出一次中斷請求。相當(dāng)于擴(kuò)展了一個邊沿觸發(fā)的外部中斷源,中斷入口地址為000BH。6.4.2定時器/計(jì)數(shù)器在秒表項(xiàng)目中的應(yīng)用1.時基的設(shè)計(jì)2.實(shí)時時鐘的實(shí)現(xiàn)3.定時器初值的計(jì)算4.定時器的初始化5.時鐘程序分析1.時基的設(shè)計(jì)利用單片機(jī)的內(nèi)部定時器T0產(chǎn)生中斷來實(shí)現(xiàn)計(jì)時。設(shè)定定時器T0工作在定時工作方式1,定時時間為50ms(0.05s),T0啟動后,定時時間到,便會產(chǎn)生溢出中斷請求,在其中斷服務(wù)程序中,通過指令重裝定時初值,于是,T0便會每隔50ms產(chǎn)生一次中斷,周而復(fù)始,獲得一個0.05s的時基信號。由于應(yīng)用項(xiàng)目選用的單片機(jī)外接晶振頻率為12MHz,所以時鐘周期為1/12s,一個機(jī)器周期等于12個時鐘周期,機(jī)器周期為1s。2.秒表項(xiàng)目的實(shí)現(xiàn)計(jì)數(shù)器0定時50ms溢出機(jī)器周期脈沖計(jì)數(shù)器1計(jì)數(shù)10次溢出中斷中斷1SP1.0S設(shè)置定時器T0工作于定時方式1(16位定時器/計(jì)數(shù)器),定時時間為50ms(0.05s)。因此,T0的定時器初值即計(jì)數(shù)初值為:計(jì)數(shù)初值
=
216
?
定時時間/機(jī)器周期
=
216
?
50ms/1s
=
15536
=
3CB0H3.定時器初值的計(jì)算定時器0初值的計(jì)算定時器1初值的計(jì)算設(shè)置定時器T0工作于計(jì)數(shù)方式1,計(jì)數(shù)初值
=
216
?
10
=65526
=
FFF6H或MOVTH0,#(65536-50000)/256MOVTL0,#(65536-50000)MOD256MOVTH0,#3CHMOVTL0,#0B0H或MOVTH1,#(65536-10)/256MOVTL1,#(65536-10)MOD256MOVTH1,#0FFHMOVTL1,#0F6H(1)根據(jù)設(shè)定的定時器工作方式,給定時器/計(jì)數(shù)器方式寄存器TMOD送入一個相應(yīng)的方式控制字,以設(shè)定定時器/計(jì)數(shù)器的工作方式。(2)將計(jì)算好的定時器初值(計(jì)數(shù)初值)送入定時器,以確定需要的定時時間或計(jì)數(shù)初值。4.定時器的初始化對定時器T0、定時器T1進(jìn)行初始化的程序如下。MOVTMOD,#59H ;定時器0定時方式1,定時器1計(jì)數(shù)方式MOVTH0,#3CH ;置T0初值MOVTL0,#0B0HMOVTH1,#0FFH ;置T1初值MOVTL1,#0F6HMOVIE,#8AH ;允許中斷SETBIT1SETBTR0 ;啟動定時器T0SETBTR1 ;啟動定時器T0
定時器啟動后,在初值基礎(chǔ)上不斷進(jìn)行加1計(jì)數(shù),直到計(jì)滿溢出時,向CPU發(fā)出溢出中斷請求。這里定時時間為50ms,在P1.0引腳輸出周期為100ms的方波,10個脈沖(1秒)后,計(jì)滿溢出。
ORG0000HLJMPMAIN ;轉(zhuǎn)主程序
ORG000BHLJMPBREAK0;轉(zhuǎn)定時器T0中斷
ORG001BHLJMPCLOCK;轉(zhuǎn)定時器T1中斷
MAIN:MOVTMOD,#59H;定時器0定時方式1,定時器1計(jì)數(shù)方式
MOVTH0,#3CH ;置T0初值
MOVTL0,#0B0HMOVTH1,#0FFH ;置T1初值
MOVTL1,#0F6HMOVIE,#8AH ;允許中斷
SETBTR0 ;啟動定時器T0SETBTR1 ;啟動定時器T15.秒表程序分析
SECONDEQU30HORG0000HLJMPMAIN ;轉(zhuǎn)主程序
ORG000BHLJMPBREAK0;轉(zhuǎn)定時器T0中斷
ORG001BHLJMPCLOCK;轉(zhuǎn)定時器T1中斷 BREAK0:CPLP1.0MOVTH0,#3CH ;置T0初值
MOVTL0,#0B0HRETICLOCK:CLREAPUSHACCPUSHPSWSETBEAINCSECONDMOVTH1,#0FFH ;置T1初值
MOVTL1,#0F6HCLREAPOPPSWPOPACCSETBEARETIMAIN:MOVSECOND,#00HMOVTMOD,#59H;定時器0定時方式1,硬件啟動,定時器1計(jì)數(shù)方式
MOVTH0,#3CH ;置T0初值
MOVTL0,#0B0HMOVTH1,#0FFH ;置T1初值
MOVTL1,#0F6HMOVIE,#8AH ;允許中斷
SETBTR0 ;啟動定時器T0SETBTR1 ;啟動定時器T1CLRP1.0LOOP:MOVA,SECONDACALLBINBCDMOVR0,AANLA,#0FHMOVDPTR,#TAB;使用DPTR指向表首地址
MOVCA,@A+DPTR;查表
MOVP2,AMOVP0,#0FEHACALLDELAYMOVP0,#0FFH
MOVA,R0SWAPAANLA,#0FHMOVDPTR,#TAB;使用DPTR指向表首地址
MOVCA,@A+DPTR;查表
MOVP2,AMOVP0,#0FDHACALLDELAYMOVP0,#0FFH
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 郵政快遞伸縮縫安裝施工協(xié)議
- 室外廣告拍攝現(xiàn)場制片協(xié)議
- 合同負(fù)債在施工企業(yè)中的作用
- 水上運(yùn)動賽事鉆深水井施工合同
- 雜志社采暖設(shè)施安裝協(xié)議
- 幼教科研機(jī)構(gòu)聘用合同范本
- 機(jī)場通風(fēng)空調(diào)系統(tǒng)安裝協(xié)議
- 農(nóng)產(chǎn)品質(zhì)檢員招聘合同范本
- 裝飾砂漿合同范例版
- 外甥聘用合同范例范例
- 2024年官方獸醫(yī)牧運(yùn)通考試題庫(含答案)
- 社區(qū)教育志愿者培訓(xùn)教材
- 護(hù)理安全管理課件
- 北京郵電大學(xué)《自然語言處理課程設(shè)計(jì)》2022-2023學(xué)年期末試卷
- 2024-2025學(xué)年新教材高中化學(xué) 第2章 分子結(jié)構(gòu)與性質(zhì) 第1節(jié) 共價鍵說課稿 新人教版選擇性必修2
- 中國老年患者術(shù)后譫妄防治專家共識2023
- 超星爾雅學(xué)習(xí)通《微觀經(jīng)濟(jì)學(xué)(浙江大學(xué))》2024章節(jié)測試答案
- 山東省青島市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- DB34∕T 4504-2023 中醫(yī)治未病科設(shè)施配置指南
- 國家QC小組成果案例(攻關(guān)型)
- GB/T 44679-2024叉車禁用與報(bào)廢技術(shù)規(guī)范
評論
0/150
提交評論