定時計數(shù)器與串行通訊口_第1頁
定時計數(shù)器與串行通訊口_第2頁
定時計數(shù)器與串行通訊口_第3頁
定時計數(shù)器與串行通訊口_第4頁
定時計數(shù)器與串行通訊口_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

定時計數(shù)器與串行通訊口第1頁,共18頁,2023年,2月20日,星期一1定時/計數(shù)器電路K1K2可預(yù)置初值計數(shù)器中斷請求功能選擇啟動控制內(nèi)部時鐘脈沖(定時)外部輸入脈沖(計數(shù))溢出信號計數(shù)脈沖計數(shù)初值1.1定時/計數(shù)器的工作原理

定時/計數(shù)器中的核心部件為可預(yù)置初值計數(shù)器。預(yù)置初值后開始計數(shù),直至計數(shù)值歸0或產(chǎn)生溢出,可申請中斷。計數(shù)器有加1計數(shù)或減1計數(shù)兩種形式。MCS51單片機的計數(shù)器采用加1計數(shù)。要注意定時器的容量即位數(shù)第2頁,共18頁,2023年,2月20日,星期一例:設(shè)TIMER為8位加1計數(shù)器。按要求選擇功能和初值。1.要求檢測到100個脈沖,發(fā)中斷請求,通知CPU。

選計數(shù)功能,計數(shù)初值為156。2.要求定時每隔100s時間,發(fā)一次中斷請求。設(shè)內(nèi)部時鐘周期1s

選定時功能,計數(shù)初值為156。1.2定時/計數(shù)器的應(yīng)用1.計數(shù)功能:生產(chǎn)線上產(chǎn)品計數(shù)。每個產(chǎn)品通過得到一個脈沖信號,計數(shù)器記錄脈沖個數(shù),當(dāng)計數(shù)值與設(shè)定值相等,啟動包裝機器。檢測轉(zhuǎn)速。電機轉(zhuǎn)動一圈發(fā)出一個脈沖,計數(shù)器記錄一秒時間內(nèi)脈沖個數(shù),顯示轉(zhuǎn)速。2.定時功能:用于實時控制,定時采樣、定時啟動、計算兩事件的間隔時間等。第3頁,共18頁,2023年,2月20日,星期一1.38051定時計數(shù)器8051有2個可獨立控制的16位定時器計數(shù)器:T0、T1。分別由8位寄存器TH0、TL0和TH1、TL1組成。8051定時計數(shù)器為加1計數(shù)器,加到溢出時變?yōu)?,同時觸發(fā)中斷。定時計數(shù)器有4種工作方式,編程選擇一種。定時計數(shù)器驅(qū)動時鐘有兩種來源:外部時鐘和晶振的12分頻。特殊功能寄存器TCON,TMOD用于控制定時計數(shù)器。頻率不能高于晶振頻率的1/24,且高低電平的寬度必須大于一個機器周期第4頁,共18頁,2023年,2月20日,星期一1.48051定時計數(shù)器編程①功能選擇(定時/計數(shù))

②工作方式的選擇即計數(shù)位數(shù)的選擇(8/13/16位)③啟動方式選擇(內(nèi)部軟件啟動/外部硬件啟動)④啟動控制(啟動/停止)⑤設(shè)置計數(shù)初值(自動重裝/軟件重裝)⑥根據(jù)需要給中斷允許寄存器IE送中斷控制字,以開放或禁止相應(yīng)的中斷,并設(shè)定中斷優(yōu)先級第5頁,共18頁,2023年,2月20日,星期一1.5MCS-51定時計數(shù)器控制寄存器定時器模式寄存器1.TMOD定時器方式寄存器(89H)1)功能選擇位C/T:=0,定時功能,計數(shù)內(nèi)部機器周期脈沖;=1,計數(shù)功能,計數(shù)引腳T0(T1)輸入的負脈沖。2)方式選擇位M1、M0:4種工作方式:13/16/8位3)門控方式選擇位GATE:

=0,非門控方式(內(nèi)部啟動): TRx=1,啟動定時器工作; TRx=0,停止定時器工作。=1,門控方式(外部啟動):TRx=1且引腳INTx=1才啟動。T1T0第6頁,共18頁,2023年,2月20日,星期一2.TCON定時器控制寄存器1)啟動控制位TR0、TR1=0,停止定時器工作=1,啟動定時器工作例:啟動T0: SETB TR02)溢出中斷標志位TF0、TF1定時器溢出使TFx=1,引起中斷請求,CPU響應(yīng)Tx中斷后,自動清0TFx。也禁止中斷,用軟件檢測TFx,但必須軟件清0。

WAIT:JBCTF0,NEXT;檢測T0是否溢出

SJMP WAIT ;未溢出,繼續(xù)檢測

NEXT:… ;溢出,TF0清0,處理溢出第7頁,共18頁,2023年,2月20日,星期一1.6定時器工作方式方式0(13位計數(shù)方式)13位定時/計數(shù)器。THx8位和TLx低5位組成13位加1計數(shù)器,計數(shù)值范圍:1~8192(213)計數(shù)外部脈沖個數(shù):1~8192(213)定時時間(設(shè)晶振為12MHz):1s~8.19ms當(dāng)為定時工作方式時,定時時間的計算公式:(213-計數(shù)初值)×晶振周期×12(213-計數(shù)初值)×機器周期第8頁,共18頁,2023年,2月20日,星期一方式1(16位計數(shù)方式)16位定時/計數(shù)器。THx8位和TLx8位組成16位加1計數(shù)器,計數(shù)值范圍:1~65536(216)計數(shù)外部脈沖個數(shù):1~65536(216)定時時間(設(shè)晶振為12MHz):1s~65536×T=65.54ms(8位)D15D0當(dāng)為定時工作方式時,定時時間的計算公式:(216-計數(shù)初值)×晶振周期×12(216-計數(shù)初值)×機器周期第9頁,共18頁,2023年,2月20日,星期一方式2(自動重裝入8位計數(shù)方式)自動恢復(fù)初值8位定時/計數(shù)器。TLx為8位加1計數(shù)器,THx為8位初值暫存器。用于需要重復(fù)定時和計數(shù)的場合。最大計數(shù)值:256(28)最大定時時間(設(shè)晶振為12MHz):256s(8位)Timer1的溢出時鐘還可用作串口時鐘定時方式時,定時時間的計算公式:(28-計數(shù)初值)×晶振周期×12第10頁,共18頁,2023年,2月20日,星期一方式3(8位計數(shù)器)T0分成2個8位定時器:TL0定時/計數(shù)器和TH0定時器TL0占用T0控制位:C/T,TR0,GATE,TF0;TH0占用T1控制位:TR1,TF1;此時Timer1始終打開,且不能用中斷。T1不能使用方式3工作TH0的時鐘只能來源于晶振的12分頻第11頁,共18頁,2023年,2月20日,星期一1.7MCS-51定時器的應(yīng)用定時器初始化編程:使用定時器工作之前,先編程相應(yīng)的控制寄存器,確定好定時器的工作方式。初始化編程格式:MOVTMOD,#方式字;選擇方式MOVTHx,#XH

;裝入Tx時間常數(shù)MOVTLx,#XL(SETBEA ) ;開Tx中斷(SETBETx)SETBTRx ;啟動Tx定時器1.按實際需要選擇定時/計數(shù)功能2.按時間或計數(shù)長度選擇方式3.計算時間常數(shù)第12頁,共18頁,2023年,2月20日,星期一定時器的溢出處理編程舉例:1)查詢方式:先查詢定時器溢出標志,再進行溢出處理。

… ;定時器初始化

WAIT:JBC TFx,PT;檢測溢出標志

SJMP WAIT

PT: MOV THx,#XH

;重裝時間常數(shù)

MOV TLx,#XL

… ;溢出處理

SJMP WAIT2)中斷方式:初始化后執(zhí)行其他任務(wù),中斷服務(wù)程序處理溢出。

ORG 0000H LJMP MAIN ORG 000BH(001BH);Tx中斷入口

LJMP PTS

MAIN: … ;初始化后執(zhí)行其他程序

PTS: … ;溢出中斷服務(wù)程序

MOV THx,#XH ;重裝時間常數(shù)

MOV TLx,#XL RETI第13頁,共18頁,2023年,2月20日,星期一例:由P1.0輸出方波信號,周期為2ms,設(shè)fosc=12MHz。2ms解:每隔1ms改變一次P1.0的輸出狀態(tài)。用T0非門控方式1定時。計算時間常數(shù):X=216-t/T=216-1000/1=FC18H(1)查詢方式:

START: MOV TMOD,#01H MOV TL0,#18H MOV TH0,#0FCH SETB TR0 LOOP: JBC TF0,PTF0 SJMP LOOP PTF0: CPL P1.0 MOV TL0,#18H MOV TH0,#0FCH SJMP LOOP第14頁,共18頁,2023年,2月20日,星期一(2)中斷方式程序

ORG 0000H AJMP MAIN ORG 000BH AJMP PT0INT ORG 0100HMAIN: MOV SP,#60H MOV TMOD,#01H MOV TL0,#18H MOV TH0,#0FCH SETB EA SETB ET0 SETB TR0HERE: SJMP HEREPT0INT: CPL P1.0 MOV TL0,#18H MOV TH0,#0FCH RETI第15頁,共18頁,2023年,2月20日,星期一例:P1.7驅(qū)動LED亮1秒滅1秒地閃爍,設(shè)時鐘頻率為6MHz。思路:長定時方法:增加一個軟件計數(shù)器或一個硬件計數(shù)器。若采用硬件方式,可用T0定時每隔200mS溢出,再用T1計數(shù)T0的定時跳變信號P1.0的負跳變次數(shù),計滿5個跳變?yōu)?秒。START: MOVTMOD,#61H MOVTL1,#0FBH MOVTH1,#0FBH CLRP1.0 SETBTR1RELOAD: MOVTL0,#0B0H MOVTH0,#3CH SETB TR0WAIT: JBC TF0,TOV SJMP WAITTOV: CPL P1.0 JNB TF1,RELOAD CLRTF1 CPLP1.7 SJMPRELOAD第16頁,共18頁,2023年,2月20日,星期一例:利用GATE門控方式測量正脈沖寬度。解:從INT1(P3.3)引腳輸入被檢測信號,記錄正脈沖的時間包含的機器脈沖個數(shù)。1)設(shè)晶振12MHz,正脈寬小于65.5ms等待查詢INT1,正脈沖過后,讀出TH1TL1。START: MOVTMOD,#90H MOVTL1,#0H MOVTH1,#0HWAIT1: JB P3.3,WAIT1 SETBTR1WAIT2:JNB P3.3,WAIT2 NOPWAIT3:JB P3.3,WAIT3 CLR TR1 MOV R0,TL1 MOV R1,TH1 …TR1=1 T1啟動TR1=0 T1停止INT1正脈沖寬度=(R1×28+R0)×12TOSC第17頁,共18頁,2023年,2月20日,星期一2)設(shè)晶振12MHz,正脈沖寬度大于65.5ms,可用中斷記錄TH1、TL1溢出中斷次數(shù)。主程序:START:MOVTMOD,#90H;初始化AGAIN:

MOVTL1,#0H MOVTH1,#0H MOVR2,#0;R2清零WAIT1:JBP3.3,WAIT1;等待上一正脈沖結(jié)束 SETBTR1 ;開定時器1

SETBET1

;開T1中斷

SETBEA

;開總中斷WAIT2:JNBP3.3,WAIT2

;等待正脈沖到來WAIT3:JBP3.3,WAIT3

;等待正脈沖結(jié)束 CLR TR1 ;關(guān)閉T1

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論