82C54可編程計數定時器

8254 能用於多種應用場合,例如外部事件計數器、可編程方波頻率發生器、分頻器、實時時鐘以及程控單脈衝發生器等。


本接口卡的功能組成非常靈活,通過跨接插座的不同連接方式,可以使8254的時鐘輸入端 CLK 與被測現場信號相連,或者與卡上基準時鐘相連,也可以將二至三級計數器串連使用。對於8254 的啓停控制端 GATE,同樣可以通過跨接插座的選擇,使其或者受程序的控制或者設置爲外部控制。


8254的全部功能是由CPU編程設定的。CPU通過輸出指令給8254裝入控制字,從而設定其功能。


這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

例題:
例1:端口地址爲60H~63H,選擇1#,工作方式2,計數初值爲5533H,BCD碼制。其初始化程序段爲:

MOV AL,01110101B   ;寫入控制命令字【因爲是先寫入低位字節,再寫入高字節,注意對照上面的表2可知道RL1,RL0應該都是1OUT 63H,AL
MOV AL,33H         ;寫入計數初值低字節
OUT 61H,AL 
MOV AL,55H         ;寫入計數初值高字節
OUT 61H,AL 

例2:端口地址爲60H~63H,讀出1#當前計數值。
【這裏使用的是82C54的鎖存命令 ,只需要讀到1#這個端口的數據,後面的就不用管,所以後面的基本爲0。MOV AL,01000000B】

MOV AL,01000000B   ;寫入控制命令字,鎖存操作
OUT 63H,AL
IN AL,61H          ;讀出 1#當前計數值 

複習

1.8253有__3__個計數器,每個計數器是__16__位的。
2.8253有__6___種工作方式。
3.欲使8253的一個計數器產生最大的定時時間, 寫入計數器的計數初值爲____0____。
4.8253的引腳CS、RD、WR、A1、A0爲___B___時,表示對計數器1設置計數初值。 A.01000   B.01001   C.00101   D.10101

82C54的三個計數器按照各工作方式寄存器中控制字的設置進行工作。
可以選擇的工作方式只有六種【注意是隻有六種】。
這六種方式分別是:
方式0:計數結束時中斷。編程後自動啓動,計數器減1計數,計數到終點(減至0 )後輸出高電平,可用於中斷請求信號,GATE爲低電平時停止計數,回到高電平後繼續往下計數。再次啓動要重新裝入計數值或重新編程。

方式1:可編程單脈衝輸出。GATE上升沿進行初始化並開始計數。輸出低電平的寬度等於計數時間。單脈衝輸出可用 GATE 上升沿多次觸發。

方式2:比率發生器。編程後重復地循環計數。計數到終點時輸出一個時鐘週期寬度的低電平脈衝,自動初始化後繼續計數。用GATE的上升沿初始化,並開始計數。GATE爲低電平時停止計數。

方式3:方波發生器。這種方式是在編程後重復地循環計數,輸出波形爲方波。如果初始計數值爲偶數,每個時鐘輸入脈衝使計數器減2,達到計數終點時輸出電平改變。如果初始計數值爲奇數,則輸出高電平 時第一個時鐘輸入脈衝使計數器減1,隨後每個輸入脈衝使計數器減2;輸出爲低電平時第一個時鐘輸入脈衝使計數器減3,隨後每個輸入脈衝使計數器減2,到達計數終點時輸出電平改變,計數器自動初始化後繼續計數。用GATE的上升沿初始化並開始計數,GATE爲低電平時停止計數。

方式4:軟件啓動選通脈衝輸出。編程後自動啓動,計數到終點後輸出一個時鐘週期的低電平脈衝。用GATE的上升沿初始化並開始計數,GATE爲低電平時停止計數。

方式5:硬件啓動選通脈衝輸出。編程後,等待 GATE 上升沿進行初始化並開始計數,計數到終點後輸出一個時鐘週期的低電平脈衝,計數器開始計數後不受 GATE 信號電平的影響,這種選通脈衝的輸出可用GATE的上升沿多次觸發。在工作方式控制字中,如果設置計數器鎖存操作,則該控制字中工作方式選擇位M1、M0 和計數方式選擇位BCD 無效。即設置鎖存操作時不影響計數器的工作方式,計數器鎖存操作,是在計數器計數過程中,在不影響正在進行的計數操作的條件下,把當前的計數值鎖存到寄存器,供 CPU 讀取,這時在工作方式控制字中,SC1、SC0指定要鎖存的計數器,RL1、RL0=00表示鎖存操作,其餘4位無效,計數器按原來設定的方式工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章