微機(jī)原理及應(yīng)用 10 定時(shí)計(jì)數(shù)器I 2015(1)_第1頁
微機(jī)原理及應(yīng)用 10 定時(shí)計(jì)數(shù)器I 2015(1)_第2頁
微機(jī)原理及應(yīng)用 10 定時(shí)計(jì)數(shù)器I 2015(1)_第3頁
微機(jī)原理及應(yīng)用 10 定時(shí)計(jì)數(shù)器I 2015(1)_第4頁
微機(jī)原理及應(yīng)用 10 定時(shí)計(jì)數(shù)器I 2015(1)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、微機(jī)原理及應(yīng)用 Principle and Applications of Micro-Computers 第10講 MCS-51單片機(jī)定時(shí)/計(jì)數(shù)器(教材5.3節(jié))教學(xué)目的: 了解MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器的結(jié)構(gòu), 掌握其工作方式和模式及它們的編程控制要求: 掌握MCS-51單片機(jī)定時(shí)/計(jì)數(shù)器的4種工作方式的編程控制方法 難點(diǎn): 定時(shí)/計(jì)數(shù)器的編程控制(初始化程序和初始值計(jì)算)本講的主要內(nèi)容pMCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)p定時(shí)/計(jì)數(shù)器編程控制的幾個(gè)寄存器pTCON, TMOD, THi, TLip四種工作方式下定時(shí)/計(jì)數(shù)器的工作原理p構(gòu)成, 編程控制方法(初始化和初始值計(jì)算

2、方法)p定時(shí)/計(jì)數(shù)器的應(yīng)用p方波發(fā)生器, 脈沖寬度測(cè)量, 周期性任務(wù)調(diào)度器實(shí)現(xiàn)定時(shí)的方法p軟件定時(shí)p軟件延時(shí)不占用硬件資源,但占用了CPU時(shí)間,降低了CPU的利用率。例如延時(shí)程序。p采用時(shí)基電路定時(shí)p例如采用555電路,外接必要的元器件(電阻和電容),即可構(gòu)成硬件定時(shí)電路。但在硬件連接好以后,定時(shí)值與定時(shí)范圍不能由軟件進(jìn)行控制和修改,即不可編程,且定時(shí)時(shí)間容易漂移。p可編程定時(shí)器定時(shí)p最方便的辦法是利用單片機(jī)內(nèi)部的定時(shí)器/計(jì)數(shù)器。結(jié)合了軟件定時(shí)精確和硬件定時(shí)電路獨(dú)立的特點(diǎn)。2022-6-8MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器p基于8051內(nèi)核的MCS-51單片機(jī)具有2個(gè)定時(shí)/計(jì)數(shù)器p16位定時(shí)/計(jì)

3、數(shù)器, 可編程作為8位, 13位和16位的定時(shí)/計(jì)數(shù)器p每個(gè)定時(shí)/計(jì)數(shù)器包含2個(gè)獨(dú)立的8位寄存器, 儲(chǔ)存定時(shí)/計(jì)數(shù)器的值p作定時(shí)器時(shí), 時(shí)鐘源來自系統(tǒng)的晶體振蕩器, 頻率為系統(tǒng)頻率的1/12倍p作計(jì)數(shù)器時(shí), 時(shí)鐘源來自連接在2個(gè)引腳(Ti)的外部脈沖信號(hào), 最大計(jì)數(shù)頻率為系統(tǒng)頻率的1/24倍p定時(shí)/計(jì)數(shù)器以遞加方式累計(jì)計(jì)數(shù)p基于8052內(nèi)核的增強(qiáng)型MCS-51單片機(jī)至少具有3個(gè)定時(shí)/計(jì)數(shù)器, 為了滿足某些特殊應(yīng)用, 許多增強(qiáng)型MCS-51單片機(jī)還具有可編程計(jì)數(shù)器陣列(PCA)p如Silicon Lab.的C8051F系列MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器結(jié)構(gòu)外部計(jì)數(shù)脈沖輸入引腳外部計(jì)數(shù)脈沖輸入引

4、腳方式和模式控制寄存器方式和模式控制寄存器啟啟/停控制寄存器??刂萍拇嫫饕绯鲋袛嘈盘?hào)溢出中斷信號(hào)p定時(shí)定時(shí)/計(jì)數(shù)器的計(jì)數(shù)器的實(shí)質(zhì)實(shí)質(zhì)是是加一計(jì)數(shù)器加一計(jì)數(shù)器(16位),由高位),由高8位和低位和低8位兩個(gè)寄位兩個(gè)寄存器組成存器組成。定時(shí)定時(shí)/計(jì)數(shù)器值的寄存器計(jì)數(shù)器值的寄存器定時(shí)定時(shí)/計(jì)數(shù)器值的寄存器計(jì)數(shù)器值的寄存器定時(shí)/計(jì)數(shù)器控制寄存器 TCONINT0/1的觸發(fā)方式控制的觸發(fā)方式控制(1:下降沿下降沿; 0:低電平低電平)INT0/1的中斷請(qǐng)求標(biāo)志的中斷請(qǐng)求標(biāo)志(1:有效有效; 0:無效無效)T0/1的中斷請(qǐng)求標(biāo)志的中斷請(qǐng)求標(biāo)志(1:有效有效; 0:無效無效)T0/1的啟動(dòng)的啟動(dòng)/停止控制位

5、停止控制位(1:啟動(dòng)啟動(dòng); 0:停止停止)T0工作方式選擇控制工作方式選擇控制00B: 方式方式0; 01B:方式方式110B: 方式方式2; 11B:方式方式3定時(shí)器定時(shí)器/計(jì)數(shù)器選擇控制計(jì)數(shù)器選擇控制(1:計(jì)數(shù)器計(jì)數(shù)器; 0:定時(shí)器定時(shí)器)定時(shí)定時(shí)/計(jì)數(shù)器啟計(jì)數(shù)器啟/停方式控制選擇位停方式控制選擇位(簡(jiǎn)稱門控位簡(jiǎn)稱門控位)1: INTi引腳為高電平引腳為高電平,且且TRi=1, 則啟動(dòng)則啟動(dòng), 否則停止否則停止;0: 啟啟/停與停與INTi引腳電平無關(guān)引腳電平無關(guān), TRi=1啟動(dòng)啟動(dòng), TRi=0停止停止定時(shí)/計(jì)數(shù)器控制寄存器 TMODD7D6D5D4D3D2D1D0TMOD GATEC

6、/TM1M0GATEC/TM1M0T1工作模式和方式控制位工作模式和方式控制位T0工作模式和方式控制位工作模式和方式控制位T1工作方式選擇控制工作方式選擇控制00B: 方式方式0; 01B:方式方式110B: 方式方式2; 11B:方式方式3本講的主要內(nèi)容pMCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)p定時(shí)/計(jì)數(shù)器編程控制的幾個(gè)寄存器pTCON, TMOD, THi, TLip四種工作方式下定時(shí)/計(jì)數(shù)器的工作原理p構(gòu)成, 編程控制方法(初始化和初始值計(jì)算方法)p定時(shí)/計(jì)數(shù)器的應(yīng)用p方波發(fā)生器, 脈沖寬度測(cè)量, 周期性任務(wù)調(diào)度器存儲(chǔ)定時(shí)/計(jì)數(shù)器值的寄存器p定時(shí)/計(jì)數(shù)器0 (T0)pTH0 (高8位

7、), TL0 (低8位)p定時(shí)/計(jì)數(shù)器1 (T1)pTH1 (高8位), TL1 (低8位)pTHi和TLi組成一個(gè)16位的寄存器, 范圍: 065535p方式0 (13位定時(shí)/計(jì)數(shù)器): THi(高8位)+TLi(低5位) (08191)p方式1 (16位定時(shí)/計(jì)數(shù)器): THi(高8位)+TLi(低8位) (065535)p方式2 (8位自動(dòng)重裝定時(shí)/計(jì)數(shù)器): TLi (0255) (THi(重裝值)p方式3 (僅對(duì)T0): TL0(第1個(gè)8位定時(shí)/計(jì)數(shù)器), TH0(第2個(gè)定時(shí)器) 定時(shí)/計(jì)數(shù)器的工作原理 方式0 ?1. 什么情況時(shí)為定時(shí)什么情況時(shí)為定時(shí)/計(jì)計(jì)數(shù)器溢出數(shù)器溢出? 2.

8、作為遞加的計(jì)數(shù)器作為遞加的計(jì)數(shù)器, 計(jì)計(jì)劃劃10個(gè)脈沖后溢出個(gè)脈沖后溢出, 應(yīng)從應(yīng)從何時(shí)何時(shí)(初始值初始值)開始計(jì)數(shù)開始計(jì)數(shù)? 定時(shí)/計(jì)數(shù)器的編程控制 方式0編程控制包括如下操作設(shè)置工作方式設(shè)置工作方式, 選擇定時(shí)器或計(jì)數(shù)器模式選擇定時(shí)器或計(jì)數(shù)器模式 (TMOD)作為定時(shí)器作為定時(shí)器, 需根據(jù)待定時(shí)時(shí)間和系統(tǒng)晶體頻率需根據(jù)待定時(shí)時(shí)間和系統(tǒng)晶體頻率(或機(jī)器周期或機(jī)器周期)來來確定初始值確定初始值 (THi和和TLi)啟動(dòng)和停止控制啟動(dòng)和停止控制 (單獨(dú)設(shè)置單獨(dú)設(shè)置TRi位或直接寫位或直接寫TCON)若使用中斷若使用中斷, 需設(shè)置相應(yīng)的中斷和優(yōu)先級(jí)控制寄存器需設(shè)置相應(yīng)的中斷和優(yōu)先級(jí)控制寄存器(IE

9、,IP)13位定時(shí)/計(jì)數(shù)器的初始值計(jì)算方法13 _132, PMPMTInitialValBTTT定時(shí)周期(或定時(shí)時(shí)間)機(jī)器周期 ?這里的這里的InitialVal_13B的的有效數(shù)據(jù)位為有效數(shù)據(jù)位為13位位, 自然自然保存在一個(gè)保存在一個(gè)16位變量中位變量中, 那么如何給那么如何給THi和和TLi賦賦值值?定時(shí)/計(jì)數(shù)器的工作原理 方式116(_16 ) _162, (_16 ) , HighPLowMPMTHiInitialValBTInitialValBTLiInitialValBTTT定時(shí)周期(或定時(shí)時(shí)間)機(jī)器周期16位定時(shí)位定時(shí)/計(jì)數(shù)器的初始值計(jì)算方法計(jì)數(shù)器的初始值計(jì)算方法16位定時(shí)位

10、定時(shí)/計(jì)數(shù)器的構(gòu)成計(jì)數(shù)器的構(gòu)成見教材見教材p.155圖圖5-7定時(shí)/計(jì)數(shù)器的工作原理 方式28位自動(dòng)重位自動(dòng)重裝定時(shí)裝定時(shí)/計(jì)計(jì)數(shù)器的構(gòu)成數(shù)器的構(gòu)成見教材見教材p.156圖圖5-88 2, , PMPMTTLiTHiTLiTTT自動(dòng)重裝寄存器 定時(shí)周期(或定時(shí)時(shí)間)機(jī)器周期8位自動(dòng)重裝定時(shí)位自動(dòng)重裝定時(shí)/計(jì)數(shù)器的初始值計(jì)算方法計(jì)數(shù)器的初始值計(jì)算方法8位自動(dòng)重裝定位自動(dòng)重裝定時(shí)時(shí)/計(jì)數(shù)器一般應(yīng)計(jì)數(shù)器一般應(yīng)用于用于UART的波的波特率發(fā)生器特率發(fā)生器(教材教材p.157圖圖5-11)(下一講說下一講說UART)方式0示例 某系統(tǒng)使用某系統(tǒng)使用12MHz晶體振蕩器晶體振蕩器, 其其機(jī)器周期為機(jī)器周期

11、為 s? 設(shè)計(jì)一個(gè)方波發(fā)生器設(shè)計(jì)一個(gè)方波發(fā)生器, 在在P1.0 引腳輸出周期為引腳輸出周期為1ms的方波的方波, 現(xiàn)要求用現(xiàn)要求用T1作為定時(shí)器作為定時(shí)器, 且工作在方式且工作在方式0.(用(用定時(shí)中斷定時(shí)中斷方式來實(shí)現(xiàn))方式來實(shí)現(xiàn))開開 始始P1.7置置1T1模式設(shè)置模式設(shè)置T1初值設(shè)置初值設(shè)置(0.5ms)中斷設(shè)置中斷設(shè)置開中斷開中斷循環(huán)等待中斷循環(huán)等待中斷啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器T1中斷入口中斷入口T1初值設(shè)置初值設(shè)置(0.5ms)中斷返回中斷返回P1.7取反取反主程序流程主程序流程中斷服務(wù)子程序流程中斷服務(wù)子程序流程采用方式采用方式0:N=8192-500/1=7692=1E0CH數(shù)據(jù)格式

12、為:數(shù)據(jù)格式為:1111000000001100B=0F00CH所以(所以(TH1)=0F0H,(,(TL1)=0CH方式0示例 某系統(tǒng)使用某系統(tǒng)使用12MHz晶體振蕩器晶體振蕩器, 其其機(jī)器周期為機(jī)器周期為 s? 設(shè)計(jì)一個(gè)方波發(fā)生器設(shè)計(jì)一個(gè)方波發(fā)生器, 在在P1.0 引腳輸出周期為引腳輸出周期為1ms的方波的方波, 現(xiàn)要求用現(xiàn)要求用T1作為定時(shí)器作為定時(shí)器, 且工作在方式且工作在方式0.(用(用定時(shí)中斷定時(shí)中斷方式來實(shí)現(xiàn))方式來實(shí)現(xiàn))P1 ORG 0000HRESERT: AJMP MAIN ORG 001BH AJMP IT1P ORG 0100H MAIN: MOV SP,#60H AC

13、ALL PT1M0 HERE: AJMP HERE Step1:計(jì)算初始值Step2:1)TMOD 2) TCON 3) Thx,Tlx 4) 開中斷 5)啟動(dòng)C/TPT1M0: MOV TMOD, #00H MOV TL1,#0CH MOV TH1,#0F0H SETB ET1 SETB EA SETB TR1 RET IT1P: MOV TL1,#0CH MOV TH1,#0F0H CPL P1.0 RETI定時(shí)/計(jì)數(shù)器的編程控制 方式0示例 某系統(tǒng)使用某系統(tǒng)使用12MHz晶體振蕩器晶體振蕩器, 其其機(jī)器周期為機(jī)器周期為 s? 設(shè)計(jì)一個(gè)方波發(fā)生器設(shè)計(jì)一個(gè)方波發(fā)生器, 在在P1.0 引腳輸出

14、周期為引腳輸出周期為1ms的方波的方波, 現(xiàn)要求用現(xiàn)要求用T1作為定時(shí)器作為定時(shí)器, 且工作在方式且工作在方式0. (分別用分別用查詢溢出標(biāo)志位查詢溢出標(biāo)志位TF1和和定時(shí)中斷定時(shí)中斷兩種方式來實(shí)現(xiàn)兩種方式來實(shí)現(xiàn))P2 #include void main(void) while(1); /主程序 interrupt 0 x1B void T1_ISR(void) TR1 = 0; if (P1.0 = 1) P1.0 = 0; else P1.0 = 1; TH1 = ; TL1 = ; TR1 = 1; P1 #include void main(void) /主程序 while(TF1

15、!= 1); TF1 = 0; TR1 = 0; TR1 = 1; if (P1.0 = 1) P1.0 = 0; else P1.0 = 1; 定時(shí)/計(jì)數(shù)器的編程控制 方式1示例 某系統(tǒng)使用某系統(tǒng)使用12MHz晶體振蕩器晶體振蕩器, 如果用如果用T0作為定時(shí)器作為定時(shí)器, 且工作在方式且工作在方式1, 現(xiàn)要求現(xiàn)要求P1.0產(chǎn)生周期為產(chǎn)生周期為20ms的方波的方波, 如何實(shí)現(xiàn)?如何實(shí)現(xiàn)? #include void main(void) TMOD = 0 x01 ; TH0 = 0 xD8 ; TL0 = 0 xF0 ; IE = 0 x82; IP = 0 x02; TR0 = 1; P1.

16、0 = 1; while(1); /主程序 interrupt 0 x0B void T0_ISR(void) TR0 = 0; if (P1.0 = 1) P1.0 = 0; else P1.0 = 1; TH0 = 0 xD8 ; TL0 = 0 xF0 ; TR0 = 1; ?如果希望在該系統(tǒng)如果希望在該系統(tǒng)實(shí)現(xiàn)實(shí)現(xiàn)1s的定時(shí)周期的定時(shí)周期, 應(yīng)該怎么實(shí)現(xiàn)應(yīng)該怎么實(shí)現(xiàn)? 能能實(shí)現(xiàn)實(shí)現(xiàn)10s或更長的或更長的定時(shí)周期嗎定時(shí)周期嗎? 方式2的應(yīng)用 假設(shè)系統(tǒng)的單片機(jī)使用假設(shè)系統(tǒng)的單片機(jī)使用6MHz的晶體振蕩器的晶體振蕩器.把把T0作為一個(gè)特殊外部中斷請(qǐng)作為一個(gè)特殊外部中斷請(qǐng)求輸入線求輸入線,要求

17、要求T0引腳發(fā)生負(fù)跳變時(shí)向引腳發(fā)生負(fù)跳變時(shí)向CPU申請(qǐng)中斷申請(qǐng)中斷.以以T0工作在方式工作在方式2計(jì)數(shù)計(jì)數(shù)器模式器模式,計(jì)數(shù)器的初始值為計(jì)數(shù)器的初始值為FFH,一旦一旦T0引腳出現(xiàn)負(fù)跳變時(shí)引腳出現(xiàn)負(fù)跳變時(shí),計(jì)數(shù)器的計(jì)數(shù)值計(jì)數(shù)器的計(jì)數(shù)值加加1,立即產(chǎn)生立即產(chǎn)生T0計(jì)數(shù)器溢出中斷標(biāo)志計(jì)數(shù)器溢出中斷標(biāo)志 TF0=1,向向CPU申請(qǐng)中斷申請(qǐng)中斷.每發(fā)生一次每發(fā)生一次T0中斷后中斷后,P1.0腳的腳的LED亮亮50ms然后關(guān)閉然后關(guān)閉,直到再次出現(xiàn)直到再次出現(xiàn)T0中斷中斷LED再亮再亮50ms,如此重復(fù)如此重復(fù). (1) TMOD (2) 初始值初始值 (3) 編寫初始化程序編寫初始化程序,裝入初始值裝

18、入初始值,開放中斷開放中斷 (4) 編寫中斷服務(wù)程序編寫中斷服務(wù)程序方式2的應(yīng)用 程序代碼 ORG 0000H AJMP MAIN ORG 000B AJMP ITOP ORG 001B AJMP IT1P ORG 0100H MAIN: MOV SP, #60H ACALL PT0M2 HERE: AJMP HEREIT0P: CLR P1.0 SETB TR1 RETIIT1P: MOV TH1,#58H MOV TH1,#9EH SETB P1.0 CLR TR1 RETIPT0M2: MOV TMOD, #16H MOV TL0, #16H MOV TH0, #0FFH MOV TL0, #0FFH MOV HL1,#58H MOV TH1,#9EH SERB TR0 SETB ET0 SETB P1.0 SETB EA RET方式3的應(yīng)用(P163) 程序代碼總結(jié)p MCS-51的定時(shí)的定時(shí)/計(jì)數(shù)器結(jié)構(gòu)計(jì)數(shù)器結(jié)構(gòu): p定時(shí)定時(shí)/計(jì)數(shù)器值的寄存器計(jì)數(shù)器值的寄存器, 啟啟/停控制寄存器??刂?/p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論