《單片機(jī)原理及工程應(yīng)用》課件-第4章 定時器應(yīng)用舉例(第3次課)應(yīng)用舉例_第1頁
《單片機(jī)原理及工程應(yīng)用》課件-第4章 定時器應(yīng)用舉例(第3次課)應(yīng)用舉例_第2頁
《單片機(jī)原理及工程應(yīng)用》課件-第4章 定時器應(yīng)用舉例(第3次課)應(yīng)用舉例_第3頁
《單片機(jī)原理及工程應(yīng)用》課件-第4章 定時器應(yīng)用舉例(第3次課)應(yīng)用舉例_第4頁
《單片機(jī)原理及工程應(yīng)用》課件-第4章 定時器應(yīng)用舉例(第3次課)應(yīng)用舉例_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

4.2.4定時器/計數(shù)器的應(yīng)用

由于定時器/計數(shù)器的功能是由軟件編程實(shí)現(xiàn)的,所以,一般在使用定時器/計數(shù)器前都要對其進(jìn)行初始化。所謂初始化實(shí)際上就是確定相關(guān)寄存器的值。初始化步驟如下:1.確定工作方式——對TMOD賦值。根據(jù)任務(wù)性質(zhì)明確工作方式及類型,從而確定TMOD寄存器的值。如:要求定時器/計數(shù)器T0完成16位定時功能,TMOD的值就應(yīng)為00000001B,用指令MOVTMOD,#01H即可完成工作方式的設(shè)定。2.預(yù)置定時器/計數(shù)器的計數(shù)初值——寫入計數(shù)初值

X=2n-N=2n-t/T直接將計數(shù)初值寫入TH0、TL0或TH1、TL1。3.根據(jù)需要開放定時器/計數(shù)器中斷——直接對IE寄存器賦值。(中斷入口設(shè)置、中斷服務(wù)程序設(shè)計、中斷優(yōu)先級IP)4.啟動定時/計數(shù)器工作——將TR0或TR1置“1”。例4.2.1方式0的應(yīng)用。設(shè)系統(tǒng)時鐘頻率為12MHz,利用定時器/計數(shù)器T0,在P1.0引腳輸出周期為2ms的方波。解:2ms的方波可由間隔1ms的高低電平相間而成,因而只要每1ms對P1.0取反一次即可得到這個方波。選用定時器/計數(shù)器T0工作為定時方式來實(shí)現(xiàn)1ms的定時。TMOD初始化:TMOD=00000000B=00H機(jī)器周期為1μs,則計數(shù)初值X為:X=2n–t/T=213-1ms/1μs=8192-1000=7192=1110000011000B13位的計數(shù)初值的高8位寫入TH0,低5位二進(jìn)制數(shù)前要加3個0,湊成8位二進(jìn)制數(shù)后寫入TL0。向TH0寫入的數(shù)據(jù)是:11100000B(E0H),

向TL0寫入的數(shù)據(jù)是:00011000B(18H)。

IE初始化:開放中斷,EA=1,允許定時器T0中斷,ET0=1TCON初始化:TR0=1,啟動T0請各位完成程序設(shè)計參考程序如下: ORG0000H LJMPSTART ;復(fù)位入口

ORG000BH LJMPT0SUB ;T0中斷入口

ORG0040HSTART: MOVSP,#60H ;初始化程序

MOVTMOD,#00H ;T0為方式0定時 MOVTH0,#0E0H ;T0賦初值

MOVTL0,#18H MOVIE,#82H

SETBTR0 ;啟動T0 SJMP$ ;等待中斷T0SUB:MOVTH0,#0E0H ;T0中斷服務(wù)子程序

MOVTL0,#18H CPLP1.0 ;輸出周期為2ms的方波

RETI ;中斷返回 END例:設(shè)系統(tǒng)時鐘頻率為12MHz,利用定時器/計數(shù)器T0在引腳P1.0和P1.1分別輸出周期為2ms和6ms的方波。解:在上例中,T0每1ms中斷一次,對P1.0取反一次得周期為2ms的方波。只要對T0中斷服務(wù)程序略加修改,每計數(shù)(中斷)3次,對P1.1取反一次即可得到周期為6ms的方波。請各位完成程序設(shè)計參考程序如下: ORG0000H LJMPSTART

ORG000BH LJMPT0SUB

ORG0040HSTART: MOVSP,#60H

MOVTMOD,#00H MOVTH0,#0E0H

MOVTL0,#18H MOVIE,#82H

MOVR7,#03H

SETBTR0 SJMP$ 參考中斷服務(wù)程序:T0SUB: MOVTH0,#0E0H

MOVTL0,#18H CPLP1.0

DJNZR7,RETURN CPLP1.1

MOVR7,#03H

RETURN: RETIEND 10例:方式1的應(yīng)用。硬件電路如圖所示,利用T0做定時器,請編程形成循環(huán)燈控制器。fosc=12MHzTMOD初始化:TMOD=00000001B=01HX=216-50ms/1μs=65536-50000=15536=3CB0H即向TH0寫入計數(shù)初值3CH,

向TL0寫入計數(shù)初值B0H。

IE初始化:開放中斷EA=1,允許定時器T0中斷ET0=1TCON初始化:TR0=1,啟動T0課堂練習(xí)請您編程參考程序清單如下: ORG0000H LJMPSTART ;復(fù)位入口

ORG000BH LJMPT0SUB ;T0中斷入口

ORG0040HSTART:MOVSP,#60H MOVA,#0FEH MOVTMOD,#01H ;T0為方式1定時 MOVTH0,#3CH ;T0賦初值

MOVTL0,#0B0H SETBET0 ;開T0中斷

SETBEA ;開總允許中斷

SETBTR0 ;啟動T0 SJMP$ ;等待中斷T0SUB: MOVTH0,#3CH MOVTL0,#0B0H MOVP1,A RLA

RETI ;中斷返回END例4.2.4利用定時器/計數(shù)器對生產(chǎn)過程進(jìn)行控制。如圖,當(dāng)生產(chǎn)線上無工件傳送時,在光線的照射下,光敏管導(dǎo)通,T1為低電平;當(dāng)工件通過光源時工件會遮擋光線,光敏管截止,T1為高電平。每傳送一個工件,T1端會出現(xiàn)一個正脈沖。利用定時器/計數(shù)器1對生產(chǎn)過程進(jìn)行控制,每生產(chǎn)出10000個工件,使P1.7輸出一個正脈沖,用于啟動下一個工序。解:設(shè)置定時器/計數(shù)器1工作在方式1,對工件進(jìn)行計數(shù)。

TMOD=01010000B=50H

計數(shù)次數(shù)N=10000,則計數(shù)初值X為:

X=216-N=65536-10000

=55536=D8F0H

IE初始化:開放中斷EA=1,允許定時器T1中斷ET1=1

TCON初始化:TR1=1,啟動T1 請各位編寫相關(guān)程序 ORG0000H LJMPSTART ;復(fù)位入口

ORG001BH LJMPT1SUB ;T1中斷入口

ORG0040HSTART: MOVSP,#60H CLRP1.7 ;初始化P1.7=0 MOVTMOD,#50H ;T1為方式1計數(shù) MOVTH1,#0D8H ;T0賦初值

MOVTL1,#0F0H SETBET1 ;開T1中斷

SETBEA ;開總允許中斷

SETBTR1 ;啟動T1 SJMP$ ;等待中斷T1SUB: MOVT

溫馨提示

  • 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

提交評論