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

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)課件5-MCS-51單片機(jī)定時(shí)器計(jì)數(shù)器第一頁,共65頁。(1)定時(shí)器/計(jì)數(shù)器的概念定時(shí)器計(jì)數(shù)器定時(shí)/計(jì)數(shù)器

內(nèi)部計(jì)數(shù)器外部計(jì)數(shù)器(2)MCS-51的定時(shí)器/計(jì)數(shù)器簡(jiǎn)介

2個(gè)16位的定時(shí)/計(jì)數(shù)器,有多種工作方式。定時(shí)/計(jì)數(shù)器工作在定時(shí)模式時(shí),計(jì)數(shù)脈沖信號(hào)來自單片機(jī)的內(nèi)部,計(jì)數(shù)速率是晶振頻率的1/12,當(dāng)計(jì)數(shù)器啟動(dòng)后,每個(gè)機(jī)器周期計(jì)數(shù)器自動(dòng)加1。

定時(shí)/計(jì)數(shù)器工作在計(jì)數(shù)模式時(shí),計(jì)數(shù)器對(duì)外部脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)器計(jì)P3.4(T0腳)P3.5(T1腳)負(fù)跳變次數(shù)。每產(chǎn)生一次負(fù)跳變,計(jì)數(shù)器自動(dòng)加1。5.1

概述2第二頁,共65頁。MCS-51定時(shí)器/計(jì)數(shù)器的邏輯結(jié)構(gòu)5.1

概述3第三頁,共65頁。GATEM0C/TM1M0GATEC/TM1D0D1D2D3D4D5D6D7定時(shí)/計(jì)數(shù)器工作方式定時(shí)器和計(jì)數(shù)器模式選擇門控位定時(shí)/計(jì)數(shù)器T0定時(shí)/計(jì)數(shù)器T1定時(shí)/計(jì)數(shù)器工作方式定時(shí)器和計(jì)數(shù)器模式選擇門控位5.2

定時(shí)器/計(jì)數(shù)器的工作方式選擇及控制(一)定時(shí)/計(jì)數(shù)器的工作方式寄存器(TMOD,89H)4第四頁,共65頁。TMOD各位的定義(以定時(shí)器/計(jì)數(shù)器T0為例)定時(shí)器和計(jì)數(shù)器模式選擇位=0,定時(shí)器模式,每一個(gè)機(jī)器周期計(jì)數(shù)器自動(dòng)加1。=1,計(jì)數(shù)器模式,在單片機(jī)T0引腳上每發(fā)生一次負(fù)跳變,計(jì)數(shù)器自動(dòng)加1。GATE=0,定時(shí)/計(jì)數(shù)器工作不受外部控制。GATE=1,定時(shí)/計(jì)數(shù)器T0的起停受INT0引腳的控制。M0M1

說明00013位定時(shí)器/計(jì)數(shù)器,由TL0低五位和TH0高八位組成工作方式01116位定時(shí)器/計(jì)數(shù)器,由TL0低八位和TH0高八位組成1028位定時(shí)器/計(jì)數(shù)器,由TL0低八位組成113TL0低八位和TH0高八位分別位8位定時(shí)器/計(jì)數(shù)器5.2

定時(shí)器/計(jì)數(shù)器的工作方式選擇及控制(一)定時(shí)/計(jì)數(shù)器的工作方式寄存器(TMOD,89H)5.2

定時(shí)器/計(jì)數(shù)器的工作方式選擇及控制(一)定時(shí)/計(jì)數(shù)器的工作方式寄存器(TMOD,89H)5第五頁,共65頁。TF1TF0IE1TR1IT0IT1IE0TR0定時(shí)器/計(jì)數(shù)器1的溢出標(biāo)志TCOND0D1D2D3D4D5D6D7定時(shí)器/計(jì)數(shù)器0的起??刂莆欢〞r(shí)器/計(jì)數(shù)器1的起??刂莆欢〞r(shí)器/計(jì)數(shù)器0的溢出標(biāo)志TR0=1啟動(dòng)定時(shí)/計(jì)數(shù)器T0TR0=0定時(shí)/計(jì)數(shù)器T0停止計(jì)數(shù)

TR1=1啟動(dòng)定時(shí)/計(jì)數(shù)器T1TR1=0定時(shí)/計(jì)數(shù)器T1停止計(jì)數(shù)5.2

定時(shí)器/計(jì)數(shù)器的工作方式選擇及控制(二)定時(shí)/計(jì)數(shù)器控制寄存器(TCON)控制定時(shí)/計(jì)數(shù)器的起停,反映定時(shí)/計(jì)數(shù)器是否計(jì)滿。6第六頁,共65頁。(二)定時(shí)/計(jì)數(shù)器控制寄存器(TCON)單片機(jī)復(fù)位時(shí),特殊功能寄存器TCON被清0。

TFx(x=0,1)和TRx(x=0,1)由軟件方法置1或清0。既可按單元操作的方式,也可以按位操作方式。如啟動(dòng)定時(shí)/計(jì)數(shù)器T0和T1,清除溢出標(biāo)志位TF0和TF1操作如下:

SETBTR0SETBTR1CLRTF0CLRTF1

或:MOVTCON,#01010000B5.2

定時(shí)器/計(jì)數(shù)器的工作方式選擇及控制7第七頁,共65頁。

注意:使用定時(shí)器/計(jì)數(shù)器時(shí)應(yīng)注意以下幾個(gè)方面: (1)MCS-51的定時(shí)器/計(jì)數(shù)器為加1計(jì)數(shù)器。 (2)定時(shí)器/計(jì)數(shù)器T1的工作方式?jīng)]有方式3,如果設(shè)置它為方式3(M1M0=11),定時(shí)器/計(jì)數(shù)器T1停止工作。 (3)一般情況下,定時(shí)器/計(jì)數(shù)器T1溢出后,TF1自動(dòng)置1,可以以此為判斷標(biāo)志,檢測(cè)定時(shí)或計(jì)數(shù)是否完成,但在定時(shí)器/計(jì)數(shù)器T0設(shè)置為方式3時(shí),TF1為1時(shí)意味著8位計(jì)數(shù)器TH0溢出,TF0為1表示8位計(jì)數(shù)器TL0溢出。 (4)在計(jì)數(shù)器模式時(shí),計(jì)數(shù)脈沖的頻率不高于振蕩器頻率的1/24.5.2

定時(shí)器/計(jì)數(shù)器的工作方式選擇及控制(二)定時(shí)/計(jì)數(shù)器控制寄存器(TCON)8第八頁,共65頁。5.3.1

方式05.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理定時(shí)器/計(jì)數(shù)器T0工作方式0的邏輯結(jié)構(gòu)計(jì)數(shù)器的低五位計(jì)數(shù)器的高八位TH0TL09第九頁,共65頁。

當(dāng)GATE=0時(shí),只要TR0為1,TL0及TH0組成的13位計(jì)數(shù)器就開始計(jì)數(shù);當(dāng)GATE=1時(shí),僅當(dāng)TR0為1,且引腳輸入信號(hào)狀態(tài)為1時(shí),13位計(jì)數(shù)器開始計(jì)數(shù)。計(jì)數(shù)器開始工作時(shí),當(dāng)13位計(jì)數(shù)器從初始值開始加1計(jì)數(shù),當(dāng)13位計(jì)數(shù)器各位全1以后,再計(jì)數(shù)1次,計(jì)數(shù)器就產(chǎn)生溢出,則TF0位由硬件自動(dòng)置1,同時(shí)把計(jì)數(shù)器清0。在方式0下,計(jì)數(shù)器計(jì)數(shù)范圍是1~8192(213)。定時(shí)時(shí)間范圍為1~8192個(gè)機(jī)器周期。5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.1

方式010第十頁,共65頁。

在工程設(shè)計(jì)時(shí),我們經(jīng)常碰到的是這樣的問題:要求在計(jì)數(shù)次或者定時(shí)(延時(shí))秒后,再進(jìn)行下一步的動(dòng)作。如果采用定時(shí)/計(jì)數(shù)器實(shí)現(xiàn),最直接的方法是讓定時(shí)/計(jì)數(shù)器計(jì)數(shù)次或者定時(shí)秒后溢出,溢出標(biāo)志TF0(或TF1)為我們提供了測(cè)試判斷條件。然而,計(jì)數(shù)器只有在計(jì)滿后才會(huì)溢出,上述問題轉(zhuǎn)換為在某個(gè)初始值的基礎(chǔ)上再計(jì)N次或再定時(shí)t秒使定時(shí)/計(jì)數(shù)器溢出。因此,求初始值是解決上述問題的關(guān)鍵。5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.1

方式011第十一頁,共65頁。

(1)計(jì)數(shù)器工作模式計(jì)數(shù)N次,要求計(jì)數(shù)器溢出,設(shè)初始值為,則:,那么,預(yù)先給計(jì)數(shù)器裝入初始值,當(dāng)計(jì)數(shù)器計(jì)數(shù)次后,溢出標(biāo)志TF0為1。5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.1

方式012第十二頁,共65頁。

(2)定時(shí)器模式定時(shí)td,要求計(jì)數(shù)器溢出。首先計(jì)算定時(shí)td需要多少個(gè)機(jī)器周期,即:設(shè)初始值為X,則:,預(yù)先給計(jì)數(shù)器裝入初始值,當(dāng)計(jì)數(shù)器計(jì)個(gè)機(jī)器周期后,溢出標(biāo)志TF0為1,定時(shí)時(shí)間到。5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.1

方式013第十三頁,共65頁。定時(shí)器/計(jì)數(shù)器T0工作方式1的邏輯結(jié)構(gòu)5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.2

方式114第十四頁,共65頁。

當(dāng)GATE=0時(shí),只要TR0為1,TL0及TH0組成的16位計(jì)數(shù)器就開始計(jì)數(shù);當(dāng)GATE=1時(shí),僅當(dāng)TR0為1,且引腳輸入信號(hào)狀態(tài)為1時(shí),16位計(jì)數(shù)器開始計(jì)數(shù)。計(jì)數(shù)器開始工作時(shí),當(dāng)16位計(jì)數(shù)器從初始值開始加1計(jì)數(shù),當(dāng)16位計(jì)數(shù)器各位全1以后,再計(jì)1次,計(jì)數(shù)器就產(chǎn)生溢出,則硬件自動(dòng)把TF0位置1,同時(shí)把計(jì)數(shù)器清0。

5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.2

方式115第十五頁,共65頁。(1)計(jì)數(shù)器工作模式計(jì)數(shù)N次,要求計(jì)數(shù)器溢出,設(shè)初始值為X,則:,那么,預(yù)先給計(jì)數(shù)器裝入初始值,當(dāng)計(jì)數(shù)器計(jì)數(shù)N次后,溢出標(biāo)志TF0為1。

5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.2

方式116第十六頁,共65頁。(2)定時(shí)器工作模式定時(shí)td秒,要求計(jì)數(shù)器溢出。首先計(jì)算定時(shí)td需要多少個(gè)機(jī)器周期才能實(shí)現(xiàn),即:設(shè)初始值為X,則:,那么,。預(yù)先給計(jì)數(shù)器裝入初始值,當(dāng)計(jì)數(shù)器計(jì)N個(gè)機(jī)器周期后,溢出標(biāo)志TF0為1,定時(shí)時(shí)間到。方式1時(shí),定時(shí)/計(jì)數(shù)器的最大計(jì)數(shù)次數(shù)為65536(初始值為0),最大定時(shí)時(shí)間為65536TM(初始值為0)。5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.2

方式117第十七頁,共65頁。定時(shí)器/計(jì)數(shù)器0在工作方式2的邏輯結(jié)構(gòu)5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.3

方式218第十八頁,共65頁。

當(dāng)GATE=0時(shí),只要TR0為1,計(jì)數(shù)器TL0開始計(jì)數(shù);當(dāng)GATE=1時(shí),僅當(dāng)TR0為1,且引腳輸入信號(hào)狀態(tài)為1時(shí),計(jì)數(shù)器TL0開始計(jì)數(shù)。計(jì)數(shù)器開始工作時(shí),當(dāng)8位計(jì)數(shù)器TL0從初始值開始加1計(jì)數(shù),當(dāng)計(jì)數(shù)器各位全“1”以后,再計(jì)1次,計(jì)數(shù)器產(chǎn)生溢出,則TF0位由硬件自動(dòng)置1,同時(shí)把TH0的內(nèi)容裝載到TL0。5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.3

方式219第十九頁,共65頁。(1)計(jì)數(shù)器工作模式計(jì)數(shù)N次,要求計(jì)數(shù)器溢出,設(shè)初始值為X,則:,那么,預(yù)先給計(jì)數(shù)器裝入初始值,當(dāng)計(jì)數(shù)器計(jì)數(shù)N次后,溢出標(biāo)志TF0為1。5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.3

方式220第二十頁,共65頁。

(2)定時(shí)器工作模式定時(shí)td秒,要求計(jì)數(shù)器溢出。首先計(jì)算定時(shí)td需要多少個(gè)機(jī)器周期才能實(shí)現(xiàn),即:。設(shè)初始值為X,則:,那么,。預(yù)先給計(jì)數(shù)器裝入初始值,當(dāng)計(jì)數(shù)器計(jì)N

個(gè)機(jī)器周期后,溢出標(biāo)志TF0為1,定時(shí)時(shí)間到。方式2時(shí),定時(shí)/計(jì)數(shù)器的最大計(jì)數(shù)次數(shù)為256(初始值為0),最大定時(shí)時(shí)間為256TM(初始值為0)。5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.3

方式221第二十一頁,共65頁。

當(dāng)M1M0設(shè)置為11時(shí),定時(shí)/計(jì)數(shù)器T0的工作方式為方式3。只有定時(shí)/計(jì)數(shù)器T0有方式3,定時(shí)/計(jì)數(shù)器T1沒有工作方式3,如果把T1設(shè)置為方式3,計(jì)數(shù)器將停止工作。在工作方式3下,定時(shí)器/計(jì)數(shù)器T0被拆分成2個(gè)獨(dú)立的8位計(jì)數(shù)器TL0和TH0。5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.4

方式322第二十二頁,共65頁。5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.4

方式3TL0定時(shí)/計(jì)數(shù)器邏輯結(jié)構(gòu)定時(shí)器/計(jì)數(shù)器T0工作方式3的邏輯結(jié)構(gòu)23第二十三頁,共65頁。TH0定時(shí)/計(jì)數(shù)器邏輯結(jié)構(gòu)定時(shí)器/計(jì)數(shù)器T0工作方式3的邏輯結(jié)構(gòu)5.3定時(shí)器/計(jì)數(shù)器的工作方式及工作原理5.3.4

方式324第二十四頁,共65頁。5.4.1定時(shí)器/計(jì)數(shù)器初始化定時(shí)/計(jì)數(shù)器的初始化包括設(shè)置工作方式、計(jì)數(shù)器或定時(shí)器模式、計(jì)算計(jì)數(shù)初始值、啟動(dòng)定時(shí)/計(jì)數(shù)器、設(shè)置中斷控制位等。定時(shí)和計(jì)數(shù)可以采用查詢方式和中斷方式實(shí)現(xiàn)。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例25第二十五頁,共65頁。

(一)采用查詢方式實(shí)現(xiàn)定時(shí)和計(jì)數(shù)(1)確定工作方式、計(jì)數(shù)器或定時(shí)器模式及啟動(dòng)控制方式,構(gòu)造方式控制碼并寫入特殊功能寄存器TMOD:MOVTMOD,#控制碼。(2)計(jì)算定時(shí)器或計(jì)數(shù)器的計(jì)數(shù)初始值,根據(jù)工作方式把初始值送人TH0、TL0或TH1、TL1。(3)啟動(dòng)定時(shí)/計(jì)數(shù)器:SETBTRx,x=0,1。定時(shí)/計(jì)數(shù)器開始工作,通過查詢TFx是否為1來判斷定時(shí)或計(jì)數(shù)是否達(dá)到要求。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例5.4.1定時(shí)器/計(jì)數(shù)器初始化26第二十六頁,共65頁。

(二)采用中斷方式實(shí)現(xiàn)定時(shí)和計(jì)數(shù)

(1)確定工作方式、計(jì)數(shù)器或定時(shí)器模式及啟動(dòng)控制方式,構(gòu)造控制碼并寫入特殊功能寄存器TMOD。(2)計(jì)算定時(shí)器或計(jì)數(shù)器的計(jì)數(shù)初始值,根據(jù)工作方式把初始值送人TH0、TL0或TH1、TL1。(3)開放CPU中斷,允許定時(shí)/計(jì)數(shù)器溢出中斷CPU的工作:對(duì)IE寄存器編程。(4)啟動(dòng)定時(shí)/計(jì)數(shù)器:SETBTRx,x=0,1。當(dāng)計(jì)數(shù)器溢出時(shí),定時(shí)或計(jì)數(shù)達(dá)到要求,CPU響應(yīng)中斷,程序轉(zhuǎn)移到相應(yīng)的中斷處理程序入口處。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例5.4.1定時(shí)器/計(jì)數(shù)器初始化27第二十七頁,共65頁。

定時(shí)/計(jì)數(shù)器有多種工作方式,每一種工作方式都能提供定時(shí)和計(jì)數(shù)功能,我們?cè)趹?yīng)用中如何選擇合適的工作方式呢?(1)掌握每種工作方式下定時(shí)/計(jì)數(shù)器的工作原理和特點(diǎn)。(2)了解每種工作方式下定時(shí)/計(jì)數(shù)器的最大計(jì)數(shù)次數(shù)和最大定時(shí)時(shí)間。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用28第二十八頁,共65頁。13位定時(shí)/計(jì)數(shù)器(方式0)最大計(jì)數(shù)次數(shù)為8192,當(dāng)晶振頻率時(shí),最大定時(shí)時(shí)間為8.192ms。

16位定時(shí)/計(jì)數(shù)器(方式1)最大計(jì)數(shù)次數(shù)為65536,當(dāng)晶振頻率時(shí),最大定時(shí)時(shí)間為65.536ms。

8位定時(shí)/計(jì)數(shù)器(方式2和方式3)最大計(jì)數(shù)次數(shù)為256,當(dāng)晶振頻率時(shí),最大定時(shí)時(shí)間為0.256ms。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用29第二十九頁,共65頁。

(一)方式0的應(yīng)用5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用控制系統(tǒng)原理30第三十頁,共65頁。

(一)方式0的應(yīng)用例1:已知某生產(chǎn)線傳送帶上產(chǎn)品單向傳送到包裝機(jī),傳送帶上的產(chǎn)品之間有間隔,使用光電開關(guān)檢測(cè)的產(chǎn)品個(gè)數(shù),每計(jì)數(shù)到12個(gè)產(chǎn)品時(shí),由氣缸驅(qū)動(dòng)的頂推裝置把這批產(chǎn)品推入包裝機(jī)包裝,頂推裝置的頂推氣缸動(dòng)作響應(yīng)時(shí)間為50ms。系統(tǒng)采用單片機(jī)控制,采用定時(shí)/計(jì)數(shù)器實(shí)現(xiàn)產(chǎn)品計(jì)數(shù)。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用31第三十一頁,共65頁。

解:(1)計(jì)數(shù)采用定時(shí)/計(jì)數(shù)器T1的方式0,則方式控制字為:

即:(TMOD)=01000000B。(2)期望計(jì)數(shù)的次數(shù)為12次,方式0實(shí)現(xiàn)計(jì)數(shù),則計(jì)數(shù)初始值為:則(TH1)=11111111B,(TL1)=00010100B。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(一)方式0的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用32第三十二頁,共65頁。

(3)查詢方式程序:

CLRP1.0;頂推氣缸復(fù)位MOVTMOD,#01000000B;設(shè)置工作方式0和計(jì)數(shù)器模式MOVTH1,#11111111B;設(shè)置計(jì)數(shù)初始值高8位MOVTL1,#00010100B;設(shè)置計(jì)數(shù)初始值低5位SETBTR1;計(jì)數(shù)器啟動(dòng)CNTING:JBCTF1,OK;檢測(cè)是否溢出,若溢出,清溢出標(biāo)志SJMPCNTING;等待,計(jì)數(shù)OK:MOVTH1,#11111111B;重新裝入計(jì)數(shù)常數(shù)值,以便下一;個(gè)計(jì)數(shù)循環(huán)同樣計(jì)數(shù)12次溢出

MOVTL1,#00010100B5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(一)方式0的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用33第三十三頁,共65頁。SETBP1.0;頂推氣缸動(dòng)作ACALLDL50MS;控制信號(hào)保持50ms,以便氣缸動(dòng)作到位CLRP1.0;頂推氣缸復(fù)位SJMPCNTING;延時(shí)50ms子程序,晶振頻率為12MHzDL50MS:MOVR7,#50DL1MS:MOVR6,#200DL: NOPNOPNOP5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(一)方式0的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用

(3)查詢方式程序:DJNZR6,DLDJNZR7,DL1MSRET34第三十四頁,共65頁。

例2:設(shè)單片機(jī)應(yīng)用系統(tǒng)晶振頻率為6MHz,使用定時(shí)器T0以方式0產(chǎn)生頻率為500Hz的等寬方波連續(xù)脈沖,并從P1.0輸出。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(一)方式0的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用35第三十五頁,共65頁。

解:等寬方波的高低電平持續(xù)時(shí)間相同,占空比為1:1。500Hz的等寬方波脈沖信號(hào)的周期為2ms,只需在P1.0引腳輸出持續(xù)時(shí)間為1ms的高低電平交替變化的信號(hào)即可,則定時(shí)時(shí)間應(yīng)為td=1ms。

5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(一)方式0的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用36第三十六頁,共65頁。

(1)計(jì)算計(jì)數(shù)初始值因?yàn)橄到y(tǒng)的晶振頻率為,則機(jī)器周期。設(shè)計(jì)數(shù)初始值為X:

則(TH0)=11110000B=0F0H,(TL0)=00001100B=0CH

(2)設(shè)置工作方式方式0:M1M0=00;定時(shí)器模式:;定時(shí)/計(jì)數(shù)器啟動(dòng)不受外部控制:GATE=0;因此,(TMOD)=00H。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(一)方式0的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用37第三十七頁,共65頁。

(二)方式1的應(yīng)用例3:?jiǎn)纹瑱C(jī)應(yīng)用系統(tǒng)的晶振頻率為6MHz,使用定時(shí)/計(jì)數(shù)器定時(shí)方法在P1.0引腳輸出周期為100ms占空比1:4的信號(hào)序列。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用P1.0引腳輸出的信號(hào)序列38第三十八頁,共65頁。

解:以20ms為一個(gè)基本定時(shí)單位,高電平保持1個(gè)基本定時(shí)單位之后,P1.0變?yōu)榈碗娖?,保?個(gè)基本定時(shí)單位,然后,P1.0再次改變?yōu)楦唠娖?,周而?fù)始地重復(fù)上述過程,就可以實(shí)現(xiàn)題目要求的信號(hào)序列。

5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(二)方式1的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用39第三十九頁,共65頁。

(1)計(jì)算計(jì)數(shù)初始值

系統(tǒng)的晶振頻率為fosc=6MHz,機(jī)器周期TM=2μs。選用定時(shí)/計(jì)數(shù)器T0的方式1實(shí)現(xiàn),確定定時(shí)時(shí)間為td=20ms,設(shè)計(jì)數(shù)初始值為X:

則(TH0)=0D8H,(TL0)=0F0H。(2)設(shè)置工作方式方式1:M1M0=01;定時(shí)器模式:;定時(shí)/計(jì)數(shù)器啟動(dòng)不受外部控制:GATE=0;因此,(TMOD)=01H。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(二)方式1的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用40第四十頁,共65頁。

例4:利用定時(shí)/計(jì)數(shù)器T0測(cè)量引腳上出現(xiàn)的正脈沖寬度,已知系統(tǒng)的晶振頻率為12MHz,將所測(cè)得值高位存入片內(nèi)71H,低位存入片內(nèi)70H。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(二)方式1的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用41第四十一頁,共65頁。解:當(dāng)特殊功能寄存器TMOD中的GATE位為1時(shí),MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器的啟動(dòng)和停止受外部信號(hào)的控制,T0受控制,T1受控制。測(cè)量引腳上出現(xiàn)的正脈沖寬度是一個(gè)定時(shí)/計(jì)數(shù)器T0受控制的定時(shí)方式,當(dāng)時(shí),定時(shí)/計(jì)數(shù)器啟動(dòng)計(jì)數(shù),當(dāng)時(shí),停止計(jì)數(shù)。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(二)方式1的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用脈沖寬度測(cè)量原理42第四十二頁,共65頁。

(1)設(shè)置工作方式方式1:M1M0=01,定時(shí)器模式:,定時(shí)/計(jì)數(shù)器啟動(dòng)受外部控制:GATE=1,因此,(TMOD)=09H(2)設(shè)置計(jì)數(shù)初始值因?yàn)榻y(tǒng)計(jì)脈沖寬度,因此,計(jì)數(shù)器從0開始計(jì)數(shù),(TH0)=00H,(TL0)=00H。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(二)方式1的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用43第四十三頁,共65頁。

例5:低頻信號(hào)T0(P3.4)引腳輸入,要求當(dāng)T0(P3.4發(fā)生負(fù)跳變時(shí),從P1.0引腳上輸出1個(gè)500的同步脈沖。設(shè)系統(tǒng)的晶振頻率為6MHz。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(三)方式2的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用44第四十四頁,共65頁。

解:采用定時(shí)/計(jì)數(shù)器計(jì)數(shù)方式和定時(shí)方式結(jié)合的方法。當(dāng)P3.4引腳出現(xiàn)負(fù)跳變時(shí),計(jì)數(shù)器溢出,此時(shí),使P1.0引腳輸出低電平,并且改變定時(shí)/計(jì)數(shù)器的工作方式為定時(shí)方式,使低電平保持500(延時(shí)),當(dāng)計(jì)數(shù)器再次溢出時(shí),使P1.0引腳輸出高電平,同時(shí)把定時(shí)/計(jì)數(shù)器的工作方式改變?yōu)橛?jì)數(shù)方式,原理如下圖所示。選用定時(shí)/計(jì)數(shù)器T0的方式2實(shí)現(xiàn)上述要求。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(三)方式2的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用45第四十五頁,共65頁。

5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(三)方式2的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用同步脈沖輸出原理46第四十六頁,共65頁。

(1)外部事件計(jì)數(shù)的初始化工作方式:M1M0=10,GATE=0,計(jì)數(shù)方式:,則(TMOD)=06H。計(jì)數(shù)初始值:由于P3.4引腳上的信號(hào),每發(fā)生一次負(fù)跳變,要求計(jì)數(shù)器溢出,所以,(TL0)=0FFH,同時(shí),令(TH0)=0FFH,以便下一個(gè)負(fù)跳變出現(xiàn)時(shí),計(jì)數(shù)器也可溢出。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(三)方式2的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用47第四十七頁,共65頁。

(2)500定時(shí)的初始化工作方式:M1M0=10,GATE=0,定時(shí)方式:,則(TMOD)=02H。計(jì)數(shù)初始值計(jì)算:系統(tǒng)晶振頻率為6MHz,則機(jī)器周期為2,方式2時(shí)計(jì)數(shù)器為8位,則定時(shí)500所需的機(jī)器周期個(gè)數(shù)為:計(jì)數(shù)器初始值為:因此,(TL0)=06H,同時(shí),令(TH0)=06H5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(三)方式2的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用48第四十八頁,共65頁。

例8:采用定時(shí)/計(jì)數(shù)器T0的方式3分別產(chǎn)生2路周期為400μs和800μs的方波。設(shè)單片機(jī)應(yīng)用系統(tǒng)的晶振頻率為6MHz。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(四)方式3的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用49第四十九頁,共65頁。解:方式3時(shí),定時(shí)/計(jì)數(shù)器T0被剖分為2個(gè)8位的定時(shí)/計(jì)數(shù)器TL0和TH0。2路方波信號(hào)的周期為400μs和800μs,分別采用TH0和TL0實(shí)現(xiàn)200μs和400μs的定時(shí),2路方波信號(hào)分別從P1.0和P1.1輸出。采用中斷方式實(shí)現(xiàn)。(1)工作方式定時(shí)/計(jì)數(shù)器T0的方式3定時(shí)模式:M1M0=11,,GATE=0因此,(TMOD)=03H5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(四)方式3的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用50第五十頁,共65頁。

(2)計(jì)數(shù)初始值方式3時(shí),TH0和TL0為2個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器,因此,200定時(shí)由TH0實(shí)現(xiàn),而400定時(shí)由TL0完成,計(jì)數(shù)初始值計(jì)算如下:時(shí),,則(TH0)=9CH

時(shí),,則(TL0)=38H

5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(四)方式3的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用51第五十一頁,共65頁。

(3)中斷控制字及初始化方式3時(shí),定時(shí)/計(jì)數(shù)器TL0使用了T0所有的標(biāo)志位和控制位,而定時(shí)/計(jì)數(shù)器TH0僅使用了定時(shí)/計(jì)數(shù)器T1的啟??刂莆籘R1和溢出標(biāo)志位TF1,此時(shí),TH0僅僅能夠作為一個(gè)8位的定時(shí)器使用,中斷允許控制寄存器IE的內(nèi)容設(shè)置如下:

因此,(IE)=8AH5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(四)方式3的應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用52第五十二頁,共65頁。

例9:設(shè)MCS-51單片機(jī)系統(tǒng)時(shí)鐘頻率為6MHZ,請(qǐng)利用定時(shí)/計(jì)數(shù)器產(chǎn)生1秒的定時(shí)。使指示燈以1秒為間隔閃爍。解:MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器T0和T1作為定時(shí)/計(jì)數(shù)器使用時(shí),所得到的定時(shí)時(shí)間比較短,當(dāng)系統(tǒng)晶振頻率為6MHz時(shí),最長(zhǎng)的延時(shí)時(shí)間約為131ms(方式1)。因此,直接由定時(shí)/計(jì)數(shù)器定時(shí)無法實(shí)現(xiàn)這么長(zhǎng)時(shí)間的延時(shí)。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(五)綜合應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用53第五十三頁,共65頁。

方法一:采用2個(gè)定時(shí)/計(jì)數(shù)器聯(lián)合使用的方案實(shí)現(xiàn)1秒的定時(shí)。首先采用定時(shí)/計(jì)數(shù)器T0以方式1產(chǎn)生100ms的定時(shí),從P1.0引腳輸出周期為200ms的連續(xù)方波信號(hào)。然后,把此信號(hào)作為定時(shí)/計(jì)數(shù)器T1的外部計(jì)數(shù)輸入信號(hào)輸入到引腳T1(P3.5),設(shè)置T1為計(jì)數(shù)模式,以方式2計(jì)數(shù),T1計(jì)數(shù)5次即可實(shí)現(xiàn)1秒的定時(shí)。指示燈L由P1.2控制。5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(五)綜合應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用54第五十四頁,共65頁。產(chǎn)生1秒定時(shí)及指示燈驅(qū)動(dòng)顯示的原理5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(五)綜合應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用55第五十五頁,共65頁。

(1)工作方式:根據(jù)以上分析,設(shè)置T0定時(shí)器模式、方式1,T1為計(jì)數(shù)器模式、方式2,那么,TMOD特殊功能寄存器設(shè)置如下:

則:(TMOD)=61H5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(五)綜合應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用56第五十六頁,共65頁。

(2)計(jì)數(shù)初始值計(jì)算單片機(jī)系統(tǒng)的晶振頻率為6MHz,需要定時(shí)100ms,定時(shí)/計(jì)數(shù)器T0的計(jì)數(shù)初始值X1為:

轉(zhuǎn)換為二進(jìn)制數(shù)X1=3CB0H。對(duì)于定時(shí)/計(jì)數(shù)器T1來說,每計(jì)數(shù)5次需要計(jì)數(shù)器溢出,采用方式2時(shí),計(jì)數(shù)初始值為:,轉(zhuǎn)換為二進(jìn)制數(shù)。

5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(五)綜合應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用57第五十七頁,共65頁。

方法二:采用定時(shí)/計(jì)數(shù)器T0以方式1定時(shí)100ms,定時(shí)/計(jì)數(shù)器T0溢出10次后,即可實(shí)現(xiàn)1秒的定時(shí)。這種方法的優(yōu)點(diǎn)在于節(jié)省了MCS-51單片機(jī)寶貴的定時(shí)/計(jì)數(shù)器資源,用存儲(chǔ)單元作為計(jì)數(shù)器。當(dāng)實(shí)現(xiàn)較長(zhǎng)時(shí)間的延時(shí)時(shí),延時(shí)時(shí)間為定時(shí)/計(jì)數(shù)器溢出次數(shù)乘以它的定時(shí)時(shí)間。

5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例

(五)綜合應(yīng)用5.4.2定時(shí)器/計(jì)數(shù)器應(yīng)用58第五

溫馨提示

  • 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)論