用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:44:03
接收到“读键盘数据指令”,则输出当前按键的键盘代码;如果在接收到“读键盘数据指令”时没有有效按键,ZLG7289A将输出FFH(11111111B)。

(4)其它指令

除以上几个指令外,ZLG7289A还具有下载数据但不译码、闪烁控制、消隐控制、段点亮指令、段关闭等指令,限于篇幅,此处不再详述。

图2

4 典型应用

ZLG7289A 的典型应用电路如图2所示,图中,ZLG7289A 应连接共阴式数码管,应用中无需用到的数码管和键盘可以不连接,因而可省去数码管。此外,设置消隐属性也不会影响键盘的使用。

由于ZLG7289采用的是循环扫描的工作方式,因此,如果采用普通的数码管,亮度可能不够,故应采用高亮度或超高亮度的数码管,且尺寸也不宜选的过大,一般字符高度不超过1 英寸,如使用大型的数码管,则应选用适当的驱动电路。

ZLG7289A的RESET复位端在一般情况下,可以直接和VCC相连;而在需要较高可靠性的情况下,则可以连接外部复位电路或直接由MCU 控制。在上电或RESET 端由低电平变为高电平后,通常要经过大约18~25ms的时间,ZLG7289A才会进入正常工作状态。

图3

5 应用实例

图3是以AT89C51单片机为例给出的ZLG7289A与单片机的接口电路。图中,AT89C51所用时钟频率为12MHz如果使用不同的CPU时钟频率,则应注意调整延时时间。下面给出的是该系统的部分程序:

;*****************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定时

START_DELAY: MOV TIMER1,#255

START_DELAY1: DJNZ TIMER1,START_DELAY1

DJNZ TIMER,START_DELAY

MOV DATA_OUT,#10100100B ;复位指令

CALL SEND ;发指令到ZLG8279A

SETB CS ;恢复CS高电平

MAIN:JB KEY,MAIN ;是否有键按下

MOV DATA_OUT,#00010101B  ;有键按下,发读键盘指令

CALL SEND

CALL RECEIVE

SETB CS  ;CS置高电平

MOV B,#10 ;16进制到BCD码转换

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 ;下载数据且译码指令

CALL SEND

MOV DATA_OUT,TEN ;发送十位数字到ZLG8279A

CALL SEND

MOV DATA_OUT,#10000000B ;下载数据且译码指令

CALL SEND

MOV DATA_OUT,B ;发送个位数字到ZLG8279A;

CALL SEND

SETB CS

WAIT:JNB KEY,WAIT ;等待按键松开

JMP MAIN

;**** 发送一个字节到ZLG8279A,高位在前

SEND: MOV BIT_COUNT,#8 ;记数器设定

CLR CS  ;CS置低电平

CALL LONG_DELAY ;长延时子程序

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

MOV DAT,C

SETB CLK ;CLK置高电平

MOV A,DATA_OUT ;待发送数据左移

RL A

MOV DATA_OUT,A

CALL SHORT_DELAY ; 短延时子程序

CLR CLK ; CLK置低电平

CALL SHORT_DELAY

DJNZ BIT_COUNT,SEND_LOOP ;8位是否发送完毕

CLR DAT ;发送完毕,返回

RET

;***接收一个字节到ZLG8279A,高位在前

RECEIVE:MOV BIT_COUNT,#8 ;记数器设定

SETB DAT ;设定P1.2(DATA)为高电平输入状态

CALL LONG_DELAY ;

RECEIVE_LOOP: SETB CLK ; CLK置高电平

CALL SHORT_DELAY

MOV A,DATA_IN ;数据左移

RL A

MOV DATA_IN,A

MOV

上一页  [1] [2] [3]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:11,312.50000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号