計數器定時器8253_第1頁
計數器定時器8253_第2頁
計數器定時器8253_第3頁
計數器定時器8253_第4頁
計數器定時器8253_第5頁
已閱讀5頁,還剩60頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第6章常用輸入輸出接口芯片應用6.4計數器/定時器8253教學重點可編程計數器/定時器的原理8253的工作方式和編程8253的應用教學內容1概述2可編程計數器/定時器的工作原理3可編程計數器/定時器82531概述定時器/計數器的應用舉例:定時信號的獲得: (1)軟件方法 使用延遲子程序 MOVCX,1000

L1: LOOPL1

(2)硬件方法 使用計數器/定時器

2可編程計數器/定時器的工作原理定時器由數字電路中的計數電路構成,通過記錄高精度晶振脈沖信號的個數,輸出準確的時間間隔。計數值=定時時間/時鐘脈沖周期計數電路如果記錄外設提供的具有一定隨機性的脈沖信號時,它主要反映脈沖的個數(進而獲知外設的某種狀態),又稱為計數器。定時器和計數器當作為計數器時:

設置計數初值后,計數執行單元隨著時鐘CLK開始減1計數,減到零時,從OUT輸出端輸出一個結束信號;當作為定時器時:設置好定時常數后,計數執行單元隨著時鐘CLK開始減1計數,減到零時,從OUT輸出端輸出信號,并按定時常數重復進行,這樣不斷輸出定時間隔的信號。高8位低8位GATECLKOUT輸出鎖存器OL計數初值寄存器CR高8位低8位計數執行部件CE高8位低8位計數器/定時器結構示意圖計數器/定時器的用處①在多任務的分時系統中用來作為中斷信號實現程序的切換;②可以向I/O設備輸出精確的定時信號;③作為可編程的波特率發生器;④實現時間延遲。3可編程計數器/定時器8253①.8253的內部結構②.8253的引腳分配③.8253的工作模式④.8253的控制寄存器的格式⑤.8253的應用舉例①.8253的內部結構數據總線緩沖器是一個三態、雙向8位緩沖器,用于將8253與系統數據總線D0~D7相連。CPU通過數據總線緩沖器向8253寫入數據和命令,或從數據總線緩沖器讀取數據和狀態信息。

數據總線緩沖器有三個基本功能:通過編程向8253寫入工作方式命令字;向計數寄存器裝入計數值;讀出計數值。數據總線緩沖器這是8253內部操作的控制部分。按CPU發來的讀、寫信號和地址信號,選擇讀出或寫入寄存器,并且確定數據傳輸的方向,即是讀出還是寫入。讀/寫邏輯電路控制字寄存器在8253的初始化編程時,由CPU寫入控制字以決定通道的工作方式。此寄存器只能寫入而不能讀出。這是三個獨立的定時/計數通道,每個通道的結構完全相同,每個通道都有一個16位的可預置數值的減法計數器,還有一個對應的鎖存寄存器構成。在編程控制下可以把預置的數值鎖存到鎖存寄存器內。計數器#0、#1、#2在工作過程中,計數器的值不斷遞減,而鎖存寄存器的內容不變。

計數器內容減為0時,還可控制鎖存寄存器自動將其數值填入計數器內。還可用工作方式字控制計數器將其當前數值鎖存到鎖存寄存器內,以便讀出當前計數值。每個計數器都有六種工作方式。2.8253的引腳分配8253的內部端口地址引腳A1、A0計數器的三個引腳CLK時鐘輸入信號——計數器對該引腳輸入的脈沖進行計數,在計數過程中,此引腳上每輸入一個時鐘信號(下降沿),計數器的計數值減1。8253的基本工作方式是對CLK端輸入的脈沖進行計數,CLK端輸入的脈沖可以是任何脈沖源提供的脈沖(只要它的周期不小于380ns即可)。GATE門控輸入信號——通過外部控制計數器工作,可分成電平控制和上升沿控制兩種類型,類型由工作方式決定。OUT計數器輸出信號——當一次計數過程結束(計數值減為0),OUT引腳上將產生一個輸出信號。基本規則①.控制字寫入計數器時,所有的控制邏輯電路立即復位,輸出端OUT為初始狀態(高電平或低電平);②.初值寫入后,要經過1個時鐘CLK的上升沿和1個下降沿后,計數執行部件才開始計數;3.8253的工作模式③.在CLK的上升沿時,計數器對門控信號GATE進行采樣,來決定工作狀態(計數、觸發、停止、重新置初值);④.在CLK的下降沿時,計數器執行部件從初值開始作減1計數;其中0是最大初值,1是最小初值。注意:啟動方式(軟件啟動、硬件啟動);GATE信號的作用,可以啟動計數的有效GATE信號(高電平、上升沿),GATE信號的變化導致計數發生的變化;OUT輸出波形;計數期間向計數器寫入新的計數值,計數的變化;是否自動重新裝入

CWN=4WRCLKGATEOUTNN43210FF裝控制字裝初值計數開始計數結束

作用是用戶可在設定時間上產生中斷信號模式0:計數結束產生中斷模式0的工作特點:①門控電路GATE信號必須為1,計數器才能計數;②計數時通道輸出端OUT一直為0;③通道計數器計數到0后,OUT由0到1,同時計數器停止工作;作用是輸出一個用戶事先設定寬度的脈沖,脈沖寬度PW=NTCLK模式1:可編程的單穩態觸發器模式1的工作特點:①門控電路GATE是觸發信號,上升沿有效,即開始計數是由GATE的上升沿觸發的;②觸發后,通道計數器開始計數,輸出端OUT由高變低;③計數器計數到0,OUT再由低變高。工作模式2:分頻器CWN=3NN3213213213WRCLKGATEOUT作用是把輸入信號分頻后以脈沖的形式輸出,而分頻系數就是用戶事先對通道計數器寫入的初始計數值。模式2的工作特點:①門控電路GATE信號必須為1,計數器才能對CLK端上的脈沖進行計數;②當計數器計數到1時,輸出端由高變低,再經過一個CLK周期,即計數器計數到0時,輸出端OUT又跳變為高;③通道計數器計數到0后,自動重新裝入計數初值,實現循環計數;工作模式3:方波發生器說明:特點與方式2類似,主要區別:輸出方波,其占空比q為①當N為偶數時,q=0.5;②當N為奇數時,q=(N+1)/2N。

CWN=4

NN43214321432

WRCLKGATEOUT模式3的工作特點:①門控電路GATE信號必須為1,計數器才能對CLK端上的脈沖進行計數;②當計數器計數到一半時,輸出端由高變低,計數器計數到0時,輸出端OUT又跳變為高;③通道計數器計數到0后,自動重新裝入計數初值,實現循環計數;模式4:軟件觸發的選通信號發生器

CWN=3

NN3210FFFE3210FF

N=3WRCLKGATEOUT作用是CPU通過指令觸發一個選通信號給外設,選通信號在觸發后設定時間點上觸發。模式4的工作特點:①門控電路GATE信號必須為1,計數器才能計數;②當計數器計數到0后,需要重新裝入計數值。模式5:硬件觸發的選通信號發生器

CWN=3

NN3210FFFE3210FFWRCLKGATEOUT作用是外部通過一個有效沿觸發信號,啟動一個選通信號給外設,選通信號在觸發后設定時間點上發出。模式5的工作特點:①門控電路GATE信號為上升沿觸發,計數器才能計數;②計數時通道輸出端OUT一直為1;③通道計數器計數到0后,OUT由1到0,同時計數器停止工作;8253工作方式小結①.方式2、4、5的輸出波形是相同的,都是寬度為一個CLK周期的負脈沖。但方式2是連續工作,方式4由軟件(設置計數值)觸發啟動方式5由門控脈沖觸發啟動②.寫入計數值后才能開始計數方式0、2、3、4在寫入計數值后,計數過程就開始了方式1、5需要外部觸發啟動,才開始計數③.6種方式中只有方式2、3是連續計數,其他4種方式都是一次計數,要繼續工作需要重新啟動,方式0、4由寫入計數值(軟件)啟動,方式1、5要由外部信號(硬件)啟動。4.8253的控制寄存器的格式00計數器001計數器110計數器211不用00計數器鎖存命令01只讀寫低字節10只讀寫高字節11先讀寫低字節后讀寫高字節(讀寫16位)000模式0001模式1×10模式2×11模式3100模式4101模式50二進制1BCD計數值寫入計數器各自的I/O地址計數值范圍選擇二進制時計數值范圍:0000H~0FFFFH0000H是最大值,代表65536選擇十進制(BCD碼)計數值范圍:0000~99990000代表最大值10000設置控制字命令設置初始值命令鎖存命令讀出命令寫入命令1.初始化命令2.讀取計數值命令8253的編程命令初始化命令(1)對計數器設置初值前必須先寫入控制字,用來選擇計數器、設定工作模式和計數格式;(2)設置初值命令用來給出計數的初始值,初值可以是8位,也可以是16位;計數初值為8位,則控制字中的RW1、RW0應取01,初值只寫入CR的低8位,高8位會自動置0;若是16位初值,而低8位是0,則RW1、RW0應取10,初值高8位寫入CR的高8位,CR的低8位會自動置0;若是一般16位初值,則RW1、RW0應取11,應分兩次寫入初值,先寫低8位、再寫入高8位(此順序不能反)計數初始值寫入對應計數器的計數初值寄存器;設置計數初始值的說明單個計數器初始化寫模式控制字寫計數低字節寫計數高字節寫模式控制字(計數器0)寫模式控制字(計數器1)寫模式控制字(計數器2)寫計數低字節(計數器0)寫計數高字節(計數器0)寫計數低字節(計數器1)寫計數高字節(計數器1)寫計數低字節(計數器2)寫計數高字節(計數器2)多個計數器初始化初始化流程先寫入工作模式控制字,接著寫入計數初始值計數器的順序是任意的,不必一定按照計數器0、l、2的順序初始化;可先寫所有計數器的工作模式控制字,再裝入各計數器的計數值(但先控制字再計數值的順序不能錯);計數值先寫低再寫高的順序不能錯;其他順序無關緊要初始化流程的注意問題例1對8253計數器1編程,讓其工作在方式2,計數值是二進制的2000H。(思考題)計數器1二進制數方式2先寫低8位,后寫高8位

控制字為:01

11

010

0B=74H設端口地址為120H~123H,則初始化程序段為:

MOVAL,74H;控制字MOVDX,123H;控制字寄存器地址OUTDX,ALMOVDX,121H;計數器1地址MOVAL,00H;低8位字節送ALOUTDX,AL;輸出到計數器MOVAL,20H;高8位字節送ALOUTDX,AL;輸出到計數器例2

設8253的端口地址為8030~8036H(偶地址),要求設定計數器0的工作在模式0下,采用二進制計數方式,計數初值為1000;計數器1的工作在模式2下,采用BCD碼計數方式,計數初值為1000;試寫出8253初始化程序。MOVDX,8036HMOV AL,30HOUTDX,ALMOVDX,8030HMOV AL,0E8HOUT DX,ALMOV AL,03HOUT DX,ALMOVDX,8036HMOV AL,

75HOUTDX,ALMOVDX,

8032HMOV AL,

00HOUT DX,ALMOV AL,10HOUT DX,AL初始化程序讀到的是執行輸入指令瞬間計數器的現行值。16位計數值要分兩次讀至CPU,故必須將數據鎖存。有兩種辦法:利用外加控制信號GATE使計數器暫停計數,然后按照工作方式控制字中RL1RL0的規定讀取規定字節讀取計數值命令

CPU向8253發出鎖存命令字(SC1SC0)鎖存計數器的當前計數值(當前計數值鎖存在輸出鎖存器,而減1計數器可以繼續計數),再讀取輸出鎖存器的計數值。當CPU讀取了規定的字節數后,輸出鎖存器自動解除鎖存狀態,其值又跟隨計數器而變化。MOVDX,8036HMOV AL,80HOUT DX,ALMOVDX,8034HINAL,DXMOV CL,ALINAL,DXMOV CH,AL例38253的端口地址為8030~8036H,要求將計數器2的當前計數值讀出并送到CX中。例:現有一個高精密晶體振蕩電路,輸出信號是脈沖信號,頻率為1MHz。要求利用8253做一個秒信號發生器,其輸出接一發光二極管,以0.5秒點亮,0.5秒熄滅的方式閃爍指示。設8253的通道地址為80H~86H(偶地址)。5.8253的應用舉例確定分頻系數

經過分析可知:要求用8253做一個分頻電路,而且其輸出應該是方波,否則二極管不可能等間隔閃爍指示,則分頻系數為:分析步驟由于8253一個通道最大的計數值是65536,而對于N=1000000這樣一個數,一個通道顯然是不可能完成上述分頻要求,故本題采用了如圖所示的通道計數器級聯的方法來實現分頻系數超過65536的分頻要求。分析電路圖可知:通道0首先將1MHz信號1000分頻,產生1KHz信號;通道1再把1KHz信號1000分頻,得到1Hz的方波信號來控制二極管的輸出。2.確定通道0和通道1的工作方式

經過分析可知:通道1要輸出方波信號推動發光二極管,所以通道1應選工作方式3;對于通道0,它只要能起分頻作用就行,對輸出波形不作要求,所以方式2和方式3都可以選用。3.確定控制字①通道0的控制字為00110101B,即16位讀寫方式,BCD碼計數;②通道1的控制字為01110110B,即16位讀寫方式,二進制碼計數;MOV AL,00110101B(35H)OUT 86H,ALMOV AL,00HOUT 80H,ALMOV AL,10HOUT 80H,AL4.編寫子程序MOV AL,01110110B(76H)OUT 86H,ALMOV AL,0E8HOUT 82H,ALM

溫馨提示

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

評論

0/150

提交評論