8279晶片

8279晶片

DB0-- 01 10

本圖片為8279引腳圖本圖片為8279引腳圖
8279採用單±5V電源供電,40腳封裝。
DB0~DB7:雙向數據匯流排,用來傳送8279與CPU之間的數據和命令。
CLK:時鐘輸入線,用以產生內部定時的時鐘脈衝
RESET:復位輸入線,8279復位後被置為字元顯示左端輸入,二鍵閉鎖的觸點回彈型式,程式
時鐘前置分頻器被置為31,RESET信號為高電平有效
CS:片選輸入線,低電平有效,單片機在CS端為低時可以對8279讀/寫操作。
A0:緩衝器低位地址,當A0為高電平時,表示數據匯流排上為命令或狀態, 當為低電平時,表示數據匯流排上為數據。
RD:讀信號輸入線,低電平有效,將緩衝器讀出,數據送往外部匯流排。
WR:寫信號輸入線,低電平有效,將緩立器讀出,將數據從外部數據匯流排寫入8279的緩衝器。
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中有數據時,
此中斷線變為高電平,在FIFO/感測器RAM每次讀出時,中斷線就下降為低電平,若在RAM
中還有信息,則此線重又變為高電平。在感測器工作方式中, 每當探測到感測器信號變
化時,中斷線就變為高電平。
SL0~SL3:掃描線,用來掃描按鍵開關,感測器陣列和顯示數字, 這些可被編程或被解碼。
RL0~RL7:回送線,經過按鍵或感測器開關與掃描線聯接, 這些回送線內部設定有上拉電
路,使之保持為高電平,只有當一個按閉合時,對應的返回線變為低電平;無按鍵閉合時,
均保持高電平。
SHIFT:換位功能,當有開關閉合時被拉為低電平,沒有按下SHIFT開關時,SHIFT輸入端保
持高電平,在鍵盤掃描方式中,按鍵一閉合,按鍵位置和換位輸入狀態一起被存貯起來。
CNTL/STB:當CNTL/STB開關閉合時將其拉到低電平,否則始終保持高電平, 對於鍵盤輸入
方式,此線用作控制輸入端,當鍵被按下時,按鍵位置就和控制輸入狀態一起被存貯起來,
在選通輸入方式中,作選通用,把數據存入FIFO RAM中。
OUTA3~OUTA0及OUTB3~OUTB0:顯示輸出A口及B口,這兩個口是16×4切換的數字顯示。這
兩個連線埠可被獨立控制,也可看成一個8位連線埠。
BD:空格顯示,此輸出端信號用於在數字轉換時將顯示空格或者用顯示空格命令控制其顯示
空格字元。
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尚不可用.
3.顯示功能塊包括:顯示暫存器,16X8顯示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 接口功能塊
8279通過數據緩衝器與I/O控制,使8279與CPU系統匯流排接口,I/O控制部分用CS.A0.RD和WR四條
線控制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,可得到前面規定的掃描和反跳時間,
則分頻係數為;外部時鐘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
CPU對8279寫此命令,則確定了 CPU 以顯示器 RAM為數據源進行讀操作,其中AAAA為顯示器
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 ; 無鍵按下轉
LOOP2:MOV DPTR ,#7000H ;有鍵按下將鍵值送累加器AMOVX A , @DPTR
.
.
.
鍵值,由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

相關詞條

熱門詞條

聯絡我們