首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 理工论文 → 电子通信 |
|
|||||
串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用 | |||||
收集整理:佚名 来源:本站整理 时间:2009-01-10 22:44:03 点击数:[] ![]() |
|||||
接收到“读键盘数据指令”,则输出当前按键的键盘代码;如果在接收到“读键盘数据指令”时没有有效按键,ZLG7289A将输出FFH(11111111B)。 (4)其它指令 除以上几个指令外,ZLG7289A还具有下载数据但不译码、闪烁控制、消隐控制、段点亮指令、段关闭等指令,限于篇幅,此处不再详述。 ZLG7289A 的典型应用电路如图2所示,图中,ZLG7289A 应连接共阴式数码管,应用中无需用到的数码管和键盘可以不连接,因而可省去数码管。此外,设置消隐属性也不会影响键盘的使用。 由于ZLG7289采用的是循环扫描的工作方式,因此,如果采用普通的数码管,亮度可能不够,故应采用高亮度或超高亮度的数码管,且尺寸也不宜选的过大,一般字符高度不超过1 英寸,如使用大型的数码管,则应选用适当的驱动电路。 ZLG7289A的RESET复位端在一般情况下,可以直接和VCC相连;而在需要较高可靠性的情况下,则可以连接外部复位电路或直接由MCU 控制。在上电或RESET 端由低电平变为高电平后,通常要经过大约18~25ms的时间,ZLG7289A才会进入正常工作状态。 图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 Tags: |
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |