CPU外圍功能單元與IO接口技術實用_第1頁
CPU外圍功能單元與IO接口技術實用_第2頁
CPU外圍功能單元與IO接口技術實用_第3頁
CPU外圍功能單元與IO接口技術實用_第4頁
CPU外圍功能單元與IO接口技術實用_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

會計學1CPU外圍功能單元與IO接口技術實用第九章 CPU外圍功能單元與IO接口技術

9.2

80C51單片機定時/計數(shù)器第1頁/共34頁2023/1/173

在測控技術中,往往需要定時檢測某個參數(shù),或按一定的時間間隔來進行某種控制。還有一些控制是按對某種事件的計數(shù)結果進行的。因此幾乎所有單片機內部都設置了定時/計數(shù)器。定時器/計數(shù)器工作方式靈活、編程簡單,對減輕CPU的負擔和簡化外圍電路都有很大好處。

9.3.1概述第2頁/共34頁2023/1/174

80C51等有兩個16位定時器/計數(shù)器T0,T1;80C52等單片機有三個16位定時器/計數(shù)器T0、T1和T2。部分產(chǎn)品還有用作看門狗的8位定時器T3。它們都可以用作定時器或外部事件計數(shù)器。第3頁/共34頁2023/1/175一、工作原理定時器/計數(shù)器實際上是加1計數(shù)器當它對外部事件進行計數(shù)時,由于頻率不固定,此時稱之為計數(shù)器;當它對內部固定頻率的機器周期進行計數(shù)時稱之為定時器。

+1計數(shù)器溢出中斷脈沖控制開關第4頁/共34頁2023/1/176計數(shù)原理從外部每輸入一個脈沖,計數(shù)器加1,當加到計數(shù)器各位都為1時,再輸入一個脈沖,計數(shù)器各位全變?yōu)?,溢出,中斷標志置1(SFR中TCON的TF0、TF1),從而向CPU申請中斷。8位-256;13位-8192;16位-65536第5頁/共34頁2023/1/177

對外部脈沖計數(shù)時,當脈沖有一個高電平到低電平“1”-“0”跳變時,計數(shù)器加1,且在每個機器周期的S5P2采樣外部輸入,若前一個機器周期采樣值為1,后一個機器周期采樣值為0,則計數(shù)器加1。第6頁/共34頁2023/1/178

由于識別一個從1到0的負跳變信號需要兩個機器周期(24個振蕩周期),所以最高的計數(shù)頻率為系統(tǒng)時鐘頻率的1/24;兩個輸入脈沖的最小間隔應不小于兩個機器周期。又因為一個機器周期對信號采樣一次,因此輸入信號的電平寬度至少應持續(xù)一個機器周期。第7頁/共34頁2023/1/179定時原理輸入脈沖不是外部脈沖源,而是一個晶體振蕩器的脈沖源。在計數(shù)器由預置計數(shù)值就可以算出從加1計數(shù)器啟動到計滿溢出所需的時間,即定時時間。第8頁/共34頁2023/1/1710對于16位計數(shù)器,最大定時時間是216個脈沖的時間。則定時時間:△T=(216-X)*TT:輸入脈沖周期,T=12/fμs(f為晶振頻率

1.2~12MHz)如為12MHz,則T=1μsX:計數(shù)器初值(由程序輸入)第9頁/共34頁2023/1/1711

定時時間計算公式:△T=(216-X)*T例:對于12MHz晶體,T=1μs,最大定時△T=65.536ms;對于6MHz晶體,T=2μs,最大定時△T=131ms當要設置計數(shù)器初值時,使用公式:

X=216-△T/T第10頁/共34頁2023/1/1712例:系統(tǒng)時鐘頻率為12MHz,要產(chǎn)生1ms定時,求初值XT=12/12=1μs

若為16位計數(shù)器

X=216-1000/1=64536=0FC18H

若為13位計數(shù)器

X=213-1000/1=8192-1000=7192=1C18H

不能采用8位計數(shù)器第11頁/共34頁2023/1/17131.定時器/計數(shù)器T0、T1的內部結構9.3.2定時器/計數(shù)器T0、T1

第12頁/共34頁2023/1/17142.計數(shù)器T0、T1各有2個8位計數(shù)器,構成2個16位計數(shù)器

T0:TH0、TL0

T1:TH1、TL1不可以位尋址,只能按字節(jié)分兩條指令讀寫16位碼,而不能用一條指令讀寫雙字節(jié)。例:X初值為64536=0FC18H

MOVTH0,#0FCHMOVTL0,#18H第13頁/共34頁2023/1/1715T0與T1有兩種功能:計數(shù):

T0對應P3.4/T0管腳送入的脈沖計數(shù);

T1對應P3.5/T1管腳送入的脈沖計數(shù)。定時:

每個機器周期使之加1,初值的大小決定定時時間的長短。第14頁/共34頁2023/1/1716復位值均是00HT0有4種工作方式:

方式0、方式1、方式2、方式3T1有3種工作方式:

方式0、方式1、方式2前3種工作方式完全相同其功能及工作方式由TMOD和TCON來決定第15頁/共34頁2023/1/17173.方式寄存器TMOD8位SFR,地址為89H不可位尋址低4位用于控制T0,高4位用于控制T1,含義相同。T1T0第16頁/共34頁2023/1/1718M1、M0:工作方式選擇位C/T:定時或計數(shù)功能選擇位

=1:外部計數(shù)工作方式,對P3.4、P3.5脈沖計數(shù)

=0:定時方式,每一個機器周期加1T1T0定時器/計數(shù)器工作方式1定時器/計數(shù)器工作方式3定時器/計數(shù)器工作方式2方式3時,定時器/計數(shù)器T1的結構簡圖

第17頁/共34頁2023/1/17193.定時/計數(shù)器控制寄存器TCON8位寄存器,可位尋址低4位用于外部中斷INT0、INT1控制高4位用于T0、T1控制位地址8F8E8D8C8B8A8988TCONTF1TR1TF0TR0IE1IT1IE0IT0TR0TF0TR1TF1TR0:T0的運行控制位,置1時,允許T0開始計數(shù)。TF0:T0溢出標志,可以申請中斷。響應中斷時,硬件自動清零。TR1:T1的運行控制位,置1時,允許T1開始計數(shù)。TF1:T1溢出標志,可以申請中斷。響應中斷時,硬件自動清零。第18頁/共34頁2023/1/17204.定時/計數(shù)器T0和T1的工作方式定時器T0有四種工作方式:

方式0、方式1、方式2和方式3。定時器T1有三種工作方式:

方式0、方式1、方式2。兩者前3種工作方式相同。以T0為例講解。第19頁/共34頁2023/1/1721方式0:13位定時/計數(shù)器TMOD的M1、M0都寫入0TH0的8位和TL0的低5位組成13位加1計數(shù)器,TL0的低5位向TH0進位溢出值:213=8192=1FFFH+1溢出后,TF0=1,中斷申請

第20頁/共34頁2023/1/1722控制T0的啟動和停止:

GATE=0時,定時器的啟停僅由TRx控制

GATE=1時,定時器的啟停還受到INT引腳電平的控制。第21頁/共34頁2023/1/1723例:

f=12MHz,要產(chǎn)生1ms定時,求計數(shù)初值。

T=12/f=1μsX=213-1000/1=7192=

1C18H

=

0001110000011000B

取13位,低5位送TL0:

18H;

高8位送TH0:0EOH

MOVTH0,#0E0HMOVTL0,#18H第22頁/共34頁2023/1/1724方式1:16位定時/計數(shù)器TH0的8位和TL0的8位組成16位加1計數(shù)器最大計數(shù)脈沖個數(shù):1~65536(216)

最長定時時間(晶振12MHz,T=1s):

1s~65536×T=65.54ms溢出值:216=65536=0FFFFH+1方式1和方式0唯一不同的就是位數(shù),其他控制方式和用法均相同。第23頁/共34頁2023/1/1725例:

f=12MHz,要產(chǎn)生1ms定時,求計數(shù)初值。

T=12/f=1μs

X=216-1000/1=64536=0FC18H

低8位送TL0:18H;高8位送TH0:0FCH

MOVTH0,#0FCHMOVTL0,#18H第24頁/共34頁2023/1/1726方式2:可自動重裝初值的8位定時/計數(shù)器與方式0和方式1不同處:只使用TL0做8位計數(shù)器,最大計數(shù)值255;最大定時時間(晶振12MHz時):256sTH0為初值寄存器。當TL0計滿溢出時,置位TF0,并將TH0的內容(即時間常數(shù)初值)重新裝入TL0中。TH0中自身初值不變。用于需要重復定時和計數(shù)的場合。第25頁/共34頁2023/1/1727方式3:只適用于T0M0=M1=1,TL0、TH0各自是一個8位計數(shù)器。TL0:定時或計數(shù),使用T0的控制位TF0、TR0TH0:只能定時,借用T1的控制位TF1、TR1如果將T1置為方式3,則將使T1停止計數(shù),與清“0”TR1的效果相同。但是,此時T1仍可工作于方式0、1或2定時或計數(shù),而TR1、TF1則被TH0占用,一般T1作為串口的波特率發(fā)生器,或不需要中斷的場合。第26頁/共34頁2023/1/1728例1:由P1.0輸出方波信號,周期為2ms,設fosc=12MHz。2ms解:每隔1ms改變一次P1.0的輸出狀態(tài),即形成方波,用T0非門控方式1定時。計算時間常數(shù):X=216-t/T =216–(1/1000)/10-6

=65536-1000 =64536=0FC18H第27頁/共34頁2023/1/1729

ORG 0000H

AJMP MAIN

ORG 000BH

;T0中斷硬件入口地址

AJMP PT0INT

;跳到中斷服務程序

ORG 0030HMAIN:

MOV TMOD,#01H

;中斷方式

MOV TL0,#18H

;計數(shù)初值

MOV TH0,#0FCH

SETB EA

;開放總中斷

SETB ET0

;開放T0中斷

SETB TR0

;啟動定時器

HERE: SJMP HERE

;等待中斷,相當于執(zhí)行其它任務

PT0INT: MOV TL0,#18H

;中斷服務程序;置初值

MOV TH0,#0FCH

CPL P1.0

;取反,產(chǎn)生方波

RETI

;中斷返回第28頁/共34頁2023/1/1730例2:利用定時器方式2對外部脈沖計數(shù),要求每計滿110次,將P1.0端取反。解:外部信號由T1引腳輸入,每發(fā)生一次負跳變計數(shù)器加1,每輸入110個脈沖,計數(shù)器發(fā)生溢出中斷,中斷服務程序將P1.0取反一次。T1計數(shù)方式2的方式字為:TMOD=60H。T0不用時,TMOD的低4位可任意,但不能使T0進入方式3,一般取0。

計算T1的計數(shù)初值:X=28–110=146=92H則TL1的初值為92H,重裝初值寄存器TH1=92H。第29頁/共34頁2023/1/1731程序清單:ORG0000HMAIN:MOVTMOD,#60H

;置T1方式2計數(shù)MOVTL1,#92H;賦初值MOVTH1,#92HMOVIE,#88H;定時器T1開中斷SETBTR1

;啟動計數(shù)器HERE:SJMPHERE

;等待中斷ORG001BH

;中斷服務程序入口CPLP1.0

;對P1.0取反RET1;中斷返回第30頁/共34頁2023/1/1732例3:利用T0門控位測試引腳上出現(xiàn)的正脈沖的寬度,并以機器周期數(shù)的形式顯示在顯示器上。解:根據(jù)要求

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論