第6章單片微機(jī)的定時器計(jì)數(shù)器原理及應(yīng)用鄧ppt課件_第1頁
第6章單片微機(jī)的定時器計(jì)數(shù)器原理及應(yīng)用鄧ppt課件_第2頁
第6章單片微機(jī)的定時器計(jì)數(shù)器原理及應(yīng)用鄧ppt課件_第3頁
第6章單片微機(jī)的定時器計(jì)數(shù)器原理及應(yīng)用鄧ppt課件_第4頁
第6章單片微機(jī)的定時器計(jì)數(shù)器原理及應(yīng)用鄧ppt課件_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第六章第六章 單片微機(jī)的定時器單片微機(jī)的定時器/計(jì)數(shù)器計(jì)數(shù)器原理及應(yīng)用原理及應(yīng)用 實(shí)驗(yàn)五實(shí)驗(yàn)五 定時器定時器 P1.0、P1.1分別接兩個發(fā)光二極管,分別接兩個發(fā)光二極管,INT0腳接一按鍵做開關(guān),按一次開關(guān),腳接一按鍵做開關(guān),按一次開關(guān),則啟動,兩個發(fā)光管一亮一滅,亮滅則啟動,兩個發(fā)光管一亮一滅,亮滅時間均為時間均為1秒;再按一次開關(guān),則關(guān)閉,秒;再按一次開關(guān),則關(guān)閉,即兩個發(fā)光管都滅。即兩個發(fā)光管都滅。 實(shí)驗(yàn)六實(shí)驗(yàn)六 定時器、計(jì)數(shù)器定時器、計(jì)數(shù)器 P3.2口輸出周期為口輸出周期為2S的方波,的方波,T1口為脈沖口為脈沖輸入端,記錄輸入的脈沖個數(shù),脈沖個數(shù)輸入端,記錄輸入的脈沖個數(shù),脈沖個數(shù)

2、由由P1口所接的口所接的8個數(shù)碼管顯示,設(shè)一按鍵作個數(shù)碼管顯示,設(shè)一按鍵作為開關(guān)控制系統(tǒng)運(yùn)行。為開關(guān)控制系統(tǒng)運(yùn)行。6.1 概述概述6.2 定時器定時器/計(jì)數(shù)器計(jì)數(shù)器T0、T16.3 定時器定時器/計(jì)數(shù)器計(jì)數(shù)器T26.4 監(jiān)視定時器看門狗監(jiān)視定時器看門狗T36.5 定時器定時器/計(jì)數(shù)器的應(yīng)用編程計(jì)數(shù)器的應(yīng)用編程定時或計(jì)數(shù)方法:定時或計(jì)數(shù)方法: 1 1硬件法:硬件法:定時功能完全由硬件電路完成,不占定時功能完全由硬件電路完成,不占用用CPUCPU時間。時間。2 2軟件法:軟件定時是執(zhí)行一段循環(huán)程序來進(jìn)行時間軟件法:軟件定時是執(zhí)行一段循環(huán)程序來進(jìn)行時間延時。延時。3 3可編程定時器計(jì)數(shù)器:通過軟件編

3、程來實(shí)現(xiàn)定時可編程定時器計(jì)數(shù)器:通過軟件編程來實(shí)現(xiàn)定時時間的改變,通過中斷或查詢方法來完成定時功能或時間的改變,通過中斷或查詢方法來完成定時功能或計(jì)數(shù)功能。計(jì)數(shù)功能。6-1 概述概述定時器資源:定時器資源:80C51包含有兩個包含有兩個16位的定時器計(jì)數(shù)器:位的定時器計(jì)數(shù)器:T0和和T1;80C52包含有三個包含有三個16位的定時器計(jì)數(shù)器:位的定時器計(jì)數(shù)器:T0、T1、T2在在80C51系列的部分產(chǎn)品如系列的部分產(chǎn)品如Philips公司的公司的80C552中,還中,還包含有作看門狗的包含有作看門狗的8位定時器位定時器T3。定時器計(jì)數(shù)器的核心是一個加定時器計(jì)數(shù)器的核心是一個加1計(jì)數(shù)器其計(jì)數(shù)器其基

4、本功能是計(jì)數(shù)加基本功能是計(jì)數(shù)加1。計(jì)數(shù)計(jì)數(shù) 是對單片微機(jī)的是對單片微機(jī)的T0、T1 (或(或T2引腳引腳上輸入的一個上輸入的一個1到到0的跳變進(jìn)行計(jì)數(shù)增的跳變進(jìn)行計(jì)數(shù)增l。 定時定時 是對單片微機(jī)內(nèi)部的機(jī)器周期進(jìn)行計(jì)是對單片微機(jī)內(nèi)部的機(jī)器周期進(jìn)行計(jì)數(shù),從而得到定時。數(shù),從而得到定時。 波特率發(fā)生器波特率發(fā)生器 80C51的定時器的定時器/計(jì)數(shù)器還可計(jì)數(shù)器還可用作串行接口的波特率發(fā)生器。用作串行接口的波特率發(fā)生器。T0、T1 的內(nèi)部結(jié)構(gòu)簡圖:的內(nèi)部結(jié)構(gòu)簡圖:6.2 6.2 定時器計(jì)數(shù)器定時器計(jì)數(shù)器T0T0、T1T1圖圖61 61 定時器定時器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0、T1T1的內(nèi)部結(jié)構(gòu)框圖的內(nèi)

5、部結(jié)構(gòu)框圖 T0、T1 的方式寄存器的方式寄存器TMOD6.2.1 與定時器計(jì)數(shù)器與定時器計(jì)數(shù)器T0、T1有關(guān)的特殊功能有關(guān)的特殊功能寄存器寄存器-TMOD、TCON、TH、TL、IE、IPD7 D6 D5 D4 D3 D2 D1 D0GATE C/TM1M0GATE C/TM1M0T1T0 GATE門控位門控位 圖圖62CT:功能選擇位:功能選擇位定時時鐘脈沖:定時時鐘脈沖:1/12fosc最高計(jì)數(shù)頻率:最高計(jì)數(shù)頻率:1/24foscM1、M0:工作方式選擇位。:工作方式選擇位。M1 M0工作方式工作方式 計(jì)數(shù)器配置計(jì)數(shù)器配置 0 0方式方式0 13位計(jì)數(shù)器位計(jì)數(shù)器 0 1方式方式1 16位

6、計(jì)數(shù)器位計(jì)數(shù)器 1 0方式方式2 自動重裝載的自動重裝載的8位計(jì)數(shù)器位計(jì)數(shù)器 1 1方式方式3 T0分為兩個分為兩個8位計(jì)數(shù)器,位計(jì)數(shù)器,T1停止計(jì)數(shù)停止計(jì)數(shù) 定時器計(jì)數(shù)器定時器計(jì)數(shù)器T0、T1 的控制寄存器的控制寄存器TCON 位地址位地址8FH8FH8EH8EH8DH8DH8CH8CH8BH8BH8AH8AH89H89H88H88H位名稱位名稱TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0功能功能 T1T1 中斷中斷標(biāo)志標(biāo)志啟動啟動T1T0T0中斷中斷標(biāo)志標(biāo)志啟動啟動T2中斷中斷標(biāo)志標(biāo)志觸發(fā)觸發(fā)方式方式中斷中斷標(biāo)志標(biāo)志 觸發(fā)觸發(fā)方式方式 T

7、0、T1 的數(shù)據(jù)寄存器的數(shù)據(jù)寄存器TH1、TL1,TH0、TL0 定時器定時器/計(jì)數(shù)器中斷計(jì)數(shù)器中斷 中斷允許寄存器中斷允許寄存器IE 中斷矢量中斷矢量 中斷優(yōu)先級寄存器中斷優(yōu)先級寄存器IPT0:有:有4種工作方式可選方式種工作方式可選方式0,1,2,3)T1:有:有3種工作方式可選方式種工作方式可選方式0,1,2) 方式方式0-13位定時器位定時器/計(jì)數(shù)器計(jì)數(shù)器(M10、M00) 最大計(jì)數(shù)值最大計(jì)數(shù)值213 = 8192,當(dāng),當(dāng)fosc=12MHZ時,時,Tmax=8192S6.2.2 6.2.2 定時器計(jì)數(shù)器定時器計(jì)數(shù)器T0T0、T1 T1 的工作方式的工作方式B=TRx(GATE+INT

8、x) 方式方式1-16位定時器位定時器/計(jì)數(shù)器計(jì)數(shù)器(M10、M01) 最大計(jì)數(shù)值最大計(jì)數(shù)值216 = 65535,當(dāng),當(dāng)fosc=12MHZ時,時,Tmax=65535S 方式方式2- 8位定時器位定時器/計(jì)數(shù)器自動重裝載計(jì)數(shù)器自動重裝載(M11、M00) 優(yōu)點(diǎn):定時初值可自動恢復(fù)優(yōu)點(diǎn):定時初值可自動恢復(fù),TH中存放初值中存放初值;缺陷:計(jì)數(shù)范圍小,最大計(jì)數(shù)值為缺陷:計(jì)數(shù)范圍小,最大計(jì)數(shù)值為28= 256適用于需要重復(fù)定時,而定時范圍不大的應(yīng)用場合,適用于需要重復(fù)定時,而定時范圍不大的應(yīng)用場合,比如:作為串行口波特率發(fā)生器使用比如:作為串行口波特率發(fā)生器使用 方式方式3-僅僅T0有此方式,有

9、此方式,T1無方式無方式3中斷矢量中斷矢量000BH中斷矢量中斷矢量001BHT0T0方式方式3 3下的下的T0T0 在方式在方式3 3情況下情況下,T0,T0被拆成二個獨(dú)立的被拆成二個獨(dú)立的8 8位計(jì)位計(jì)數(shù)器數(shù)器TH0TH0、TL0TL0。 TL0 TL0:8 8位定時位定時/ /計(jì)數(shù)器,使用計(jì)數(shù)器,使用T0T0原有的原有的控制寄存器資源控制寄存器資源:TF0,TR0,GATE,C/T,INT0:TF0,TR0,GATE,C/T,INT0,中斷矢量等;中斷矢量等; TH0 TH0:8 8位定時器,占用位定時器,占用T1T1的中斷溢出標(biāo)的中斷溢出標(biāo)志志TF1,TF1,運(yùn)行控制開關(guān)運(yùn)行控制開關(guān)T

10、R1,TR1,中斷矢量中斷矢量001BH001BH,只,只能對片內(nèi)機(jī)器周期脈沖計(jì)數(shù)能對片內(nèi)機(jī)器周期脈沖計(jì)數(shù) T0 T0方式方式3 3情況下的情況下的T1T1 T1 T1由于其由于其TF1TF1、TR1TR1被被T0T0的的TH0TH0占用,計(jì)占用,計(jì)數(shù)器溢出時,只能將輸出信號送至串行口,數(shù)器溢出時,只能將輸出信號送至串行口,即用作串行口波特率發(fā)生器。即用作串行口波特率發(fā)生器。定時器定時器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0方式方式3 3時,時,T1T1的邏輯結(jié)構(gòu)圖的邏輯結(jié)構(gòu)圖80C52中的中的T2: 16位位功能:自動重裝載和捕獲能力功能:自動重裝載和捕獲能力相關(guān)寄存器:相關(guān)寄存器:8位計(jì)數(shù)器位計(jì)數(shù)器T

11、L2、TH2, 控制寄存器控制寄存器T2CON, 模式寄存器模式寄存器T2MOD,捕獲寄存器捕獲寄存器RCAP2L低字節(jié)和低字節(jié)和RCAP2H高字節(jié))。高字節(jié))。計(jì)數(shù)脈沖源:兩個計(jì)數(shù)脈沖源:兩個-內(nèi)部機(jī)器周期及內(nèi)部機(jī)器周期及 T2P10端輸入的外部計(jì)數(shù)脈沖。端輸入的外部計(jì)數(shù)脈沖。工作方式:工作方式: 3種種-自動重裝載、捕獲和波特率發(fā)生器方式自動重裝載、捕獲和波特率發(fā)生器方式引腳引腳T2是外部計(jì)數(shù)脈沖輸入端是外部計(jì)數(shù)脈沖輸入端引腳引腳T2EX是外部控制信號輸入端。是外部控制信號輸入端。6.3 6.3 定時器計(jì)數(shù)器定時器計(jì)數(shù)器T2T2 控制寄存器控制寄存器 T2CON位地址位地址 CFHCEHC

12、DHCCHCBHCAHC9HC8H位功能位功能 TF2EXF2RCLKTCLK EXEN2TR2C/T2CP/RL26.3.1 T26.3.1 T2中的特殊功能寄存器中的特殊功能寄存器TF2T2 溢出標(biāo)志,溢出標(biāo)志, T2溢出時置位并申請中斷,軟件清除。溢出時置位并申請中斷,軟件清除。在波特率發(fā)生器方式下,即在波特率發(fā)生器方式下,即RCLK1或或TCLK1時,定時器溢時,定時器溢出不對出不對TF2置位。置位。EXF2T2外部標(biāo)志,外部標(biāo)志,EXF2要靠軟件來清除要靠軟件來清除當(dāng)當(dāng)EXEN21,且,且T2EX引腳上出現(xiàn)負(fù)跳變而造成捕獲或重裝載引腳上出現(xiàn)負(fù)跳變而造成捕獲或重裝載時時EXF2置位,申

13、請中斷。若已允許置位,申請中斷。若已允許T2中斷,中斷,CPU將響應(yīng)中斷,將響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序。轉(zhuǎn)向中斷服務(wù)程序。 RCLK:接收時鐘標(biāo)志,軟件置位或清除:接收時鐘標(biāo)志,軟件置位或清除用以選擇用以選擇T2或或T1作串行口接收波特率發(fā)生器。作串行口接收波特率發(fā)生器。RCLK1時,用時,用T2溢出脈沖作為串行口的接收時鐘;溢出脈沖作為串行口的接收時鐘;RCLK0時,用時,用T1的溢出脈沖作接收時鐘。的溢出脈沖作接收時鐘。 TCLK:發(fā)送時鐘標(biāo)志,軟件置位或清除:發(fā)送時鐘標(biāo)志,軟件置位或清除用以選擇用以選擇T2或或T1作串行口發(fā)送波特率發(fā)生器。作串行口發(fā)送波特率發(fā)生器。TCLKl時,用時,用

14、T2溢出脈沖作為串行口的發(fā)送時鐘;溢出脈沖作為串行口的發(fā)送時鐘;TCLK0時,用時,用T1的溢出脈沖作發(fā)送時鐘。的溢出脈沖作發(fā)送時鐘。 EXEN2:T2外部允許標(biāo)志,軟件設(shè)置或清除外部允許標(biāo)志,軟件設(shè)置或清除允許或禁止用外部信號來觸發(fā)捕獲或重裝載操作。允許或禁止用外部信號來觸發(fā)捕獲或重裝載操作。EXEN2l時,若時,若T2未用作串行口的波特率發(fā)生器,則在未用作串行口的波特率發(fā)生器,則在T2EX端出現(xiàn)的信號負(fù)跳變時,將造成端出現(xiàn)的信號負(fù)跳變時,將造成T2捕獲或重裝載,并捕獲或重裝載,并置置EXF2標(biāo)志為標(biāo)志為 1,請求中斷。,請求中斷。EXEN20時,時,T2EX端的外部信號不起作用端的外部信號

15、不起作用TR2:T2運(yùn)行控制位。軟件設(shè)置或清除運(yùn)行控制位。軟件設(shè)置或清除C/T2:T2的定時器方式或計(jì)數(shù)器方式選擇位。的定時器方式或計(jì)數(shù)器方式選擇位。 C/T20時,定時器工作方式。計(jì)數(shù)脈沖的頻率為時,定時器工作方式。計(jì)數(shù)脈沖的頻率為1/12fosc C/T21時,計(jì)數(shù)器工作方式,下降沿觸發(fā)。計(jì)數(shù)脈沖自時,計(jì)數(shù)器工作方式,下降沿觸發(fā)。計(jì)數(shù)脈沖自T2引引腳輸入,每當(dāng)外部脈沖負(fù)跳變時,計(jì)數(shù)器值增腳輸入,每當(dāng)外部脈沖負(fù)跳變時,計(jì)數(shù)器值增1。 CPRL2:捕獲重裝載標(biāo)志。:捕獲重裝載標(biāo)志。 CPRL2l選擇捕獲功能,這時若選擇捕獲功能,這時若EXEN21,且,且T2EX端的信端的信號負(fù)跳變時,發(fā)生捕獲

16、操作。號負(fù)跳變時,發(fā)生捕獲操作。 CPRL20,選擇重裝載功能,這時若,選擇重裝載功能,這時若T2溢出或在溢出或在EXEN21條件下條件下 T2EX端信號負(fù)跳變,都會造成自動重裝載操作。端信號負(fù)跳變,都會造成自動重裝載操作。當(dāng)當(dāng)RCLKl或或TCLKl時,時,CPRL2控制位不起作用,控制位不起作用,T2 被強(qiáng)被強(qiáng)制工作于重裝載方式。重裝載發(fā)生于制工作于重裝載方式。重裝載發(fā)生于T2溢出時,常用來作波特率溢出時,常用來作波特率發(fā)生器。發(fā)生器。 方式控制寄存器方式控制寄存器T2MODD7D6D5D4D3D2D1D0-T2OE DCEN T2OE:T2輸出允許位。輸出允許位。當(dāng)當(dāng)T2OE1時,允許時

17、鐘輸出至?xí)r,允許時鐘輸出至T2引腳。引腳。僅對僅對80C5480C58有定義。有定義。DCEN:向下計(jì)數(shù)允許位:向下計(jì)數(shù)允許位DCEN=1, T2向下向下(減減)計(jì)數(shù)計(jì)數(shù) DCEN=0, T2向上向上(加加)計(jì)數(shù)計(jì)數(shù) 數(shù)據(jù)寄存器:數(shù)據(jù)寄存器:TH2、TL2 T2有一個有一個16位的數(shù)據(jù)寄存器,是由高位的數(shù)據(jù)寄存器,是由高8位寄存器位寄存器TH2和低和低8位寄存器位寄存器TL2所組成。它們都只能字節(jié)尋址,所組成。它們都只能字節(jié)尋址,相應(yīng)的字節(jié)地址為相應(yīng)的字節(jié)地址為CDH和和CCH。 復(fù)位后,這兩個寄存器全部清零。復(fù)位后,這兩個寄存器全部清零。 捕獲寄存器:捕獲寄存器:RCAP2HRCAP2H、R

18、CAP2LRCAP2L T2 T2中的捕獲寄存器是一個中的捕獲寄存器是一個1616位的數(shù)據(jù)寄存器,由高位的數(shù)據(jù)寄存器,由高8 8位寄位寄存器存器RCAP2HRCAP2H和低和低8 8 位寄存器位寄存器RCAP2LRCAP2L所組成,相應(yīng)的字節(jié)地址為所組成,相應(yīng)的字節(jié)地址為CBHCBH和和CAHCAH。捕獲寄存器捕獲寄存器RCAP2HRCAP2H和和RCAP2LRCAP2L,用于捕獲計(jì)數(shù)器,用于捕獲計(jì)數(shù)器TL2TL2、TH2TH2的計(jì)數(shù)狀態(tài),或用來預(yù)置計(jì)數(shù)初值的。的計(jì)數(shù)狀態(tài),或用來預(yù)置計(jì)數(shù)初值的。TH2TH2、TL2TL2和和 RCAP2HRCAP2H、RCAP2LRCAP2L之間接有雙向緩沖器

19、三態(tài)門)。之間接有雙向緩沖器三態(tài)門)。復(fù)位后,兩個寄存器全部清零。復(fù)位后,兩個寄存器全部清零。T2的工作方式用控制位的工作方式用控制位CPRL2T2CON0和和RCLKTCLK來選擇。來選擇。T2有有3種工作方式,如表種工作方式,如表62所示:捕獲方式、所示:捕獲方式、自動重裝載方式和波特率發(fā)生器方式。自動重裝載方式和波特率發(fā)生器方式。 捕獲方式捕獲方式 在一定條件下,自動將計(jì)數(shù)器在一定條件下,自動將計(jì)數(shù)器TH2和和TL2的數(shù)據(jù)讀入捕獲寄存器的數(shù)據(jù)讀入捕獲寄存器RCAP2H和和RCAP2L,亦即,亦即TH2和和TL2內(nèi)容的捕獲是通過捕獲寄內(nèi)容的捕獲是通過捕獲寄存器存器RCAP2H和和RCAP2

20、L來實(shí)現(xiàn)的。其工作原理可參見圖來實(shí)現(xiàn)的。其工作原理可參見圖67。當(dāng)當(dāng)CPRL2l時,選擇捕獲方式。時,選擇捕獲方式。6.3.2 6.3.2 定時器計(jì)數(shù)器定時器計(jì)數(shù)器T2T2的工作方式的工作方式捕獲操作發(fā)生于下述兩種情況下:捕獲操作發(fā)生于下述兩種情況下:(1)寄存器寄存器TH2和和TL2溢出時,打開重裝載三態(tài)緩沖器,把溢出時,打開重裝載三態(tài)緩沖器,把TH2和和TL2的內(nèi)容自動讀入到捕獲寄存器的內(nèi)容自動讀入到捕獲寄存器RCAP2H和和RCAP2L中。同時,中。同時,溢出標(biāo)志溢出標(biāo)志TF2置置1,申請中斷。,申請中斷。 當(dāng)當(dāng) EXEN2l且且 T2EXP11端的信號有負(fù)跳變時,將發(fā)端的信號有負(fù)跳變時

21、,將發(fā)生捕獲操作。同時標(biāo)志生捕獲操作。同時標(biāo)志EXF2置置1,申請中斷。,申請中斷。若若T2的中斷是被允許的,則無論發(fā)生的中斷是被允許的,則無論發(fā)生TF2l還是還是EXF2l,CPU都會響應(yīng)中斷。響應(yīng)中斷后,應(yīng)用軟件清除中斷申請。都會響應(yīng)中斷。響應(yīng)中斷后,應(yīng)用軟件清除中斷申請。 自動重裝載方式在一定條件下,自動地將捕獲寄存器RCAP2H和RCAP2L的數(shù)據(jù)裝入計(jì)數(shù)器TH2和TL2中。捕獲寄存器RCAP2H和RCAP2L在這里起預(yù)置計(jì)數(shù)初值的功能。對8XC52,其工作原理可參見圖68。當(dāng)CPRL20時,選擇自動重裝載方式。若T2的中斷是被允許的,則無論發(fā)生TF21還是EXF21,CPU都會響應(yīng)中

22、斷,此中斷向量的地址為002BH。響應(yīng)中斷后,應(yīng)用軟件撤除中斷申請。TF2 和EXF2都是直接可尋址位,可采用CLR TF2和CLR EXF2指令實(shí)現(xiàn)撤除中斷申請的功能。 波特率發(fā)生器方式波特率發(fā)生器方式 當(dāng)當(dāng) T2CON中中 RCLK十十TCLK 1,其溢出脈沖用做串,其溢出脈沖用做串行口的時鐘。行口的時鐘。T2的波特率發(fā)生器方式下的結(jié)構(gòu)圖示于圖的波特率發(fā)生器方式下的結(jié)構(gòu)圖示于圖69中。中。RCLK選擇串行通信接收波特率發(fā)生器,選擇串行通信接收波特率發(fā)生器,TCLK選擇發(fā)送波特率發(fā)生器,發(fā)送和接收的波特率可以不同。選擇發(fā)送波特率發(fā)生器,發(fā)送和接收的波特率可以不同。 T2的輸入時鐘可由內(nèi)部時鐘

23、決定,也可由外部脈的輸入時鐘可由內(nèi)部時鐘決定,也可由外部脈沖決定。沖決定。若若CT20,選用內(nèi)部時鐘,對機(jī)器周期計(jì)數(shù),計(jì)數(shù),選用內(nèi)部時鐘,對機(jī)器周期計(jì)數(shù),計(jì)數(shù)脈沖的頻率為脈沖的頻率為112振蕩器頻率振蕩器頻率. 若若C/T21,選用外部脈沖,該脈沖由,選用外部脈沖,該脈沖由T2端輸入,每當(dāng)端輸入,每當(dāng)外部脈沖負(fù)跳變時,計(jì)數(shù)器值增外部脈沖負(fù)跳變時,計(jì)數(shù)器值增l。外部脈沖頻率不超。外部脈沖頻率不超過振蕩器頻率的過振蕩器頻率的l24。 由于脈沖溢出時,RCAP2H和RCAP2L的內(nèi)容會自動裝載到TH2和TL2中,故波特率的值還決定于RCAP2H和RCAP2L裝載初值。 RCLKTCLK還用于選擇T1

24、還是T2作串行通信的波特率發(fā)生器。由圖69可看出,這兩位的值用來控制兩個電子開關(guān)的位置。值為0時,選用T1做波特率發(fā)生器;值為1時,選用T2做波特率發(fā)生器。 當(dāng)T2用做波特率發(fā)生器時,TH2的溢出不使TF2置位,不產(chǎn)生中斷。因此,當(dāng)T2用做波特率發(fā)生器時,沒有必要禁止中斷。 當(dāng)T2用做波特率發(fā)生器時,若EXEN2置1,則T2EX端的信號產(chǎn)生負(fù)跳變時,EXF2將置1,但不會發(fā)生重裝載或捕獲操作。這時,T2EX可以作為一個附加的外部中斷源。 T3俗稱看門狗watchdog),它的作用是強(qiáng)迫單片微機(jī)進(jìn)入復(fù)位狀態(tài),使之從硬件或軟件故障中解脫出來。在實(shí)際應(yīng)用中,由于現(xiàn)場的各種干擾或者程序設(shè)計(jì)錯誤,可能使

25、單片微機(jī)的程序進(jìn)入了“ 死循環(huán)” 或“ 非程序區(qū)”(如表格數(shù)據(jù)區(qū)) 之后,在一個設(shè)定的時間內(nèi),假如用戶程序沒有重裝T3,監(jiān)視電路將產(chǎn)生一個系統(tǒng)復(fù)位信號,強(qiáng)迫單片微機(jī)退出“ 死循環(huán)” 或“ 非程序區(qū)” ,重新進(jìn)行“ 冷啟動” 或“ 熱啟動” 。 在飛利浦80C552中,T3由一個11位的分頻器和8位定時器T3組成,如圖6一10所示。6.4 6.4 監(jiān)視定時器監(jiān)視定時器( (看門狗看門狗)T3)T3預(yù)分頻器輸入為晶振預(yù)分頻器輸入為晶振1/12的信號,晶振為的信號,晶振為12MHz時,輸入為時,輸入為1MHz,而,而8位定時器位定時器T3每隔時間每隔時間t加加1:t122048/fosc 當(dāng)晶振為當(dāng)

26、晶振為12MHz時,時,t為為2.048ms。若若8位定時器溢出,則產(chǎn)生一個尖脈沖,它將復(fù)位位定時器溢出,則產(chǎn)生一個尖脈沖,它將復(fù)位8C552,同時,同時在在RST引腳上也將產(chǎn)生引腳上也將產(chǎn)生1個正的復(fù)位尖脈沖。個正的復(fù)位尖脈沖。T3由外部引腳由外部引腳EW和和電源控制寄存器中的電源控制寄存器中的PCON4WLE和和PCONlPD控制??刂?。 EW:看門狗定時器允許,低電平有效。:看門狗定時器允許,低電平有效。 EW0時,允許看門狗定時器,禁止掉電方式;時,允許看門狗定時器,禁止掉電方式; EW1時禁止看門狗定時器,允許掉電方式。時禁止看門狗定時器,允許掉電方式。 WLE :看門狗定時器允許重

27、裝標(biāo)志。 若WLE置位,定時器T3只能被軟件裝入,裝入后WLE自動清除。T3的重裝和溢出,產(chǎn)生復(fù)位的時間間隔,由裝入T3的值決定,對于8C552,其監(jiān)視間隔可編程為2.048ms2.048255ms。 T3的工作過程:在T3溢出時,復(fù)位8XC552,并產(chǎn)生復(fù)位脈沖輸出至復(fù)位引腳RST。為防止系統(tǒng)復(fù)位,必須在定時器T3溢出前,通過軟件對其進(jìn)行重裝。如果發(fā)生軟件或硬件故障,將使軟件對定時器T3重裝失敗,從而T3溢出導(dǎo)致復(fù)位信號的產(chǎn)生。首先要確定系統(tǒng)能在不正常狀態(tài)下維持多久,這段時間就設(shè)定首先要確定系統(tǒng)能在不正常狀態(tài)下維持多久,這段時間就設(shè)定為監(jiān)視定時器的最大間隔時間。為監(jiān)視定時器的最大間隔時間。

28、T3是加是加1計(jì)數(shù)器,計(jì)數(shù)器,T3中裝入中裝入0,則監(jiān)視時間間隔最長,裝,則監(jiān)視時間間隔最長,裝入值為入值為FFH時,監(jiān)視時間間隔最短時,監(jiān)視時間間隔最短例:例:watchdog使用的一段程序如下:使用的一段程序如下:T3 EQU 0FFH ;定時器;定時器T3的地址的地址 PCON EQU 87H ;電源控制寄存器;電源控制寄存器PCON的地址的地址WATCH_INTV EQU 156 ;看門狗的時間間隔;看門狗的時間間隔(2.048100ms) 插在用戶程序中對看門狗需要重新裝入的地方:插在用戶程序中對看門狗需要重新裝入的地方: LCALLWATCHDOG;調(diào)用看門狗服務(wù)子程序;調(diào)用看門狗

29、服務(wù)子程序WATCHDOG:ORL PCON,10H ;允許定時器;允許定時器T3重裝重裝 MOV T3,WATCHINTV ;裝載定時器;裝載定時器T3 RET 定時器初值的計(jì)算定時器初值的計(jì)算 定時時間定時時間=脈沖數(shù)脈沖數(shù)脈沖周期機(jī)器周期)脈沖周期機(jī)器周期)定時時間定時時間t=(2L-初值初值TC) 6.5 6.5 定時器定時器/ /計(jì)數(shù)器的應(yīng)用編程計(jì)數(shù)器的應(yīng)用編程 6.5.1 6.5.1 定時器的應(yīng)用定時器的應(yīng)用機(jī)器周期時間定時時間初值LOSCLftTC2122oscf12L與工作方式有與工作方式有關(guān),關(guān),13、16、8定時器溢出率為定時時間的倒數(shù)定時器溢出率為定時時間的倒數(shù)fosc=

30、12MHZ時,時,1機(jī)周機(jī)周=1S;fosc=6MHZ 時,時, 1機(jī)周機(jī)周=2S解:解:工作方式工作方式0 0: 213500213500S/2S/2S=8192-250=7942S=8192-250=7942 =1F06H =1F06H =1111100000110B =1111100000110B TL0=00110B=06H TL0=00110B=06H TH0=11111000B=F8H TH0=11111000B=F8H【例】【例】 已知晶振已知晶振6MHz6MHz,要求定時,要求定時0.5ms0.5ms,試分別求,試分別求出出T0T0工作于方式工作于方式0 0、方式、方式1 1、

31、方式、方式2 2時的定時初值。時的定時初值。 工作方式工作方式1 1: T0T0初值初值 =216-=216-500500s/2s/2s=65536250=65286=FF06Hs=65536250=65286=FF06H TH0=FFH TH0=FFH;TL0=06HTL0=06H。 工作方式工作方式2 2: T0T0初值初值 =28-500=28-500s/2s/2s=256-250=6s=256-250=6 TH0=06H TH0=06H;TL0=06HTL0=06H。 從上例中看到,方式從上例中看到,方式0 0計(jì)算定時初值比較麻煩,根據(jù)公計(jì)算定時初值比較麻煩,根據(jù)公式計(jì)算出數(shù)值后,還要

32、變換一下,容易出錯,不如直接用方式計(jì)算出數(shù)值后,還要變換一下,容易出錯,不如直接用方式式1 1,且方式,且方式0 0計(jì)數(shù)范圍比方式計(jì)數(shù)范圍比方式1 1小,方式小,方式0 0完全可以用方式完全可以用方式1 1代替,方式代替,方式0 0與方式與方式1 1相比,無任何優(yōu)點(diǎn)。相比,無任何優(yōu)點(diǎn)。解:分析解:分析 采用方式采用方式0定時時間定時時間 t1ms=1000S定時常數(shù):定時常數(shù):TC=213-1000/2=8192-500=7692 = 11110000 01100B用定時器用定時器T0:TMOD=00H,TH0=F0H,TL0=0CH【例】【例】 要求在要求在 P10引腳上產(chǎn)生周期為引腳上產(chǎn)生

33、周期為2 ms的方波輸出的方波輸出fosc=6MHz 查詢方式查詢方式ORG 0000HAJMP STORG 0030HST:MOV SP,#60HMOV TMOD,#00H;方式;方式0L1:MOV TH0,#0F0H;初值;初值MOV TL0,#0CHCPL P1.0SETB TR0L2:JBC TF0,L1SJMP L2END中斷方式:中斷方式:ORG0000HAJMPMAINORG000BH;T0中斷矢量中斷矢量AJMP INQPORG0030HMAIN: MOV TMOD,00H ;設(shè);設(shè)T0為定時器方式為定時器方式0 MOV TH0,0F0H ;寫定時常數(shù);寫定時常數(shù)(定時定時1m

34、s) MOV TL0,0CH SETB TR0 ;啟動;啟動 T0 SETB ET0 ;允許;允許T0中斷中斷 SETB EA ;開放;開放CPU中斷中斷 AJMP $ ;定時中斷等待;定時中斷等待ORG2000 H ;T0中斷服務(wù)程序中斷服務(wù)程序 INQP: MOV TH0,0F0H ;重寫定時常數(shù);重寫定時常數(shù) MOV TL0,0CHCPL P10 ;P10變反輸出變反輸出 RETI 采用方式采用方式1 1定時時間定時時間 t1ms=1000S定時常數(shù):定時常數(shù):TC=216-1000/2=65535-500=65035 = 11111110 00001011B=FE0BH用定時器用定時器

35、T0:TMOD=01H,TH0=FEH,TL0=0BH編程與前相同編程與前相同【例】欲用【例】欲用80C51產(chǎn)生兩個方波,一個方波周期為產(chǎn)生兩個方波,一個方波周期為200s,另,另一個方波周期為一個方波周期為400s,該,該80C51同時使用串行口,用定時器同時使用串行口,用定時器/計(jì)數(shù)器作為波特率發(fā)生器計(jì)數(shù)器作為波特率發(fā)生器,波特率為波特率為2400, fOCS9.216 MHz 。分析:這時分析:這時T0采用方式采用方式3工作,其中,工作,其中,TL0產(chǎn)生產(chǎn)生100s定時,由定時,由 P1.0輸出方波輸出方波1TH0產(chǎn)生產(chǎn)生200s定時,由定時,由Pl.1輸出方波輸出方波2 ;T1設(shè)置為方

36、式設(shè)置為方式2,作波特率發(fā)生器用。,作波特率發(fā)生器用。計(jì)算:計(jì)算:TL0初值:初值:HBftTCLOSC3101100112 .1798 .762561210216.91010025612206618TH0初值:初值:HTCH664 .1021210216.910200256066TH1、TL1初值為:初值為:F6H編程:編程:ORG 0000H AJMP MAINORG 000BH ;TL0的中斷入口的中斷入口AJMP ITL0ORG 00lBH;TH0的中斷入口的中斷入口AJMP ITH0ORG 0100HMAIN:MOV SP, 60H;設(shè)棧指針;設(shè)棧指針MOV TMOD, 23H ;設(shè)

37、;設(shè)T0為方式為方式3,TI為為2 MOV TL0,0B3H ;設(shè);設(shè)TL0初值初值(100s定時定時) MOV TH0,66H ;設(shè);設(shè)TH0初值初值(200s定時定時) MOV TL1,0F6H ;設(shè);設(shè)TL1初值初值(波特率為波特率為2400) MOV TH1, 0F6H ;設(shè);設(shè) TH1初值初值 SETB TR0 ;啟動;啟動 TL0 SETB TR1 ;啟動;啟動TH0 SETB ET0 ;允許;允許TL0中斷中斷 SETB ET1 ;允許;允許TH0中斷中斷 SETB EA ;CPU中斷開放中斷開放 AJMP ORG 0200HITL0:MOV TL0, 0B3H ;重裝定時常數(shù);

38、重裝定時常數(shù) CPL P10 ;輸出方波;輸出方波1(200s) RETIITH0:MOV TH0,66H ;重裝定時常數(shù);重裝定時常數(shù)CPL P11 ;輸出方波;輸出方波2(400s) RETI不用方式不用方式3 3,能,能否只用否只用T0T0產(chǎn)生產(chǎn)生兩個時間?兩個時間?【例】假如一個用戶系統(tǒng)已使用了兩個外部中斷源,即【例】假如一個用戶系統(tǒng)已使用了兩個外部中斷源,即INT0和和INT1,用戶系統(tǒng)要求從,用戶系統(tǒng)要求從P1.0引腳上輸出一個引腳上輸出一個5kHz的方波,并的方波,并要求采用定時器要求采用定時器/計(jì)數(shù)器作為串行口的波特率發(fā)生器,另外還需計(jì)數(shù)器作為串行口的波特率發(fā)生器,另外還需要再

39、增加一個外部中斷源。要再增加一個外部中斷源。6.5.2 6.5.2 計(jì)數(shù)器的應(yīng)用計(jì)數(shù)器的應(yīng)用分析分析:除兩個外中斷除兩個外中斷(INT0、INT1外,還需要兩個定時器外,還需要兩個定時器5KHZ和波特率發(fā)生器和一個計(jì)數(shù)器擴(kuò)展外中斷)和波特率發(fā)生器和一個計(jì)數(shù)器擴(kuò)展外中斷)把把T0設(shè)置為方式設(shè)置為方式3: TL0設(shè)置為計(jì)數(shù)器,設(shè)置為計(jì)數(shù)器, TH0只能做只能做8位定時器位定時器產(chǎn)生產(chǎn)生5KHz方波),方波),T1就作為波特率發(fā)生器,設(shè)為方式就作為波特率發(fā)生器,設(shè)為方式2。頻率頻率5kHz即周期為即周期為200s,則定時時間,則定時時間100s,若采用,若采用12MHz的的晶體振蕩器,則機(jī)器周期為晶

40、體振蕩器,則機(jī)器周期為1s。 計(jì)算時間常數(shù):計(jì)算時間常數(shù):TC28100/1156編程:編程:ORG 0000HSJMP MAINORG 000BHAJMP TL0INT;TL0中斷入口中斷入口 ORG 001BHAJMP TH0INT;TH0中斷入口中斷入口ORG 0030HMAIN: MOV TMOD,#27H ;T0為方式3,TL0為計(jì)數(shù)方式, TH0為 ;定時;T1作波特率發(fā)生器,方式2MOV TH0,#156 ;TH0定時常數(shù)MOV TL0, #0FFH ;TL0計(jì)數(shù)常數(shù)MOV TL1,#BAUD ;BAUD根據(jù)波特率算出MOV TH1,#BAUDMOV TCON,#55H ;TR0

41、和TR1為1,啟動TL0和TH0MOV IE,#8AH SJMP $ORG0100HTL0INT:MOV TL0,#0FFH ;重置計(jì)數(shù)長度(中斷處理)RETITH0INT:MOV TH0,#156;重置定時常數(shù)CPLP1.0;P1.0引腳輸出方波RETI TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0GATE C/T M1 M0 GATE C/T M1 M0GATE C/T M1 M0 GATE C/T M1 M0 門控位門控位GATE可用作對可用作對INTx引腳上的高電平持續(xù)時間進(jìn)行計(jì)量。引腳上的高電平持續(xù)時間進(jìn)

42、行計(jì)量。通過反相器,則可測得相應(yīng)通過反相器,則可測得相應(yīng)INTx引腳上低電平的持續(xù)時間。兩引腳上低電平的持續(xù)時間。兩個時間的和即為個時間的和即為INTx引腳上輸入波形的周期,其倒數(shù)即為引腳上輸入波形的周期,其倒數(shù)即為INTx引腳上輸入波形的頻率。還可算出占空比等參數(shù)。引腳上輸入波形的頻率。還可算出占空比等參數(shù)。6.5.3 6.5.3 門控位門控位GATEGATE的應(yīng)用的應(yīng)用 【例】利用定時器計(jì)數(shù)器測定圖示波形的一個周期長度。【例】利用定時器計(jì)數(shù)器測定圖示波形的一個周期長度。分析:若分析:若GATE=1,則則T1為定時器時,當(dāng)為定時器時,當(dāng)TR1=1且且INT1為高為高電平時,才啟動定時器。電平

43、時,才啟動定時器。 INT1(P3.3)TR1 置置1T1開始計(jì)時開始計(jì)時TR1清零清零查詢法查詢法ORG 0000HSTART:MOV TMOD,#90HMOV TL1,#00H;置為最大定時值;置為最大定時值MOV TH1,#00HLP1:JBP3.3,LP1;P3.3為高電平,等待為高電平,等待 SETB TR1;當(dāng);當(dāng)P3.3為低時為低時,置置TR1為為1LP2: JNBP3.3,LP2;當(dāng);當(dāng)P3.3為低電平時,再等待為低電平時,再等待LP3:JBP3.3,LP3;當(dāng);當(dāng)P3.3為高電平時,為高電平時,T1開開; 始定時計(jì)數(shù)始定時計(jì)數(shù)CLRTR1;當(dāng);當(dāng)P3.3為低電平時,高電為低電

44、平時,高電;平脈寬定時計(jì)數(shù)結(jié)束;平脈寬定時計(jì)數(shù)結(jié)束SJMP $當(dāng)當(dāng)fosc12MHz時,最大被測脈寬為時,最大被測脈寬為65536s。此編程實(shí)際只測量了高電平的寬度,此編程實(shí)際只測量了高電平的寬度,若被測波形除了接至若被測波形除了接至P3.3,另外同時通,另外同時通過一個反相器接至過一個反相器接至P3.2 (INT0) ,則通,則通過編程同時可以測得波形的高電平寬過編程同時可以測得波形的高電平寬度和低電平寬度。度和低電平寬度。中斷法:中斷法:【分析】對于脈沖寬度大于【分析】對于脈沖寬度大于65.536ms的脈沖,可以采用對定時溢的脈沖,可以采用對定時溢出次數(shù)進(jìn)行計(jì)數(shù)的方法。這樣,脈寬為出次數(shù)進(jìn)

45、行計(jì)數(shù)的方法。這樣,脈寬為 (定時溢出時間定時溢出時間溢出次溢出次數(shù)數(shù))定時時間。測定脈沖周期可用圖示方法。定時時間。測定脈沖周期可用圖示方法。 T1腳上對下降沿計(jì)數(shù)二次,即為外部脈沖的一個周期時間?,F(xiàn)設(shè)腳上對下降沿計(jì)數(shù)二次,即為外部脈沖的一個周期時間?,F(xiàn)設(shè)T1為計(jì)數(shù)器。計(jì)數(shù)值為為計(jì)數(shù)器。計(jì)數(shù)值為2。設(shè)設(shè)6MHz晶振晶振,T0為方式為方式1,定時溢出時間為,定時溢出時間為 100 ms當(dāng)計(jì)數(shù)值為當(dāng)計(jì)數(shù)值為1時,啟動定時器;當(dāng)計(jì)數(shù)值為時,啟動定時器;當(dāng)計(jì)數(shù)值為2時,中斷計(jì)數(shù)器時,中斷計(jì)數(shù)器T1,并停止定時器并停止定時器T0的定時。的定時。T1中斷優(yōu)先級設(shè)為高于定時器中斷優(yōu)先級設(shè)為高于定時器T0。

46、 計(jì)數(shù)初值為計(jì)數(shù)初值為 FFFEH:(:(TH1)FFH,(,(TL1)FEH。 編程編程: ORG0000HSJMP MAINORG 000BH ;定時器;定時器T0中斷入口中斷入口 AJMP TIME0 ORG 00IBH ;定時器;定時器 T1中斷入口中斷入口 AJMP TIME1 ORG 0030HMAIN:MOV R0,0;清除;清除T0定時中斷次數(shù)計(jì)數(shù)器定時中斷次數(shù)計(jì)數(shù)器MOV TMOD,59H;T0為定時器為定時器,方式方式1, GATE1 ;T1為計(jì)數(shù)器、方式為計(jì)數(shù)器、方式1 MOV TH0,3CH ;T0定時器初值定時器初值 MOV TL0,0B0H MOV TH1,0FFH

47、 ;T1計(jì)數(shù)器初值計(jì)數(shù)器初值 MOV TL1,0FEH SETB TR0;啟動;啟動T0定時器定時器 SETB TR1;啟動;啟動T1計(jì)數(shù)器計(jì)數(shù)器 MOV IP,08H ;T1中斷優(yōu)先級高于中斷優(yōu)先級高于T0SETB ET1 ;允許;允許T1中斷中斷 SETB ET0;允許;允許T0中斷中斷 SETB EA ;CPU開中斷開中斷SETB 20H ;設(shè);設(shè)20H為為T1計(jì)數(shù)中斷標(biāo)志計(jì)數(shù)中斷標(biāo)志LOOP:SETB F0;設(shè);設(shè)F0為為T0定時中斷標(biāo)志定時中斷標(biāo)志 JB F0,$;T0定時未溢出,等待定時未溢出,等待 JB 20H,LOOP ;判;判T1若未溢出則循環(huán)若未溢出則循環(huán)SJMP $ ORG 0100HTIME0:MOV TL0,0B0H;重置;重置T0定時器初值定時

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論