Intel8279晶片是一種通用的可程式序的鍵盤、顯示接口器件.
基本介紹
- 中文名:8279晶片
- 電源供電:單±5V
- 前置分頻器:31,RESET信號
- 數據匯流排:DB0~DB7
- 電源:±5V電源供電
8279採用單±5V電源供電,40腳封裝。
DB0~DB7:雙向數據匯流排,用來傳送8279與CPU之間的數據和命令。
CLK:時鐘輸入線,用以產生內部定時的時鐘脈衝。
RESET:復位輸入線,8279復位後被置為字元顯示左端輸入,二鍵閉鎖的觸點回彈型式,程式
A0:緩衝器低位地址,當A0為高電平時,表示數據匯流排上為命令或狀態, 當為低電平時,表示數據匯流排上為數據。
RD:讀信號輸入線,低電平有效,將緩衝器讀出,數據送往外部匯流排。
RL2-- 1 40 --VCC
RL3-- 2 39 --RL 1
CLK-- 3 38 --RL 0
IRQ-- 4 37 --CNTL/STB
RL4-- 5 36 --SHIFT
RL5-- 6 35 --SL 3
RL6-- 7 34 --SL 2
RL7-- 8 33 --SL 1
RESRT-- 9 32 --SL 0
RD-- 10 31 --OUT B0
WR-- 11 30 --OUT B1
DB0-- 12 29 --OUT B2
DB1-- 13 28 --OUT B3
DB2-- 14 27 --OUT A0
DB3-- 15 26 --OUT A1
DB4-- 16 25 --OUT A2
DB5-- 17 24 --OUT A3
DB6-- 18 23 --BD
DB7-- 19 22 --CS
VSS-- 20 21 --A0
IRQ:中斷請求輸出線,高電平有效,在鍵盤工作方式下,當FIFO/感測器RAM中有數據時,
SL0~SL3:掃描線,用來掃描按鍵開關,感測器陣列和顯示數字, 這些可被編程或被解碼。
RL0~RL7:回送線,經過按鍵或感測器開關與掃描線聯接, 這些回送線內部設定有上拉電路,使之保持為高電平,只有當一個按閉合時,對應的返回線變為低電平;無按鍵閉合時,均保持高電平。
SHIFT:換位功能,當有開關閉合時被拉為低電平,沒有按下SHIFT開關時,SHIFT輸入端保持高電平,在鍵盤掃描方式中,按鍵一閉合,按鍵位置和換位輸入狀態一起被存貯起來。
在選通輸入方式中,作選通用,把數據存入FIFO RAM中。
OUTA3~OUTA0及OUTB3~OUTB0:顯示輸出A口及B口,這兩個口是16×4切換的數字顯示。這兩個連線埠可被獨立控制,也可看成一個8位連線埠。
VCC:+5V電源輸入線。
VSS:地線輸入線。
☆8279的編程方法
1.8279可按其功能分為:鍵盤功能塊;顯示功能塊;控制功能塊;與CPU接口功能塊控制功能塊包括
控制和定時暫存器,定時和控制,掃描計數器三部分,它主要用來控制鍵盤和顯示功能塊工作.
::控制和定時暫存器:用於存貯來自CPU的編程命令,CPU對8279編程以確定鍵盤與顯示器工作
方式和其它工作條件時,先把命令控制數據放到數據匯流排上,然後使A0=1,WR=0CS=0,並在WR
上升沿把命令鍵存在控制和定時暫存器中,並經解碼,建立適當的功能.
::定時和控制:它含基本的定時計數器,第一個計數器是一個分頻係數為2-31的前置定時器,
分頻係數可由程式預置,使內部頻率為100KHz,從而能給出5.1ms鍵盤掃描時間和10.3ms反
跳時間,其它計數器將此基本頻率分頻後,提供適當的按鍵掃描.行掃描.鍵盤陣列掃描.以
及顯示器掃描次數.
::掃描計數器:掃描計數器有兩種工作方式,在編碼工作方式時,計數器提供一種二進制計數,
通過管腳SL0-SL3輸出後經外部解碼才能提供給鍵盤和顯示器的掃描作用,在解碼工作方式
時,掃描計數器對最低二位進行解碼,SL0-SL3輸出4選1的解碼信號,作為顯示器和鍵盤的譯
碼掃描.
::鍵盤功能塊包括:返回緩衝器,鍵盤反跳及控制,8x8 FIFO感測器RAM,FIFO/感測器RAM狀態.
2.返回緩衝器與鍵盤反跳及控制
8條返回線被返回緩衝器緩衝,在鍵盤工作方式中,這幾條線被逐個檢測,以找出該行鍵中閉合
的鍵,如果反跳電路測知某鍵閉合,則它等待10.3ms,然後重核此鍵是否仍然閉合,如果仍閉合,
那么該鍵在矩陣中的行列地址以及SHIFT和CNTL的狀態一起被送到FIFORAM中,其在FIFO RAM中
的數據格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
CNTL SHIFT SCAN RET URN
數據格式中,最高位CNTL,次高位為SHIFT狀態,D5-D3來自掃描計數器,D2-D0來自返回計數器,
掃描線計數器和回掃線計數器的值分別反映出被按下鍵的行.列的值,如果在感測器陣列中,
返回線上的數據直接進入感測器RAM中相應於陣列中正被掃中的那行,這樣每個開關位置就直
接反映為一個感測器RAM的位置.
::FIFO/感測器RAM
一個8x8 RAM,在鍵盤方式和選通方式中它是一個先入先出(FIFO)存貯器,每一條新的信息順次
寫入,然後又按寫入順序讀出,在感測器陣列掃描方式時,存貯器作為感測器RAM,這時RAM中的
各行存著感測器陣列中相應行的狀態.
::FIF0/感測器RAM狀態
在鍵盤或選通方式中,FIFO狀態跟蹤FIFO中字元數量注意它是"滿"還是"空",寫入或讀出過多
均被認作出錯,當FIFO非空時,狀態邏輯提供一個中斷申請IRQ信號,在感測器陣列掃描方式中,
若測知某一感測器變化時,IRQ則為有效高電平.FIFO狀態字的低3位表示FIFO中的字元數,F表
示FIFORAM已滿;O(over mn)表示越限錯誤,即試圖向已滿的FIFO送另一字元;U(Under done)
表示取空錯誤,即試圖讀取已空的FIFO.S/F有兩種含義:在感測器掃描方式時,S/F表示在感測
器RAM中至少包含了一個感測器閉合指示,在特殊錯誤方式時S/F位是出錯標誌,用來指示是否
發生了多路同時閉合錯誤,Du位表示由於 CLEAR DISPLAY或CLEAR ALL命令尚末完成其消除操
作而使顯示RAM尚不可用.
::顯示RAM和顯示暫存器
8279內部有16X8的顯示RAM,通過顯示暫存器和兩個四位連線埠0UT A0-3,0UT BO-3來刷新顯示,
顯示器可以是白熾燈,也可以是8段數碼管,顯示RAM可以是16X8的形式,也可以構成兩個16x4
的RAM形式,顯示RAM可由CPU進行讀寫,被讀寫的RAM位元組地址由顯示地址暫存器指示.
::顯示地址暫存器保存當前CPU讀或寫的那個RAM地址,以及正顯示著的那兩個4位半位元組的地址,
讀寫地址由CPU命令編程,也可置為每次讀寫後地址自動加1的工作方式,在設定了正確的工作
方式後,顯示RAM可直接由CPU讀出,半位元組A和半位元組B地址自動由8279更新,以適應由CPU送入
的數據,A和B半位元組可獨立送入,也可作為一個字送入,隨CPU所設定的工作方式而定
3.I/O 接口功能塊
線控制CPU與8279之間的數據交換,數據緩衝器是數據交換的雙向通道,控制信號與數據交換間
的邏輯關係見下表:
CS A0 WR RD
1 0 CPU從8279讀狀態
0 1 0 1 CPU向8279寫狀態
1 0 CPU從8279讀數據
0 0 1 CPU向8279寫數據
1 X X X 數據緩衝器輸出呈三態
x為任意數(0或1)
☆8279的操作
由前所述,8279可適應各種鍵盤和顯示器的不同工作方式,這是由於8279內的各功能塊的工作
是可程控的,用戶可根據自己的要求,利用向8279寫命令字的方法對8279的工作方式等進行編
程,從上表可見,只要同時使CS=0 WR=0A0=1,則可向8279寫命令字,並在wR的上升沿把命令打入
8279.
對CPU而言,8279隻有兩個口地址,一個用於讀寫命令和狀態(CS=0,A0=1),一個用於讀寫數據
(CS=0,A0=0)但用於編程命令字卻有多種,在8279中用於區別各種不同命令字的方法是命令字
代碼的高3位(D7,D6,D5,)編碼而低5位是命令字的真正內容
1.8279的編程命令
a.鍵盤/顯示器方式設定
最高位 最低位
命令代碼 0 0 0 D D K K K
其中DD為顯示方式,KKK為鍵盤方式
DD
00 8個8位字元顯示--左端傳入
01 16個8位字元顯示--左端送入
10 8個8位字元顯示--右端送入
11 16個8位字元顯示--右端送入
所謂左端送入是顯示器根據用戶送的先後,從左端一位開始,向右逐位排列,到最右端一位之
後,下一位再從最左端顯示,在這種顯示方式中,顯示器的每個顯示管和8279中的顯示RAM單
元一一對應,RAM中的O地址對應最左面的顯示字元,而15號單元對應最右端的顯示字元
而右端送入方式是電子計算器中常用的顯示方式,第一個送入的數在最右端的顯示字元上,
而以後每送 入一個新數,顯示先左移一位然後把送入的數仍放在最右端顯示字元上.
K K K
0 0 0 編碼掃描鍵盤--2鍵連鎖
0 0 1 解碼掃描鍵盤--2鍵連鎖
0 1 0 編碼掃描鍵盤--N鍵巡迴
0 1 1 解碼掃描鍵盤--N鍵巡迴
1 0 0 編碼掃描感測器陣列
1 0 1 解碼掃描感測器陣列
1 1 0 選通輸入,編碼顯示掃描
1 1 1 選通輸入,解碼顯示掃描
其中2鍵連鎖和N鍵巡迴是8279對鍵盤中被按下鍵的兩種處理方式,編碼掃描和解碼掃描是
SL0-SL3 對鏈盤和顯示器的兩種掃描形式.
b.程式時鐘
命令代碼 0 0 1 P P P P P
此命令確定定時和控制中的前置定標器的分頻係數,代碼PPPPP可形成2-31的數,前置定標器
則分頻係數為;外部時鐘100KHZ復位脈衝過後若無代碼送入則自動為31.
c.讀FIF0/感測器RAM
命令代碼:0 1 0 AI X A A A X=任意
此命令用於確定CPU讀操作的對象是8279中的FIF0/感測器 RAM,並確定8個 RAM 位元組中哪一
個被讀,其中 AAA表示CPU要讀的行,AI為自動加1特徵位,在鍵盤掃描方式中這兩者互不相干,
對隨後的每次讀取8279都按照數據第一次進入的FIF0的同一順序自動送出數據,所有隨後發
生的讀,都是讀自FIFO,直到寫入新命令為止.
在感測器陣列方式中,AAA選擇感測器RAM 8行中的一行若AI=1,則下一次讀取便讀自感測器
RAM中的下一行.
d.讀顯示器RAM
命令代碼:0 1 1 AI A A A A
RAM的地址,AI 為自動加1特徵位,若AI=1,則每讀一行RAM之後,行地址自動加1
e.寫顯示器RAM
命令代碼: 1 0 0 AI A A A A
CPU向8279寫此命令,規定了下一步要對8279的顯示RAM進行寫,定址方式和自動加1功能均與
讀顯示器RAM相同
f.顯示器寫入禁止/空格
命令代碼: 1 0 1 X IW IW BL BL X=任意
A B A B
此命令用於禁止A或B連線埠輸出及使顯示器顯示空格,如果顯示器用作雙排4位顯示,則必須把
其中一個4位禁止掉這樣CPU送入顯示器的信息就不會影響另一半,IW為禁止特徵位,若對某一
連線埠設定IW=1,則該連線埠就被禁止,有必要注意的是:B0與D0對應,BL為顯示空格標誌位,若某
一連線埠的BL置1,則此連線埠顯示空格.當要使一個單8位輸出格式的顯示器空格時,則必須使兩
個BL標誌全都置位,以使顯示完全空格.
g. 消除
命令代碼: 1 1 0 CD CD CD CF CA
此命令用於按一定格式清顯示器RAM的FIF0狀態,其中CD規定清除格式:
CD CD CD
0 X 全"0"(x為任意)
1 0 AB =16 進制
1 0 20(0 O 1 0 0 0 0 0)
1 1 全冊"1"
當為"1"時允許清除顯示器(或用CA=1)
CF清除FIFO狀態(包括中斷),若CF=1,則清除FIF0狀態,並對中斷線復位自感測器RAM的指示器
亦被置於0行CA為總清,其效果相當於CD和CF的合成,當CA=1時,利用CD指示的清除格式清除顯
示器RAM,並清除FIF0狀態,C孔也使內部定時重新同步.在顯示器RAM被清除期間(約16us)不能
寫入,同時在此期間FIFO的最高有效位被置"1"當顯示RAM再度變為可用時即自動復位.
h. 中斷結束/出錯方式設定
命令代碼: 1 1 1 E X X X X X=任意
在感測器陣列方式時,此命令使IRQ線變低,並允許對RAM再寫(檢測到一個感測器位變化時,
IRQ線可能已升高了,因此這樣做可阻止在其復位以前把信息再度寫入RAM).在N鍵巡迴工作方
式,若E位被編程為"1",則晶片電路將在特殊出錯方式下運行.
在N鍵巡迴方式的特殊出錯方式下主要用於檢查鍵的多重按下,若在一個回彈周期中發現兩個
鍵被按下,即可看成同時多重按下,並建立出錯標誌,阻止任何對FIF0的進一步寫入,同時設定
中斷(如中斷尚末設定的話),在此方式中,可用讀 FIFO 狀態字命令讀出錯誤標誌,而發CF=1
的清除命令,可使出錯標誌復位.
☆8279 編程舉例
通用鍵盤顯示接口板,能直接掛在Z80.8031.6502匯流排上編程方法全部相同,通常可按下列順序:
設定分頻係數(復位後分頻係數為31);選擇鍵盤/顯示工作方式;消除顯示 RAM 和 FIF0 狀態;將
顯示的數據寫入顯示RAM中……
下面用8031彙編程式對8279初始化
ORG 0000H
MOV DPTR,#7000H ; 指向8279數據口
INC DPTR ; 指向8279控制口
MOV A, #00H ; 設定8279工作方式
M0VX @DPTR,A
MOV A , #0GFH ; 清除8279內部顯示RAM狀態
MOVX @DPTR, A
MOV A , #22H
MOVX @DPTR , A ; 設定8279分頻係數
LOOP:MOVX A , @DPTR
JB ACC.7 , LOOP ; 顯示RAM清除完畢嗎?
MOV A , 80H ; 指向第一位數碼管
MOVX @DPTR , A
MOV A , 9FH ; 輸出"1"一個字形
MOV DPTR ,#7000H
MOVX @DPTR , A
INC DPTR
LOOP1:M0VX A , @DPTR
AND A , #07H
CJNE A , #00H,L00P2
AJMP LOOP1 ; 無鍵按下轉
.
.
.
鍵值,由8279的行掃描信號(SL0-SL3)與列信號(RL0-RL7)組成,不同組合的矩陣將得到不同鍵,但
在同一矩陣中不會有相同的鍵值,這對初學者編制鍵顯示程式大為方便.下表是通用鍵盤板鍵值:
名稱 0 1 2 3 4 5 6 7 8 9
鍵值 C1 C8 C9 D0 D8 E0 C2 CA D1 D9
名稱 A B C D E F LAST NEXT EXEC
鍵值 DA C3 CB D2 D3 DB E3 E2 E1
字形,與數碼管的極性.連線方式有關,8279上一般選用
共陰極數碼管,通用鍵盤板字形代碼如下:
字形 0 1 2 3 4 5 6 7
代碼 0C 9F 4A 0B 99 29 28 8F
字形 8 9 A B C D E F
代碼 08 09 88 38 6C 1A 68 F8
要點亮一個數碼管必須選通位和字形,鍵盤顯示板的8個數碼管的位地址如下:
數碼管 LED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8
位地址 80 81 82 83 84 85 86 87