單片機(jī)原理教案第6章.ppt_第1頁(yè)
單片機(jī)原理教案第6章.ppt_第2頁(yè)
單片機(jī)原理教案第6章.ppt_第3頁(yè)
單片機(jī)原理教案第6章.ppt_第4頁(yè)
單片機(jī)原理教案第6章.ppt_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、6.1 定時(shí)和計(jì)數(shù)的基本概念 6.2 MCS-51單片機(jī)定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)和工作原理 6.3 定時(shí)/計(jì)數(shù)器工作模式及其應(yīng)用 6.4 綜合應(yīng)用舉例,第6章 定時(shí)器與計(jì)數(shù)器,從一個(gè)生活中的例子來理解計(jì)數(shù)的基本概念:假設(shè)你希望知道一個(gè)碗里可以裝多少豆子?你可以采用什么辦法呢?你肯定會(huì)說把碗里的豆子數(shù)一下就行了,不錯(cuò),正是如此。從這個(gè)常見的計(jì)數(shù)例子可以看出,如果想計(jì)數(shù),必須必備三要素:,計(jì)數(shù)單元:豆子 人:一個(gè)能認(rèn)識(shí)豆子并能計(jì)數(shù)的人 計(jì)數(shù)容量:一個(gè)碗,同時(shí)碗裝滿了,人可以看到碗滿了,停止計(jì)數(shù),計(jì)數(shù)的基本概念,但是生活中常見的事情如何用單片機(jī)去實(shí)現(xiàn)呢?單片機(jī)是無法認(rèn)識(shí)豆子等我們?nèi)丝梢酝ㄟ^眼睛認(rèn)識(shí)的事物。

2、單片機(jī)可以識(shí)別的只能是電脈沖信號(hào),如果想利用單片機(jī)完成計(jì)數(shù)功能,則與生活中的計(jì)數(shù)相對(duì)應(yīng),需要以下三要素: 計(jì)數(shù)脈沖:?jiǎn)纹瑱C(jī)的某個(gè)IO引腳可以識(shí)別脈沖信號(hào) 單片機(jī)CPU:?jiǎn)纹瑱C(jī)CPU內(nèi)部集成這樣的硬件功能,即IO引腳每來一個(gè)脈沖,寄存器的值增加1,計(jì)數(shù)一次。 計(jì)數(shù)容量:計(jì)數(shù)容量和寄存器的位數(shù)有關(guān),如果利用8位寄存器則只能計(jì)數(shù)到255,超過255則必須告訴CPU已經(jīng)溢出,停止計(jì)數(shù),還是從生活中的定時(shí)例子來說明定時(shí)的基本概念。一個(gè)鬧鐘,將它定時(shí)在1個(gè)小時(shí)后鬧響,換言之,也可以說是秒針走了3600圈,如果需要你設(shè)計(jì)一個(gè)這樣的定時(shí)裝置,你該怎么辦呢?同時(shí)想定時(shí),必須必備三要素:,定時(shí)的基本概念, 定時(shí)基

3、準(zhǔn):最小的定時(shí)單元,對(duì)于本例而言,需要一個(gè)精確的秒針,當(dāng)秒針走一圈,則表示一秒的時(shí)間。 計(jì)數(shù)功能:需要一個(gè)裝置能計(jì)數(shù),秒針每走一圈則計(jì)數(shù)功能加1。 計(jì)數(shù)容量:當(dāng)計(jì)數(shù)達(dá)到3600圈以后,則報(bào)警表示定時(shí)時(shí)間已到。,同樣對(duì)于單片機(jī)而言如何實(shí)現(xiàn)現(xiàn)實(shí)生活中需要的定時(shí)功能呢?如果想利用單片機(jī)完成定時(shí)功能,則與生活中的定時(shí)相對(duì)應(yīng),需要以下三要素: 定時(shí)基準(zhǔn):?jiǎn)纹瑱C(jī)中的晶振提供一個(gè)精確的定時(shí)基準(zhǔn)。由單片機(jī)的晶振經(jīng)過12分頻后獲得的一個(gè)脈沖源,即采用機(jī)器周期作為定時(shí)基準(zhǔn),如果晶振為12M,則定時(shí)基準(zhǔn)為1us。 計(jì)數(shù)功能:與計(jì)數(shù)功能相同,單片機(jī)CPU內(nèi)部集成這樣的硬件功能,即每一個(gè)機(jī)器周期,寄存器的值增加1,計(jì)數(shù)

4、一次。 計(jì)數(shù)容量:當(dāng)達(dá)到用戶定義的時(shí)間后,則申請(qǐng)中斷,在中斷程序中實(shí)現(xiàn)報(bào)警功能。,6.2.1 定時(shí)/計(jì)數(shù)器概述,圖6-1 定時(shí)/計(jì)數(shù)器結(jié)構(gòu),圖6-2 定時(shí)/計(jì)數(shù)器控制邏輯,6.2.2 單片機(jī)定時(shí)/計(jì)數(shù)器的工作方式,定時(shí)器工作方式 設(shè)置為定時(shí)器工作方式時(shí),基準(zhǔn)時(shí)間由單片機(jī)的晶振經(jīng)過12分頻后獲得的一個(gè)脈沖信號(hào),即機(jī)器周期信號(hào)。機(jī)器周期信號(hào)輸入到加1計(jì)數(shù)器,加1計(jì)數(shù)器實(shí)現(xiàn)每個(gè)機(jī)器周期使T0或T1的計(jì)數(shù)寄存器數(shù)值增加1,直至計(jì)滿溢出,根據(jù)計(jì)數(shù)機(jī)器周期的次數(shù)可以得到定時(shí)時(shí)間。 計(jì)數(shù)器工作方式 設(shè)置為計(jì)數(shù)方式時(shí),外部脈沖信號(hào)輸入到引腳T0(P3.4)和T1(P3.5),CPU對(duì)外部脈沖信號(hào)進(jìn)行采樣計(jì)數(shù),

5、加1計(jì)數(shù)器由外部輸入脈沖信號(hào)的下降沿觸發(fā)計(jì)數(shù)。,計(jì)數(shù)方式具體工作過程,計(jì)數(shù)器在每個(gè)機(jī)器周期的S5P2期間采樣T0和T1引腳的輸入電平,若前一個(gè)機(jī)器周期采樣值為1,下一個(gè)機(jī)器周期采樣值為0,則計(jì)數(shù)器加1。所以檢測(cè)一個(gè)從1到0的跳變需要兩個(gè)機(jī)器周期,即外部輸入信號(hào)的周期應(yīng)大于或等于兩個(gè)機(jī)器周期,也就是說外部輸入信號(hào)的頻率必須小于晶振頻率的1/24,若頻率超過晶振頻率的1/24,則無法準(zhǔn)確計(jì)數(shù)脈沖個(gè)數(shù)。雖然對(duì)外部輸入信號(hào)的占空比無特殊要求,但是為了確保輸入信號(hào)電平在變化之前至少被采樣一次,要求電平保持時(shí)間至少是一個(gè)完整的機(jī)器周期。對(duì)輸入脈沖信號(hào)的基本要求如圖6-3所示。,圖6-3 對(duì)輸入脈沖寬度的要

6、求,TMOD用于控制T0和T1的工作模式。 TMOD不能位尋址,只能用字節(jié)設(shè)置定時(shí)器的工作模式,低半字節(jié)設(shè)置T0,高半字節(jié)設(shè)置T1。 8051系統(tǒng)復(fù)位時(shí),TMOD的所有位被清0。 TMOD各位的定義格式如圖所示,6.2.3 工作模式寄存器 TMOD,M1和M0操作模式控制位。兩位可形成四種編碼,對(duì)應(yīng)于四種模式。,計(jì)數(shù)器/定時(shí)器方式選擇位,設(shè)置為定時(shí)方式。定時(shí)器計(jì)數(shù)8051片內(nèi)脈沖,即對(duì)機(jī)器周期計(jì)數(shù),設(shè)置為計(jì)數(shù)方式。計(jì)數(shù)器的輸入來自T0(P3.4)或T1(P3.5)端的外部脈沖,GATE門控位。 GATE=0,只要用軟件使TR0(或TR1)置1就可以啟動(dòng)定時(shí)器,而不管INT0(或INT1)的電平

7、是高還是低。 GATE=1,只有INT0(或INT1)引腳為高電平且由軟件使TR0(或TR1)置1時(shí),才能啟動(dòng)定時(shí)器工作。,TCON除可字節(jié)尋址外,各位還可位尋址。 8051系統(tǒng)復(fù)位時(shí),TCON的所有位被清0。 TCON各位的定義格式如圖所示。,6.2.4 啟動(dòng)控制寄存器TCON,6.3 定時(shí)/計(jì)數(shù)器工作模式及其應(yīng)用,6.3.1 模式 0 及其應(yīng)用 6.3.2 模式 1 及其應(yīng)用 6.3.3 模式 2 及其應(yīng)用 6.3.4 模式 3 及其應(yīng)用,6.3.1 工作模式0及其應(yīng)用,1 邏輯結(jié)構(gòu) 2 控制寄存器TMOD和TCON的設(shè)置 3 定時(shí)/計(jì)數(shù)器初值的設(shè)置 4 模式0的應(yīng)用,1 邏輯結(jié)構(gòu),圖6-

8、7 模式0時(shí)的邏輯結(jié)構(gòu)圖,例6.4 用T0定時(shí),選擇工作模式0,由單片機(jī)P1.0輸出占空比為50、周期為2ms的方波,晶振頻率為12M。,源程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP INT_TIME0 ORG 0030H MAIN: MOV TMOD, #00H ;設(shè)置工作方式 MOV TH0, #0E0H ;設(shè)初始值 MOV TL0, #18H SETB TR0 ;啟動(dòng)定時(shí)器 SETB EA ;開放定時(shí)器中斷 SETB ET0 SETB P1.0 LJMP $ INT_TIME0: MOV TH0, #0E0H ;對(duì)定時(shí)器重新賦值 MOV TL0, #

9、18H CPL P1.0 RETI,4 工作模式0應(yīng)用,6.3.2 工作模式1及其應(yīng)用,1 邏輯結(jié)構(gòu) 2 控制寄存器TMOD和TCON的設(shè)置 3 定時(shí)/計(jì)數(shù)器初值的設(shè)置 4 模式1的應(yīng)用,1 模式 1 的邏輯電路結(jié)構(gòu),圖6-8 模式1邏輯結(jié)構(gòu)圖,4 模式 1 的應(yīng)用舉例,例6.7 用T1定時(shí),選擇工作模式1,由單片機(jī)P1.0輸出50Hz的方波,晶振頻率12M。,源程序如下: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV TMOD,#10H ;設(shè)置T1為模式1 SETB TR1 ;啟動(dòng)定時(shí) LOOP: MOV TL1,#0D8H ;送初值 MOV TH1,#0F

10、0H JNB TF1,$ ;查詢定時(shí)時(shí)間到否 CLR TF1 ;產(chǎn)生溢出,清標(biāo)志位 CPL P1.1 ;取反 SJMP LOOP ;重復(fù)循環(huán),6.3.3 工作模式2及其應(yīng)用,1 邏輯結(jié)構(gòu) 2 控制寄存器TMOD和TCON的設(shè)置 3 定時(shí)/計(jì)數(shù)器初值的設(shè)置 4 模式2的應(yīng)用,1 模式 2 的邏輯電路結(jié)構(gòu),圖6-9 模式2邏輯結(jié)構(gòu),4 模式 2 的應(yīng)用舉例,例6-10:利用定時(shí)器T1的模式2對(duì)外部信號(hào)計(jì)數(shù)。要求每計(jì)滿100次,將 P1.0引腳取反。 源程序:ORG 0000H LJMP MAIN ORG 001BH LJMP INT_TIME1 ORG 0030H MAIN: MOV TMOD,#

11、60H ;設(shè)置T1為模式2,外部計(jì)數(shù)方式 MOV TL1,#9CH ;T1計(jì)數(shù)器初值 MOV TH1,#9CH SETB EA ;開放定時(shí)器中斷 SETB ET1 SETB TR1 ;啟動(dòng)T1計(jì)數(shù) HERE: SJMP HERE ;等待中斷 INT_TIME1: CPL P1.0 RETI,6.4 綜合應(yīng)用舉例,由于MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器是可編程的,因此在使用之前需要進(jìn)行初始化。在編程時(shí)主要注意兩點(diǎn):第一要能正確寫入控制字;第二能進(jìn)行計(jì)數(shù)初值的計(jì)算。一般情況下,包括以下幾個(gè)步驟: (1)確定工作方式,即對(duì)TMOD寄存器進(jìn)行賦值。 (2)計(jì)算計(jì)數(shù)初值,并寫入寄存器TH0、TL0或TH1

12、、TL1中。 (3)根據(jù)是采用中斷還是查詢方式?jīng)Q定是否置位ETx允許T/C中斷。 (4)根據(jù)是采用中斷還是查詢方式?jīng)Q定是否置位EA使CPU開中斷。 (5)置位TRx啟動(dòng)計(jì)數(shù)。,例6-11 試選擇定時(shí)/計(jì)數(shù)器T0測(cè)試INT0(P3.2)引腳上輸入的被測(cè)脈沖寬度,已經(jīng)晶振頻率12M,分析:定時(shí)器可以用于測(cè)量脈沖寬度程序設(shè)計(jì),測(cè)量外部脈沖寬度利用TMOD的門控位控制很方便,當(dāng)設(shè)置GATE1時(shí),僅設(shè)置TR0(TR1)等于“1”,定時(shí)器不能被啟動(dòng),還必須等外部脈沖高電平時(shí),定時(shí)器才開始工作。 測(cè)試過程如圖6-11所示,圖6-11 被測(cè)脈沖波形,例6-11 源程序如下: ORG 0000H LJMP MA

13、IN ORG 000BH LJMP INT_TIME0 ORG 0030H MAIN:MOV R2,#00H ;如果被測(cè)脈沖寬度太長(zhǎng),則累計(jì)溢出次數(shù) MOV TMOD,#09H ;設(shè)置T0為模式1,門控方式 MOV TL0,#00H ;設(shè)置初值 MOV TH0,#00H SETB EA ;開放T0中斷 SETB ET0 SETB TR0 ;INT0引腳高電平到來才會(huì)啟動(dòng)T0 JNB P3.2, $ ;等待高電平到來 JB P3.2,$ ;高電平到來,啟動(dòng)T0開始測(cè)量 CLR TR0 MOV R0,TH0 ;P3.2低電平,測(cè)量結(jié)束,保存結(jié)果 MOV R1,TL0 LJMP $ INT_TIME

14、0: INC R2 MOV TL0,#00H MOV TH0,#00H RETI,例6-12: 電路如圖6-12所示,P1.0引腳外接發(fā)光二極管D0,要求D0以1s的間隔閃爍。已經(jīng)晶振頻率12M,圖6-12 例6-12電路原理圖,例6-12源程序代碼: ORG 0000H LJMP MAIN ORG 000BH LJMP INT_TIME0 ORG 0030H MAIN: MOV P1,#0FFH ;關(guān)所有燈 MOV 30H,#00H ;軟件計(jì)數(shù)器預(yù)清0 MOV TMOD,#01H ;定時(shí)/計(jì)數(shù)器0工作于方式1 MOV TH0,#3CH MOV TL0,#0B0H;即數(shù)15536 SETB E

15、A ;開總中斷允許 SETB ET0 ;開定時(shí)/計(jì)數(shù)器0允許 SETBTR0 ;定時(shí)/計(jì)數(shù)器0開始運(yùn)行 LOOP: AJMP LOOP ;真正工作時(shí),這里可寫任意程序 INT_TIME0: INC 30H;定時(shí)器0的中斷處理程序 MOVA,30H CJNE A, #20,T_END ;30H單元中的值到了20了嗎? CPL P1.0 ;到了,取反P10 MOV 30H, #00H ;清軟件計(jì)數(shù)器 T_END:MOVTH0,# 3CH MOV TL0,# 0B0H ;重置定時(shí)常數(shù) RETI,例6-13 設(shè)一交通路口設(shè)紅、黃、綠三盞交通燈,當(dāng)紅燈亮2s后,黃燈亮400ms,綠燈亮1s,試用單片機(jī)模

16、擬交通燈控制,分析:?jiǎn)纹瑱C(jī)采用發(fā)光二極管模擬交通燈控制,即利用P1.0P 1.2分別接紅、黃、綠三個(gè)發(fā)光二極管。但是這里用到三個(gè)定時(shí)時(shí)間(2s、400ms 、1s),難道每個(gè)定時(shí)時(shí)間都編寫不同的定時(shí)程序,那么如果需要更多的定時(shí)時(shí)間,怎么辦?這里還是采用軟件定時(shí)器的方式,即找到這幾個(gè)定時(shí)的時(shí)間的公約數(shù),利用軟件計(jì)數(shù)器就可以完成不同的延時(shí)。,例6-13源程序如下: NumberOf50ms EQU 30H ;定義軟件定時(shí)器的計(jì)數(shù)次數(shù) ORG 0000H LJMP MAIN ORG 000Bh LJMP INT_TIME0 ORG 0030H MAIN: CLR P1.0 紅燈亮 MOV NumberOf50ms,#28H 延時(shí)2s LCALL DELAY SETB P1.0 紅燈滅 CLR P1.1 黃燈亮 MOV NumberOf50ms,#08H 延時(shí)400ms LCALL DELAY SETB P1.1 黃燈滅 CLR P1.2 綠燈亮 MOV NumberOf50ms,#14H 延時(shí)1s LCA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論