新聞中心

EEPW首頁(yè) > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 串行接口LED數(shù)碼管及鍵盤管理器件ZLG7289A的原理與應(yīng)用

串行接口LED數(shù)碼管及鍵盤管理器件ZLG7289A的原理與應(yīng)用

作者: 時(shí)間:2004-12-08 來(lái)源:網(wǎng)絡(luò) 收藏

摘要:介紹了。該芯片具有SPI串行,可同時(shí)驅(qū)動(dòng)8位共陰式管(或64只獨(dú)立),還可連接多達(dá)64鍵的矩陣,單塊芯片即可完成LED顯示、等全部功能。文章給出了的特點(diǎn)、引腳功能、指令說(shuō)明和經(jīng)典電路,并以單片機(jī)AT89C51為例,給出了其電路及相應(yīng)源程序。

關(guān)鍵詞:顯示;鍵盤接口;SPI

1 概述

ZLG7289A是廣州周立功單片機(jī)發(fā)展有限公司自行設(shè)計(jì)的、具有SPI串行接口功能的、可同時(shí)驅(qū)動(dòng)8位共陰式管(或64只獨(dú)立LED)的智能顯示驅(qū)動(dòng)芯片。該芯片同時(shí)可連接多達(dá)64鍵的鍵盤矩陣。單塊芯片即可完成LED顯示以及鍵盤接口的全部功能。

ZLG7289A內(nèi)部含有譯碼器,可直接接收BCD碼或16進(jìn)制碼,并同時(shí)具有2種譯碼方式,此外還具有多種控制指令,如消隱、閃爍、左移、右移、段尋址等。

通過(guò)ZLG7289A自身所具有的片選信號(hào),可以方便地實(shí)現(xiàn)多于8 位顯示或多于64 鍵的鍵盤接口。該芯片的主要特性如下:

●帶有串行接口,無(wú)需外圍元件即可直接驅(qū)動(dòng)LED;

●各位可獨(dú)立控制譯碼/不譯碼及消隱和閃爍屬性;

●具有(循環(huán))左移/(循環(huán))右移指令;

●具有段尋址指令,可方便地控制獨(dú)立的LED顯示器;

●內(nèi)含64鍵鍵盤控制器以及去抖動(dòng)電路;

●可完全替代其它公司的8279、8155、8255等系列顯示

2 引腳說(shuō)明

ZLG7289A芯片具有標(biāo)準(zhǔn)的DIP28和SOIC28兩種封裝形式。其引腳排列如圖1所示,各引腳的功能說(shuō)明見(jiàn)表1所列。

表1 ZLG7289A引腳功能說(shuō)明

引 腳名 稱說(shuō) 明
1,2VDD正電源
3,5NC不連接,必須懸空
4VSS接地
6CS片選輸入。此腳為低電平時(shí),可向芯片發(fā)送指令及讀取鍵盤數(shù)據(jù)
7CLK同步時(shí)鐘輸入端。向芯片發(fā)送數(shù)據(jù)及讀取鍵盤數(shù)據(jù)時(shí),此引腳電平上升沿表示數(shù)據(jù)有效
8DATA串行數(shù)據(jù)輸入/輸出端。當(dāng)芯片接收指令時(shí),此引腳為輸入端;當(dāng)讀取鍵盤數(shù)據(jù)時(shí),此引腳在讀指令最后一個(gè)時(shí)鐘的下降沿變?yōu)檩敵龆恕?/TD>
9KEY按鍵有效輸出端。平時(shí)為高電平,當(dāng)檢測(cè)到有效按鍵時(shí),此引腳變?yōu)榈碗娖?/TD>
10~16SG~SA段ga驅(qū)動(dòng)輸出
17DP小數(shù)點(diǎn)驅(qū)動(dòng)輸出
18~25DIG0~DIG7數(shù)字0~7驅(qū)動(dòng)輸出
26CLKOUT振蕩輸出端
27RCRC振蕩器連接端
28RESET復(fù)位端。低電平有效,當(dāng)RESET端由低電平變?yōu)楦唠娖胶?,ZLG7289A大約經(jīng)過(guò)18~25ms的時(shí)間才會(huì)進(jìn)入正常工作狀態(tài)

3 控制指令說(shuō)明

ZLG7289A 的控制指令分為二大類:純指令和帶有數(shù)據(jù)的指令。

3.1 純指令

純指令包括復(fù)位(清除)指令(0A4H)、測(cè)試指令(0BFH)、左移指令(0A1H)、 右移指令(0A0H)、 循環(huán)左移指令(0A3H)、 循環(huán)右移指令(0A2H)等。下面以復(fù)位(清除)指令(0A4H)為例來(lái)進(jìn)行說(shuō)明,該指令的格式如下:

D7D6D5D4D3D2D1D0
10100100

當(dāng)ZLG7289A 接收到該指令后,將所有的顯示清除,所有設(shè)置的字符消隱、閃爍等屬性也被一起清除。執(zhí)行該指令后,芯片所處的狀態(tài)與系統(tǒng)上電后所處的狀態(tài)一樣。

3.2 帶有數(shù)據(jù)的指令

(1)下載數(shù)據(jù)且按方式0譯碼指令

該指令的格式如下:

D7D6D5D4D3D2D1D0
10000a2a1a0
D7D6D5D4D3D2D1D0
DPXXXd3d2d0d1

該命令由二個(gè)字節(jié)組成。前半部分為指令,其中a2 a1 a0 為位地址,d0~d3為數(shù)據(jù)。具體分配方式如表2所列。當(dāng)系統(tǒng)接收到此指令時(shí)(ZLG7289A將按譯碼方式0進(jìn)行譯碼)具體的譯碼方式如表3所列。小數(shù)點(diǎn)的顯示可由DP位控制,DP為1時(shí),小數(shù)點(diǎn)顯示,DP為0時(shí),小數(shù)點(diǎn)不顯示。在該指令格式中,x表示沒(méi)有影響。

表2 位地址分配表

a2a1a0顯示位
0001
0012
0103
0114
1005
1016
1107
1118

表3 譯碼方式表

d0~d3d3d2d1d07段顯示
00H00000
01H00111
02H00002
03H00113
04H01004
05H01015
06H01106
07H01117
08H10008
09H10019
0AH1010-
0BH1011E
0CH1100H
0DH1101L
0EH1110P
0FH1111空無(wú)顯示

(2)下載數(shù)據(jù)且按方式1譯碼指令

這種指令與上一個(gè)指令基本相同。所不同的是,該指令的d0~d3對(duì)應(yīng)的數(shù)據(jù)位0AH~0FH分別為七段顯示中的A、B、C、D、E、F。該指令的具體格式如下:

D7D6D5D4D3D2D1D0
11001a2a1a0
D7D6D5D4D3D2D1D0
DPXXXd3d2d0d1

(3) 讀鍵盤數(shù)據(jù)指令

該指令從ZLG7289A讀出當(dāng)前的按鍵代碼,格式如下:

D7D6D5D4D3D2D1D0
00010101
D7D6D5D4D3D2D1D0
d7d6d5d4d3d2d0d1

與其它指令不同的是,此命令的前一個(gè)字節(jié)0001010B 為單片機(jī)傳送到ZLG7289A的指令,而后一個(gè)字節(jié)d0~d7則為ZLG7289A返回的按鍵代碼。 其范圍為0~3FH(無(wú)鍵按下時(shí)為0xFF)。在此指令的前半段,ZLG7289A 的DATA 引腳處于高阻輸入狀態(tài),可以用來(lái)接收來(lái)自微處理器的指令;在指令的后半段,DATA 引腳從輸入狀態(tài)轉(zhuǎn)為輸出狀態(tài),此時(shí)將輸出鍵盤代碼的值。故微處理器連接到DATA 引腳的I/O口應(yīng)當(dāng)有一個(gè)從輸出態(tài)到輸入態(tài)的轉(zhuǎn)換過(guò)程。

當(dāng)ZLG7289A檢測(cè)到有效的按鍵時(shí),KEY 腳將從高電平變?yōu)榈碗娖?,并一直保持到按鍵結(jié)束。在此期間,如果ZLG7289A 接收到“讀鍵盤數(shù)據(jù)指令”,則輸出當(dāng)前按鍵的鍵盤代碼;如果在接收到“讀鍵盤數(shù)據(jù)指令”時(shí)沒(méi)有有效按鍵,ZLG7289A將輸出FFH(11111111B)。

(4)其它指令

除以上幾個(gè)指令外,ZLG7289A還具有下載數(shù)據(jù)但不譯碼、閃爍控制、消隱控制、段點(diǎn)亮指令、段關(guān)閉等指令,限于篇幅,此處不再詳述。

圖2

4 典型

ZLG7289A 的典型電路如圖2所示,圖中,ZLG7289A 應(yīng)連接共陰式數(shù)碼管,應(yīng)用中無(wú)需用到的數(shù)碼管和鍵盤可以不連接,因而可省去數(shù)碼管。此外,設(shè)置消隱屬性也不會(huì)影響鍵盤的使用。

由于ZLG7289采用的是循環(huán)掃描的工作方式,因此,如果采用普通的數(shù)碼管,亮度可能不夠,故應(yīng)采用高亮度或超高亮度的數(shù)碼管,且尺寸也不宜選的過(guò)大,一般字符高度不超過(guò)1 英寸,如使用大型的數(shù)碼管,則應(yīng)選用適當(dāng)?shù)尿?qū)動(dòng)電路。

ZLG7289A的RESET復(fù)位端在一般情況下,可以直接和VCC相連;而在需要較高可靠性的情況下,則可以連接外部復(fù)位電路或直接由MCU 控制。在上電或RESET 端由低電平變?yōu)楦唠娖胶?,通常要?jīng)過(guò)大約18~25ms的時(shí)間,ZLG7289A才會(huì)進(jìn)入正常工作狀態(tài)。

圖3

5 應(yīng)用實(shí)例

圖3是以AT89C51單片機(jī)為例給出的ZLG7289A與單片機(jī)的接口電路。圖中,AT89C51所用時(shí)鐘頻率為12MHz?如果使用不同的CPU時(shí)鐘頻率,則應(yīng)注意調(diào)整延時(shí)時(shí)間。下面給出的是該系統(tǒng)的部分程序:

;*****************RAM定義

BIT_COUNT DATA 07FH

TIMER DATA 07EH

TIMER1 DATA 07DH

TEN DATA 07CH

DATA_IN DATA 020H

DATA_OUT DATA 021H

;**************I/O定義

DAT BIT P0.6 ;ZLG8279A的 DATA,連接AT89C51的P0.6

KEY BIT P0.7 ?; ZLG8279A的KEY,連接AT89C51的P0.7

CS BIT P0.4 ?; ZLG8279A的CS,連接AT89C51的P0.4

CLK BIT P0.5 ?; ZLG8279A的CLK,連接AT89C51的P0.5

ORG 0000H

AJMP START

ORG 0030H

START:MOV SP,#2FH ?;堆棧定義

MOV P1,#11011011B ?;I/O初始化

MOV TIMER,#50 ? ;25ms定時(shí)

START_DELAY: MOV TIMER1,#255

START_DELAY1: DJNZ TIMER1,START_DELAY1

DJNZ TIMER,START_DELAY

MOV DATA_OUT,#10100100B ?;復(fù)位指令

CALL SEND ;發(fā)指令到ZLG8279A

SETB CS ?;恢復(fù)CS高電平

MAIN:JB KEY,MAIN ?;是否有鍵按下

MOV DATA_OUT,#00010101B ? ;有鍵按下,發(fā)讀鍵盤指令

CALL SEND

CALL RECEIVE

SETB CS ? ;CS置高電平

MOV B,#10 ?;16進(jìn)制到BCD碼轉(zhuǎn)換

MOV A,DATA_IN

DIV AB

MOV TEN,A

MOV DATA_OUT,#10100001B ?;左移指令

CALL SEND

MOV DATA_OUT,#10100001B

CALL SEND

MOV DATA_OUT,#10000001B ;下載數(shù)據(jù)且譯碼指令

CALL SEND

MOV DATA_OUT,TEN ?;發(fā)送十位數(shù)字到ZLG8279A

CALL SEND

MOV DATA_OUT,#10000000B ;下載數(shù)據(jù)且譯碼指令

CALL SEND

MOV DATA_OUT,B ?;發(fā)送個(gè)位數(shù)字到ZLG8279A;

CALL SEND

SETB CS

WAIT:JNB KEY,WAIT ?;等待按鍵松開(kāi)

JMP MAIN

;**** 發(fā)送一個(gè)字節(jié)到ZLG8279A,高位在前

SEND: MOV BIT_COUNT,#8 ?;記數(shù)器設(shè)定

CLR CS ? ;CS置低電平

CALL LONG_DELAY ;長(zhǎng)延時(shí)子程序

SEND_LOOP:MOV C,DATA OUT.7 ;輸出1位

MOV DAT,C

SETB CLK ?;CLK置高電平

MOV A,DATA_OUT ;待發(fā)送數(shù)據(jù)左移

RL A

MOV DATA_OUT,A

CALL SHORT_DELAY ?; 短延時(shí)子程序

CLR CLK ?; CLK置低電平

CALL SHORT_DELAY

DJNZ BIT_COUNT,SEND_LOOP ;8位是否發(fā)送完畢

CLR DAT ?;發(fā)送完畢,返回

RET

;***接收一個(gè)字節(jié)到ZLG8279A,高位在前

RECEIVE:MOV BIT_COUNT,#8 ;記數(shù)器設(shè)定

SETB DAT ?;設(shè)定P1.2(DATA)為高電平輸入狀態(tài)

CALL LONG_DELAY ;

RECEIVE_(tái)LOOP: SETB CLK ?; CLK置高電平

CALL SHORT_DELAY

MOV A,DATA_IN ?;數(shù)據(jù)左移

RL A

MOV DATA_IN,A

MOV C,DAT ;讀取一位數(shù)據(jù)

MOV DATA_IN.0,C

CLR CLK

CALL SHORT_DELAY

DJNZ BIT_COUNT,RECEIVE_(tái)LOOP ?; 8位是否接收完畢

CLR DAT ; 重設(shè)DAT口為低電平(輸出狀態(tài))

RET

;**************延時(shí)子程序

LONG_DELAY: MOV TIMER,#25 ;設(shè)定延時(shí)時(shí)間為50μs

DELAY_LOOP: DJNZ TIMER,DELAY_LOOP

RET

SHORT_DELAY:MOV TIMER,#4 ;設(shè)定延時(shí)時(shí)間為50μs

SHORT_LP: DJNZ TIMER,SHORT_LP

RET

END

6 結(jié)束語(yǔ)

ZLG8279A具有的特點(diǎn)和豐富的指令系統(tǒng),使得由其組成的LED顯示和鍵盤電路具有外圍電路簡(jiǎn)單,功能強(qiáng)大,使用方便,可靠性高,與MCU接口簡(jiǎn)單等特點(diǎn),是LED顯示和鍵盤電路的首選。筆者利用該芯片制作的“學(xué)生提問(wèn)指示儀”,經(jīng)使用,效果良好。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉