8279鍵盤與8085微處理器介面


在這裡,我們將瞭解如何使用8279晶片將矩陣鍵盤與8085微處理器連線。該晶片可以用於鍵盤/顯示器介面模式或作為鎖存輸入埠。但通常,它用作鍵盤介面。

鍵盤介面方案也可以分為兩種模式。這些模式是:

  • 譯碼工作模式

  • 編碼工作模式

譯碼工作模式

在這種模式下,矩陣鍵盤只能有四行。這四行可以使用SL3-0選擇線進行選擇。有八列。可以使用RL7-0選擇這八列線。因此,共有4 * 8 = 32個按鍵。在每一行和每一列的交點處,都有一個按鍵。還有另外兩個按鍵。這些按鍵是Shift鍵和Ctrl鍵,這兩個按鍵不屬於矩陣的一部分。按鍵結構如下:

在譯碼模式下,8279透過一次使每一行的邏輯電平為0來掃描按鍵,然後讀取每一列。下表顯示了8279為掃描鍵盤而顯示的SL3-0模式。

SL3-0
正在掃描的行
1110
行0
1101
行1
1011
行2
0111
行3


讓我們來看一個鍵盤掃描機制的例子。假設當前它正在透過傳送選擇線值0111來掃描行3,並且從RL7-0接收到的資訊為10111111。這表示RL6的邏輯電平為0。因此,對於此資料,FIFO RAM將如下載入。



指示行3
指示列6
Ctrl
Shift
0
1
1
1
1
0


LS的3位指示列號(此處110表示列6),接下來的3位指示行號(此處011表示行3)。由於鍵盤有四行,因此2位就足夠了,但是行選擇有三位(一位額外位)。

當Ctrl和Shift按鈕沒有按下時,這兩個欄位將保持為1。掃描鍵盤按鍵後,8279會啟用IRQ。該IRQ連線到8085的中斷請求引腳。當處理器讀取FIFO RAM時,IRQ引腳變為0。當處理器處於中斷停用狀態時,按鍵內容儲存到FIFO RAM中。如果此時按下另一個按鍵,則該資訊將在FIFO RAM中作為佇列結構新增到上一個按鍵資訊之後。

狀態暫存器

狀態暫存器儲存有關FIFO RAM的重要資訊。該暫存器的結構如下所示。

Du
S/E
O
U
F
N
N
N

最後三位用於表示FIFO RAM中存在的字元數。它從000開始,每次遞增1。當透過使IRQ引腳有效傳送一個按鍵資料並且處理器正在讀取FIFO RAM的內容時,這些值將遞減1。

當處理器的中斷被停用,並且使用者按下七個按鍵時,最後三位的值將為111。因此,如果再按下另一個按鍵,F標誌將設定為1,三位將變為000。此標誌將指示FIFO RAM已滿。現在,如果FIFO RAM已滿時再按下另一個按鍵,它將覆蓋FIFO RAM的最後一個字元。它將生成溢位錯誤。它將設定O標誌。此O標誌指示溢位錯誤。類似地,當F標誌為0,最後三位也為000時,表示FIFO RAM未滿並且也沒有要讀取的字元。在這種情況下,如果處理器嘗試讀取FIFO RAM,它將透過使U標誌有效來生成下溢錯誤。

編碼工作模式

在譯碼模式下,只有四行。在大多數情況下,8279用於編碼工作模式。在這種模式下,我們可以設定八行和八列來連線64個按鍵。與譯碼模式一樣,它也具有Shift和Ctrl鍵。因此,將這兩個鍵與64個鍵相加,共有66個鍵。

從該圖可以看出,使用了一個外部的3:8譯碼器。SL2-0連線到譯碼器。SL3未使用。譯碼器的輸出連線到矩陣的八行。下表顯示了8279為掃描鍵盤而顯示的SL2-0模式。

SL2-0
正在掃描的行
000
行0
001
行1
010
行2
011
行3
100
行4
101
行5
110
行6
111
行7


讓我們來看一個鍵盤掃描機制的例子。假設當前它正在透過傳送選擇線值101來掃描行5,並且從RL7-0接收到的資訊為10111111。這表示RL6的邏輯電平為0。因此,對於此資料,FIFO RAM將如下載入。



指示行5
指示列6
Ctrl
Shift
1
0
1
1
1
0

LS的3位指示列號(此處110表示列6),接下來的3位指示行號(此處101表示行5)。FIFO RAM中也存在另外兩個按鍵區域。

更新於: 2020年6月27日

2K+瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

立即開始
廣告