8253(定時器IC)與8085微處理器的介面


Intel 8253是可程式設計間隔定時器(PTI),專為微處理器設計,使用三個16位暫存器執行計時和計數功能。每個計數器有兩個輸入引腳,即時鐘和門,還有一個“OUT”輸出引腳。要操作計數器,需要在其暫存器中載入一個16位計數。根據指令,它開始遞減計數,直到計數器達到0,然後產生一個脈衝,該脈衝可用於中斷CPU。

8253 的特性

  • 它具有三個獨立的16位向下計數器。

  • 它可以處理從直流到10MHz的輸入。

  • 這三個計數器可以程式設計為二進位制或BCD計數。

  • 它幾乎相容所有微處理器。

  • 8254有一個強大的命令,稱為讀回命令,允許使用者檢查計數值、程式設計模式、當前模式和計數器的當前狀態。

8253的框圖


8253與8085的介面

現在讓我們看看如何將這個8253定時器晶片與Intel 8085微處理器介面。從下圖可以看出,8085的資料匯流排D7-0連線到8253的資料引腳D7到D0。因此,高階地址匯流排用作解碼器輸入以選擇晶片,而8085的A8和A9分別連線到引腳A1和A0以選擇計數器。

在下圖中,我們可以得到8253的片選邏輯。在該圖中,我們可以很容易地發現,當A3-2和A7-5為邏輯0,A4為邏輯1時,只有8253的片選CS引腳才會被使能。

此表顯示瞭如何使用8253的A1和A0引腳選擇計數器。

片選 (CS)

十六進位制地址
計數器選擇
A7
A6
A5
A4
A3
A2
A1
A0
0
0
0
1
0
0
0
0
10H
計數器0
0
0
0
1
0
0
0
1
11H
計數器1
0
0
0
1
0
0
1
0
12H
計數器2
0
0
0
1
0
0
1
1
13H
控制字暫存器


可以使用IN和OUT指令來完成計數器選擇和控制字暫存器(CWR)設定。如果累加器儲存要載入CWR的內容,則使用OUT 13H設定CWR。類似地,使用IN指令可以獲取計數器的值,例如IN 11H將從計數器1獲取值,依此類推。

因此,計數器操作需要以下四個步驟:

  • 初始化8253晶片

  • 使用控制字值載入控制字暫存器

  • 載入低位計數值

  • 載入高位計數值

讓我們看一個程式,以模式0在模式1下將計數器2載入為500010計數值。並且在執行時讀取計數值。

首先,要初始化8253,控制字將為B2H

計數器2
先載入低位位元組,再載入高位位元組
模式1選擇
0表示二進位制
1
0
1
1
0
0
1
0


現在,用於對計數器2進行鎖存操作的控制字為80H。

計數器2
鎖存選項
無關緊要
1
0
0
0
0
0
0
0


我們將500010載入到計數器中。500010的十六進位制等效值為1388H。

MVI A, B2H ;Load B2H as initialization byte for counter
OUT 13H ;Write Acc content CWR
MVI A, 88H ;Load LS byte of count value
OUT 12H ;Send to Counter 2
MVI A, 13H ;Load MS byte of count value
OUT 12H ;Send to Counter 2
MVI D, 00H ;clear the register D
L1: MVI A, 80H ;Set a with control word 80H of counter 2
OUT 13H ;Write Acc content CWR
IN 12H ;Read LS value of counter value
MOV B, A ;store LS value to B
IN 12H ;Read MS value of counter value
ORA B ;OR LS and MS to set Z flag
JNZ L1 ;If Z flag is not set, jump to Loop
HLT ;Halt the program

更新於:2020年6月26日

6K+瀏覽量

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.