基于ZLG7290键盘显示系统设计

合集下载

基于ZLG7289B的键盘和LED显示/指示设计

基于ZLG7289B的键盘和LED显示/指示设计
p o r mm e n a i - s d. a ea pid t h e in frsmpec n r l q ime t ic i. rg a d a de sl u e I c n b p l o t ed sg o i l o to up n r ut y t e e c Ke r sZLG7 8 B;e ;ii u eLED ywo d : 2 9 k yn xet b ;
ZHAI a f n . F —a g Y AN i fn Q u—e g,ZHANG a - e g Tin p n
( p r n f lcr n c n o main a d E e ti l n ie r gA y n s t t o e h o o y n a g4 5 0 ) De a t me t e t i f r t n lcr a E g n ei n a gI t u e f c n lg y n 5 0 0 oE o I o c n n i T A Ab ta tKe b a d a d LED ipa /n iai n cr uti t e i o tn a to n el e te u p n . a e u e n sr c : y o r n ds ly id c to i i s h mp ra tp r fi tlg n q i me tI c n b sd i c i t
p r m ee s t n n d t ip a i g o e u t n ia ig. i a e ito u e ir c n r l r it ra e ic i a a tr e t g a d ae d s lyn r r s l i idc t n Ths p p r n r d c s a m c o o tol ne fc cr u t e

基于键盘与数码管控制芯片zlg7289A人机接口电路的设计及应用

基于键盘与数码管控制芯片zlg7289A人机接口电路的设计及应用

TA G L — ig、 u Mi , I i— ig. I G G n C AN e —kn ̄ N i r n w u n L U Te bⅡ 1 L N ag, H G B n ag
( . n rl s i l fNa j g Mi tr go 、Na n in s 10 2 hn ; nigUnv ri f CIa d 1 Ge ea Ho pt ni l ayRe in ao n i nigJa g u2 0 0 ,C ia 2 Na n ie st o n J J y S TEC H,Na jn in s 10 4 C ia n igJa g u2 0 9 、 h n )
12 z 7 8A 与数 码 管及键 盘 的连接 . l 29 g 图 1为 zg 2 9 的应 用 电路 ,增 加 相应 的下拉 l7 8A 电阻 和位选 电 阻 即可扩 展 为用 以控 制 6 键 键 盘矩 阵 4 的典型应 用 。zg 2 9 应 连接共 阴式 数码管 , 用 中 l7 8A 应
要 】本 文主要介绍 了以串行接 口的 8位 L ED数码管及 6 4键键盘控制芯片 zg 2 9 为核心 的人 机接 口电路的设 计方 l7 8A
法, 详细 阐述 了 zg 2 9 的工作原理与使用原别 , l7 8 A 最后给 出它在新型仪器精 密神经 阈值刺激仪 中的应 用实例。 178 A z9 2 9
无 需用 到 的数 码管 和键 盘 可以不 连接 , 省去数 码 管 和 同时驱动 8 位共 阴式数码管( 6 只独立 L D) 对 数码 管设 置消 隐属性 均 不会影 响键 盘 的使用 。使用 或 4 E 的智 能显示驱动芯片,以它为核心设计的键盘 、 显示电路 按 键 电 路 中 须 有 相 应 的 下 拉 电 阻 如 R5 阻 值 为 ,

显示和键盘智能控制芯片zlg7289A的原理及应用

显示和键盘智能控制芯片zlg7289A的原理及应用

●应用与设计显示和键盘智能控制芯片 zl g 7289A 的原理及应用南京军区南京总医院吴敏 汤黎明 刘铁兵 凌刚The Pr i nc i p le and A pp l i cation zl g 7289Aof Wu M i nT an g Li mi n gLiu T i ebi n gLi n g G an g摘要 : 详细介绍了数码管及键盘智能芯片 z l g 7289A 的基本原理 、主要特点与使用原则 , 给出了以z lg7289A 芯片为核心设计的人机接口电路及程序框图 。

关键词 :串行接口 ; 键盘控制 ; 数码管 ;zl g 7289A文章编号 : 1006 - 6977 ( 2002) 08 - 0021 - 03分类号 : TP273 文献标识码 :B键盘 、显示电路是现代数字式智能仪器不可或 缺的组成部分 。

在单片机应用系统中 , 键盘技术和 显示接口技术已经比较成熟 , 典型的有 8255 和串行 口扩展的键盘 、显示电路 ; 由 8155 并行扩展口构成 的键盘 、显示电路 ; 以及使用较多的以 Intel 8279 (一 种通用的可编程键盘 、显示接口器件) 为核心的译码 键盘 、显示电路等 。

本文介绍了一种全新的键盘 、显示电路 ,它是以 一片具有串行接口的 、可同时驱动 8 位共阴式数码 管 (或 64 只独立 LE D ) 的智能显示驱动芯片 z l g 7289A 为核心的电路 , 其设计的独到之处是电路硬件较为 简单 , 无需添加锁存器 、驱动器和寄存器等 , 耗电较 小 ,软件设计也无需进行显示译码 ,从而省去了静态 显示扩展芯片 , 节省了 CPU 的占用时间 , 因而使用 更方便 ,适于推广 。

典型电路图 1 为 z l g 7289A 的典型应用电路 , 2增加相应的下拉电阻和位选电阻即可扩展为可控制 64 键键盘 矩阵的典型应用 。

2. 1 zl g 7289A 与数码管及键盘的连接z l g 7289A 通常应连接共阴式数码管 , 应用中无 需用到的数码管和键盘可以不接 , 省去数码管和对数码管设置消隐属性均不影响键盘的使用 。

8279键盘显示实验

8279键盘显示实验

8279键盘显示实验一、实验目的与要求了解8279的内部结构、工作原理;了解8279与8088的接口逻辑;掌握对8279的编程方法,掌握使用8279扩展键盘、显示器的方法。

认真预习,做好实验前的准备工作,自行编写程序,填写实验报告二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、编写程序:利用8279实现对F4区的键盘扫描,将键号显示于8位数码管上2、按图连线,运行程序,观察实验结果,能熟练运用8279扩展显示器和键盘。

四、实验原理图五、实验步骤1、连线说明:2、运行程序,观察实验结果(任意按下F4区4X4键盘几个键,它上面的8个LED显示器会将按键的编码从左至右依次显示出来),可依此验证对8279芯片操作的正确性。

六、演示程序.MODEL TINYCMD_8279 EQU 0BF01H ;8279命令字、状态字地址DATA_8279 EQU 0BF00H ;8279读写数据口的地址.STACK 100.DATAKEYCOUNT DB ?LED_TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB 080H,90H,88H,83H,0C6H,0A1H,86H,8EH.CODESTART: MOV AX,@DATAMOV DS,AXNOPCALL INIT8279 ;初始化子程序MOV KEYCOUNT,0START1: CALL SCAN_KEY ;键扫描JNC START1 ;没有按键XCHG AL,KEYCOUNTINC ALCMP AL,9JNZ START2MOV KEYCOUNT,0CALL INIT8279_1;8个数码块全有字符显示后,再按键,清除显示JMP START1START2: XCHG AL,KEYCOUNTCALL KEY_NUM ;键值转换为键号LEA BX,LED_TAB ;字型码表XLATCALL WRITE_DATAJMP START1START_EXIT: JMP $;8279初始化INIT8279 PROC NEARMOV DX,CMD_8279 ;CMD_8279为写命令地址、读状地址MOV AL,34H;可编程时钟设置,设置分频系数(20分频)OUT DX,ALMOV AL,0;8*8字符显示,左边输入,外部译码键扫描方式OUT DX,AL; MOV AL,0A0H; OUT DX,ALCALL INIT8279_1RETINIT8279 ENDPINIT8279_1 PROC NEARCALL CLEAR ;清显示MOV AL,90H ;从第一个数码管开始移位显示OUT DX,ALRETINIT8279_1 ENDPCLEAR PROC NEARMOV DX,CMD_8279MOV AL,0DEH ; 清除命令OUT DX,ALWAIT1: IN AL,DXTEST AL,80HJNZ WAIT1 ; 显示RAM清除完毕吗?RETCLEAR ENDPSCAN_KEY PROC NEARMOV DX,CMD_8279IN AL,DX ;读状态READ_FIFO: AND AL,7JZ NO_KEY ;是否有键按下READ: MOV AL,40HOUT DX,AL ;读FIFO RAMMOV DX,DATA_8279IN AL,DXSTC ;有键SCAN_KEY1: RETNO_KEY: CLC ;无键按下,清CYJMP SCAN_KEY1SCAN_KEY ENDPKEY_NUM PROC NEARAND AL,3FHRETKEY_NUM ENDPWRITE_DATA PROC NEARMOV DX,DATA_8279OUT DX,ALRETWRITE_DATA ENDPEND START七、实验扩展及思考重新编写软件实验二,自己编写键扫描、显示程序。

ZLG7290扩展键盘在ARM Linux系统中的应用

ZLG7290扩展键盘在ARM Linux系统中的应用

ZLG7290扩展键盘在ARM Linux系统中的应用
李直霖
【期刊名称】《机电工程》
【年(卷),期】2011(028)010
【摘要】针对人机界面按键需求多、资源要求少,模块化,方便移植等问题,提出了将一款支持I2C总线数据格式、提供键盘中断信号的键盘扫描管理芯片ZLG7290应用于ARM Linux系统中.按键通过I2C总线主机通信的方式,克服了传统方法的不足,节约了硬件资源.研究结果表明,该方案便捷、灵活地解决了上述矛盾,稳定、可靠,具有实际应用推广价值.
【总页数】4页(P1253-1256)
【作者】李直霖
【作者单位】中煤科工集团重庆研究院,重庆400037
【正文语种】中文
【中图分类】TP211+.5
【相关文献】
1.嵌入式ARM-Linux系统在便携式测流仪中的应用研究 [J], 蔡雪松;李文会;王卫宁
2.基于ARM的嵌入式Linux系统在便携式医学仪器开发中的应用 [J], 方勇军;苏尚文;王胜军;郭劲松;邓亲恺
3.HMR3300电子罗盘在ARM系统中的应用 [J], 余娟;李晓强
4.Qt/Embedded应用程序在ARM-Linux系统中的开发与应用 [J], 孙巍;冯伟兴
5.键盘扩展设备ZLG7290在linux系统中的驱动设计 [J], 刘燕;黄晓革
因版权原因,仅展示原文概要,查看原文内容请购买。

ZLG7290数码管显示程序

ZLG7290数码管显示程序
buf[0] = cmd0;
buf[1] = cmd1;
b = I2C_Puts(ZLG7290_I2C_ADDR,ZLG7290_CmdBuf,1,buf,2);
return b;
}
/*
函数:ZLG7290_SegOnOff()
功能:段寻址,单独点亮或熄灭数码管(或LED)中的某一段
参数:
seg:取值0~63,表示数码管(或LED)的段号
/*
ZLG7290.c
数码管显示与键盘管理芯片ZLG7290的标准80C51驱动程序C文件
Copyright (c) 2005,广州周立功单片机发展有限公司
All rights reserved.
本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的
*/
#include "I2C.h"
#include "ZLG7290.h"
功能:向ZLG7290发送控制命令
参数:
cmd0:写入CmdBuf0寄存器的命令字(第1字节)
cmd1:写入CmdBuf1寄存器的命令字(第2字节)
返回:
0:正常
1:访问ZLG7290时出现异常
*/
bit ZLG7290_cmd(char cmd0, char cmd1)
{
bit b;
char buf[2];
b:0表示熄灭,1表示点亮
返回:
0:正常
1:访问ZLG7290时出现异常
说明:
在每一位数码管中,段号顺序按照“a,b,c,d,e,f,g,dp”进行
*/
bit ZLG7290_SegOnOff(char seg, bit b)
{

8279键盘显示技术

8279键盘显示技术

键盘、显示器接口芯片8279使用单片机系统中有两种 LED显示方式,即静态显示和动态显示,静态显示的优点是显示效果好,编程简单,但由于输出的每一位都需要锁存,使用的硬件较多;动态显示方式中,各位数码管的a–h端并连在一起,每一时刻只有一位数码管被点亮,各位依次轮流被点亮,硬件电路简单,但由于需要不停地进行刷新显示,降低了CPU的效率,而且编程的工作量很大。

为了解决动态显示中存在的问题,Intel 公司研制出了专用的键盘、显示器接口电路芯片8279,该芯片能自动完成对显示的刷新,同时还可以对键盘自动扫描,识别闭合键的键号,使用非常方便。

8279用A0来区分信息特征,当A0为0时,CPU从8279读出的是状态,写入的是命令,且每个命令也有自己的特征;当A0=1时读出和写入的都是数据。

8279内部有两个缓冲区,即一个8字节的FIFO(First In First Out)键盘RAM 和一个16字节的显示RAM,显示数据时只要将待显示数据的段码写入显示RAM 即可;当有键闭合时,8279会自动执行去抖、得到键值、等待按键释放等操作,最后,将键值存入FIFO RAM中,程序只需从FIFO中读取键值即可,编程十分简单,具体实验线路图17所示。

8279键盘、显示器接口器件是实现人机对话的主要部件,它已为广大用户欢迎和广泛应用。

然而在有些应用场合,既要键盘具有普通的数据输入和控制功能,又要键盘具备按钮功能。

例如,微机控制的注塑机,在手动控制时需要有点动功能:按钮按下进行调模运动,按钮松开,调模运动停止。

本文介绍使8279构成的键盘具有以上功能的实现方法,供读者参考使用。

为了使8279具有合适的键盘、显示功能,首先要对芯片初始化。

可适当地挑选8279的控制字,例如:使8279具有8位显示、右端输入、编码键盘、双键锁定时可选控制字10H.这时每次按键都将产生键特征码,并且存放在FIFOROM 中,同时使8279的IRQ引脚变为高电平,可作为向CPU申请中断信号,如果CPU 是中断开放的,则转向中断服务程序,可在中断服务程序中读取特征码。

基于7279的键盘和LED数码显示的课程设计

基于7279的键盘和LED数码显示的课程设计

基于7279的键盘和LED数码显示的课程设计设计内容2.1 键盘和LED 数码管显示设计按键和显示(通常称为人机接口)是单片机系统的最基础部分,实验仪采用当前应用广泛的HD7279A 串行接口8 位LED 及64 键键盘智能控制芯片,可同时驱动8位共阴式数码管(或64 只独立LED)以及连接多达64 键的键盘矩阵,单片即可完成LED 显示、键盘接口的全部功能。

2.2 设计环境Super ICES-51 80C51 单片机实验仪使用当前流行的Keil C51 开发软件,采用uVision2 集成开发环境。

一、预备知识有关HD7279A 的详细使用说明见使用手册。

二、设计目的掌握HD7279A的使用,熟悉单片机人机接口设计,熟悉I2C总线的应用,提高用户实际应用的能力。

三、设计内容1、设计键盘、LED 显示电路原理图;2、设计程序流程图;3、编程调试,利用HD7279A 控制键盘和显示,要求任意按下键,在LED 最右位显示对应键号值,其余显示值左移一位。

四、参考接线1、使用跳线器连接JP21—1;2、使用导线连接MON51 仿真模块与键盘显示模块的相应的点,如A8 和DAT,A9 和CLK,A10 和CS,INT0 和KEY。

3、五、程序BIT_COUNT DATA 07FH TIMER DATA 07EH TIMER1 DATA 07DH NUM DATA 07CH DATA_IN DATA 020H DATA_OUT DATA 021HDAT BIT P1.2KEY BIT P1.3CS BIT P1.4CLK BIT P1.5ORG 000HJMP STARTORG 100HSTART: MOV SP,#2FHMOV P1,#0FFH ;I/O输入输出定义LCALL LONG_DELAY ;长延时MOV DATA_OUT,#0A4H ;复位LCALL SENDMOV DATA_OUT,#0BFH ;闪烁LCALL SENDSETB CSLCALL DELAYMOV DATA_OUT,#0A4H ;复位MOV P1,#11011011BMOV TIMER,#50START_DELAY: MOV TIMER1,#255START_DELAY1: DJNZ TIMER1,START_DELAY1 DJNZ TIMER,START_DELAYMOV DATA_OUT,#10100100B ;A4H 复位指令CALL S ENDSETB CSMAIN: JB KEY,MAINMOV DATA_OUT,#00010101B ;15H 读键盘数据指令CALL S ENDCALL R ECEIVESETB CSMOV A,DATA_INMOV NUM,AMOV DATA_OUT,#10100001BCALL S ENDMOV DATA_OUT,#11001000BCALL S ENDMOV A,NUMMOV DATA_OUT,ACALL S ENDSETB CSWAIT: JNB KEY,WAIT ;等待按键松开JMP MAIN;******************************************* ; 向HD7279发送字符;******************************************* SEND: MOV BIT_COUNT,#8CLR CSCALL L ONG_DELAYSEND_LOOP: MOV C,DATA_OUT.7MOV DAT,CSETB CLK ; CLKMOV A,DATA_OUT ;RL AMOV DATA_OUT,ACALL SHORT_DELAY ;CLR CLK ; CLKCALL SHORT_DELAY ;DJNZ BIT_COUNT,SEND_LOOP ; 8CLR DAT ;RET;******************************************* ; 从HD7279接受字符;*******************************************RECEIVE: MOV BIT_COUNT,#8SETB DATCALL LONG_DELAYRECEIVE_LOOP: SETB CLKCALL SHORT_DELAY ;MOV A,DATA_IN ;RL AMOV DATA_IN,AMOV C,DAT ;MOV DATA_IN.0,CCLR CLK ; CLKCALL SHORT_DELAYCLR DAT ; DAT ( )DJNZ BIT_COUNT,RECEIVE_LOOP ; 8CLR DAT ;RET;******************************************* ; 延时子程序;*******************************************LONG_DELAY: MOV TIMER,#25 ; 50uSDELAY_LOOP: DJNZ TIMER,DELAY_LOOPRETSHORT_DELAY: MOV TIMER,#4 ; 8uSSHORT_LP: DJNZ TIMER,SHORT_LPRETDELAY: MOV R0,#40DEL3: MOV R1,#250DEL4: MOV R2,#250DEL5: DJNZ R2,DEL5DJNZ R1,DEL4DJNZ R0,DEL3RETEND。

键盘显示控制芯片ZLG7289A在仪器仪表中的应用

键盘显示控制芯片ZLG7289A在仪器仪表中的应用
维普资讯
2 0 年己 0 B 月 第2 卷 第己 7 期
键 显 示 制 芯 片 Z G7 8 A 在 仪 器 仪 表 中 的 应 用 盘 控 L 29
李海真 孙运 强 王晨 光
005) 3 0 1 ( 中北 大 学 信 息 与 通信 工 程 学 院 太 原
Ab ta t sr c :K e n ipa ic i i h m p ra tc m p n n a to n tu n n tr a c o l h p r m ee ya dd s ly cr ut s t e i o tn o o e tp r fi sr me ta d me e ,c n a c mp i a a tr s
关键词 : I 2 9 键 盘显示 ; Z 78 A; 仪器仪表
中 图分 类 号 :T 2 6 P 1 文 献 标 识 码 :A
Ap i a i n o y a d dip a hi plc to fke n s l y c p ZLG7 8 A n 2 9 i
t ns r m e nd m e e he i t u nt a tr

要: 键盘及显示 电路是现代仪器仪表中的重要组成部 分 , 主要用 于完成 各种参 数 的设 置和数 据显示 , 本文对 仪器仪表 中
普遍使用的键盘显示接 口技术进行 了分 析, 提出了~种基于可编程键盘 显示专用芯片 Z G 8 A实现键盘 显示的设计方法 。 L #2 9 文 中简要介绍了 Z G 2 9 的功能 、 L 78A 结构和工作原理, 并通过实例从硬件 和软件 两方面阐述了其在仪 器仪表 的应用 。该设计 具有接 口简单 , 围元件少 、 外 编程容易等特点 , 在仪器仪表控制系统 中具有广泛 的应用前景 。

ZLG7290 键盘接口与LED驱动器

ZLG7290 键盘接口与LED驱动器
keyircvstrzlg72900x01buf是否有效的按键动作symbol普通键键值time按键的时间次数signdp如显示一个则输出0xfcuint8duanma100xfc0x600xda0xf20x660xb60xbe0xe00xfe0xf6isendstrzlg72900x10duanma显示初值07命令缓冲区cmdbuf0cmdbuf1地址07h08h复位值00h00h于传输指令左移指令纯指令该指令使与scannum相对应的显示数据和显示属性闪烁自右向左移动n位n3n01移动后右边n位无显示与scannum不相关的显示数据和显示属性则不受影响
ISendStr(ZLG7290, 0x10, duanma, 8); // 显示初值 显示初值0-7
命令缓冲区(CmdBuf0~ CmdBuf1) 地址07H ~08H 复位值00H~00H 用 于传输指令
左移指令(纯指令) 左移指令(纯指令)
该指令使与ScanNum 相对应的显示数据和显示属性 该指令使与ScanNum 闪烁自右向左移动N 闪烁自右向左移动N位 则不受影响。 则不受影响。 +1,移动后右边N N3~N0 +1,移动后右边N 位无显示与ScanNum 位无显示与ScanNum 不相关的显示数据和显示属性
ZLG7290 I2C 接口键盘及LED 驱动器
——I2C在芯片控制中的应用 在芯片控制中的应用
键值寄存器(Key): 地址01H, 复位 值00H。 Key 表示被压按键的键值。 当Key=0 时表示没有键被压按。
连击次数计数器(RepeatCnt):地址 02H 复位值00H RepeatCnt=0 时表示 单击键RepeatCnt 大于0 时表示键的 连击次数用于区别出单击键或连击键 判断连击次数可以检测被按时间。

8279可编程键盘显示控制器j[1]

8279可编程键盘显示控制器j[1]

8279内部结构—键盘功能模块 内部结构 键盘功能模块
在FIFO存储器中的键盘数据格式如下:
D7 CTRL/STB D6 SHIFT D5 D4 D3 扫描 D2 D1 D0 回馈
CTRL和SHIFT(D7和D6)的状态由两个独立的附加开 关输入信号线CTRL/STB和SHIFT的状态来决定, D5、D4、D3三位来自扫描计数器,是按键的行编码; D2、D1、D0三位则是来自列计数器,它们是根据回馈 信号而确定的按键的列编码。
8279内部结构—键盘功能模块 内部结构 键盘功能模块
FIFO/传感器 RAM FIFO/传感器RAM一个双重功能的8字节RAM,用于 存储按键数据。每当有键按下时,采集到的键值顺序写 入FIFO/传感器 RAM 单元,而每次读出时,总是按输入 的顺序,将最先输入的数据读出。 FIFO状态寄存器 FIFO状态寄存器用于记录FIFO /传感器RAM的工作 状态。其所表示的状态信息有:RAM是满还是空;其中 存有多少字符;是否操作出错等,并根据检测情况,输 出中断申请信号。
命令和状态字--写显示 命令 写显示RAM命令
命令特征位:D7D6D5=100。 命令格式:100 AI AAAA 在CPU写显示RAM之前,设定将要写入的显示 RAM的地址,四位二进制代码AAAA用来寻址显示 RAM AAAA RAM中的一个存储单元。如果自动增量特征位AI=1, 则每次写入后,地址自动加1,使地址指针指向下一 个地址单元。这样,下一次写数便从指针所指的地址 写入,而不必重新设置写显示RAM命令。
命令和状态字--读显示 命令 读显示RAM命令
命令特征位:D7D6D5=011 命令格式:011 AI AAAA 在CPU读显示RAM之前,设定将要读出的显示 RAM的地址,AAAA为显示地址的二进制代码。如果 自动增量特征位AI=1,则每次读出后,地址自动加1, 使地址指针指向下一个地址单元。这样,下一次读数 便从指针所指的地址读出,而不必重新设置读显示 RAM命令。

自动化论文 键盘显示控制器8279应用实验

自动化论文 键盘显示控制器8279应用实验

本科学年实训论文题目键盘显示控制器8279应用实验院系专业名称自动化年级 2008 级学生姓名指导教师2011年07月18日键盘显示控制器8279应用实验摘要在对8279键盘/显示接口分析的基础上,设计实现8位LED七段数码管显示驱动和16键盘输入电路。

利用可编程8279可实现对键盘/显示的自动扫描,以减轻CUP负担,其工作稳定,不会出现误操作,且程序实现简单。

本系统采用8031 单片机与8279 芯片的显示接口组成对LED 数码管应用系统的显示驱动电路。

具有可靠性高、价格低、使用方便等特点,适合数据显示的计算机应用系统使用。

关键词:8279,键盘,LED显示,扫描,接口8279 KEYBOARD DISPLAY CONTROLLER BASED ON THE APPLICATIONABSTRASTIn 8279 keyboard / display interface based on the analysis, design and implementation 8-digit LED seven segment display driver, and keyboard input circuit 16. 8279 can be realized using programmable keyboard / display automatically scans, to reduce the burden of CUP, their job stability, not to misuse, and the procedure simple. The system uses the 8031 and 8279 chip components on the LED display interface applications, digital display drive circuit. High reliability, low price, easy to use features, the computer application for data display system.KEYWORDS: 8279 , keyboard , LED display , scan , interface目录摘要 (II)ABSTRAST ................................................................................................................ I II 第一章引言.. (1)1.1 实验目的 (1)1.2 实验内容 (1)1.2 实验步骤和要求 (1)第二章8279的介绍 (2)2.1 8279功能介绍 (2)2.1.1 数据线 (2)2.1.2 地址线 (2)2.1.3 控制线 (2)2.2 8279的工作方式 (3)2.2.1 键盘工作方式 (3)2.2.2 显示方式 (3)2.2.3 传感器方式 (3)2.3 8279的命令字及其格式 (4)2.3.1 键盘/显示命令 (4)2.3.2 时钟编程命令 (5)2.3.3 读FIFO/传感器RAM命令 (6)2.3.4 读显示RAM命令 (6)2.3.5 写显示RAM命令 (6)2.3.6 显示器禁止写入/熄灭命令 (6)2.3.7 清除(显示RAM和FIFO中的内容)命令 (7)2.3.8 结束中断/出错方式设置命令 (7)2.4 8279的状态字及其格式 (8)2.5 8279数据输入/输出格式 (8)2.5.1 键盘扫描方式数据输入格式 (8)2.5.2 传感器方式及选通方式数据输入格式 (9)2.6 8279译码和编码方式 (9)第三章硬件电路及描述 (11)3.1 74LS138译码器 (11)3.1.1 74LS138集成译码器逻辑图及工作原理 (11)3.1.2 74LS138译码器引脚图和逻辑符号 (12)3.1.3 74LS138译码器的真值表 (13)3.2 74LS244 (14)3.2.1 74LS244引脚图 (14)3.2.2 74LS244的工作极限值 (14)3.2.3 功能表 (14)3.3 4*4矩阵键盘 (14)3.3.1 矩阵键盘的电路 (14)3.3.2 矩阵键盘的工作原理 (15)3.4 数码管动态扫描显示电路 (16)第四章软件设计流程及描述 (17)4.1软件设计流程 (17)4.2 keil软件的介绍和应用 (19)4.2.1 系统概述 (19)4.2.2 Keil C51单片机软件开发系统的整体结构 (19)4.2.3 Keil的优点 (20)第五章总结 (21)参考文献 (22)附录一源程序代码 (23)附录二实验中的软件和硬件记录 (26)第一章引言1.1 实验目的1、掌握8031系统中,扩展8279键盘显示接口的方法。

单片机8279键盘显示实验

单片机8279键盘显示实验

6.4 可编程键盘/显示器接口——Intel 8279Intel 8279是一种可编程键盘/显示器接口芯片,它含有键盘输入和显示器输出两种功能。

键盘输入时,它提供自动扫描,能与按键或传感器组成的矩阵相连,接收输入信息,它能自动消除开关抖动并能对多键同时按下提供保护。

显示输出时,它有一个16×8位显示RAM,其内容通过自动扫描,可由8位或16位LED数码管显示。

1.8279的内部结构和工作原理8279的内部结构框图如图6.28所示。

下面分别介绍电路各部分的工作原理。

1) I/O控制及数据缓冲器数据缓冲器是双向缓冲器,连接内外总线,用于传送CPU和8279之间的命令或数据,对应的引脚为数据总线D0~D7。

I/O控制线是CPU对8279进行控制的引线,对应的引脚为数据选择线A0、片选线、读/写信号线和。

2) 控制与定时寄存器及定时控制控制与定时寄存器用来寄存键盘及显示工作方式控制字,同时还用来寄存其它操作方式控制字。

这些寄存器接收并锁存各种命令,再通过译码电路产生相应的信号,从而完成相应的控制功能。

与其对应的引脚为时钟输入端CLK及复位端RESET。

定时控制电路由N个基本计数器组成,其中,第一个计数器是一个可编程的N级计数器,N为2~31之间的数。

定时控制经软件编程,将外部时钟CLK分频,得到内部所需的100 kHz 时钟,为键盘提供适当的扫描频率和显示扫描时间。

与其相关的引脚是显示熄灭控制端。

3) 扫描计数器扫描计数器由键盘和显示器共用,为它们提供扫描信号。

扫描计数器有两种工作方式:编码方式和译码方式。

按编码方式工作时,计数器作二进制计数,4位计数状态从扫描线SL0~SL3输出,经外部译码器译码后,为键盘和显示器提供扫描信号。

按译码方式工作时,扫描计数器的最低两位被译码后,从SL0~SL3输出,提供了4选1的扫描译码。

与其相关的引脚是扫描线SL0~SL3。

4) 回复缓冲器、键盘去抖及控制在键盘工作方式下,回复线作为行列式键盘的列输入线,相应的列输入信号称为回复信号,由回复缓冲器缓冲并锁存。

键盘芯片ZLG7290按键功能实现

键盘芯片ZLG7290按键功能实现
介绍 。
z G 20 L 7 9 ,用它则 可以实现类似手 机键盘上 的所 有功能 ,
真 正 实 现用 户 与 系统 设 备 的交 互 功 能 。
i 1
; ;
:;》 产 西 ; ㈠ 产
I I

I }
在实现 I I 信的过程 中 ,笔者主要通 过以下 四个 函数来 C通
基 于 I R的 开发 环境给 出 了一 个 完整 的示例 。 A
关 键 词 Z G 2 0 L 7 9 ,A 9 T AM7 2 6 I 1 S S5 , I C
随着嵌 入式系统的迅速发展和广泛应用 ,用户与 系统设备 的交互应该是最常见的功能 ,也可 以说是必须具备 的功能 。通
常在简单的嵌入 式系统 ,实现用户与系统设备交互功能 ,可 以 用机械按键 和 I O口触发来完成 ,但这种方 法 ,功能 简单 ,不 / 是 真正意义上 的交 互 。而本文将 要介 绍 的一 种键盘 专用 芯片
— —
二 、 软 件 功 能
1 通信接 口 .
由前 面的描述 ,我们知道 Z G 2 0键 盘芯片与 A M处理 L 79 R 器 的接 口是 I I C接 口,而 I I C通信的实现 ,可以通过 G I PO来模 拟 I I C通 信 ,也 可以使用 硬件标准 I I C接 口来完成 ,前者通常 在 I 硬 件 接 口被 其 他 外 设 的被 使 用 的 情 况 下 , 只 介 绍 I C Z G 2 0的实现 方法与技巧 ,因此以标准 的 I L79 I C硬件 接 口来做
; { # j
j ㈠ 产 :产 1 :

完成 ,并列举读操作 函数 以作说明 :
; ; p iF :谭

7279键盘显示

7279键盘显示

2.芯片内部结构及原理——74922芯片74922芯片是专用编码键盘接口芯片 ,当按下某一按键时 ,该芯片能自动给出相应的编码信息 ,并可自动消除抖动 ,从而可使设计者免除一部分软件编程。

74922芯片有16键 IC和20键 IC,图1所示为4 ×4(16键)扫描式编码键盘原理图。

图1 扫描式编码键盘这种键盘的按键排成矩阵形式 ,以减少按键联线。

如图中有16个键 ,排列成4行4 列 ,仅需 8 根引线。

时钟发生器的输出送给4位计数器进行计数 ,计数器的低2 位经译码后作为行扫描 ,高2位经译码后作为列扫描。

若没有检出有键闭合 ,则计数器周而复始反复计数 ,即反复进行扫描 ,一旦检出有键闭合 ,就发出一个脉冲使时钟振荡器停振 ,计数器随即停止计数。

单片机通过读取计数器的计数值来获取闭合键所在的行列位置 ,然后从 ROM中查表得到按键读数。

如果有两个键同时按下 ,则扫描到第一个闭合键时就停止扫描 ,把该键当作有效按键进行处理。

74922芯片(16键 IC)的引脚排列如图2所示:X1~X4:列线。

Y1~Y4:行线。

OSC:接振荡电容0.1μ,以便扫描矩阵键盘KM:键盘消除抖动电路 ,并发出两种信号(1)内计数器停止计数。

(2)若有键按下 ,使DA脚由未按键时的低电平变为高电平,若按键未放开则一直保持高电平,当按键放开时,才转为低电平。

此引脚外接一个电容是OSC所接电容的10倍。

图2 74922(16键)引脚排列七段译码器74477447有4个 BCD码输入端 A、B、C和D,其中 D为最高有效位,A为最低有效位,它们分别与输出端口中的4位相连。

7447的7个输出引脚 a~g直接与 LED 的相应引脚相连,每个段中都串接一个限流电阻,其阻值为100Ω。

当灭灯输入/动态灭灯输出(BI/RBO)开路或为高电平而试灯输入为低电平,则所有输出端都为1。

BI/RBO是线与逻辑,作灭灯输入(BI)或动态灭灯(RBO)之用,或者兼为二者之用。

zlg7290

zlg7290

单片机接口技术
62-6
DM
一、 ZLG7290的特点
U.
1、 I2C 串行接口,方便与处理器接口; 2、 可驱动8位共阴数码管或64只独立LED 和 64 个按键; 3、 扫描位数可控,任一数码管闪烁可控; 4、 可检测任一键的连击次数; 5、 无需外接元件即直接驱动LED。
单片机接口技术
62-7
单片机接口技术
62-9
DM
zlg7290应用实例
U.
单片机接口技术
8
62-10
DM
三、寄存器
U.
包括 系统状态、键盘部分、显示部分、命令接口的寄存器。
单片机接口技术
62-11
DM
系统状态部分的寄存器
U. 1、系统寄存器(SystemReg):地址00H,复位值F0H;
保存ZLG7290 系统状态。
支持自动增址功能 访问一个寄存器后,寄存器子地址sub address自动加1; 访问最后一寄存器子地址17H后,寄存器子地址翻转为00H。
单片机接口技术
62-17
DM
五、指令
U.
ZLG7290 提供两种控制方式:寄存器映象控制和命令解释控制。
命令解释控制是指通过解释命令缓冲区CmdBuf0CmdBuf1 中的指令,间接访问底层寄存器,实现扩展控制功能。
连击次数计数器RepeatCnt 可区别出单击或连击。
单片机接口技术
62-8
DM
2、显示部分
U.
在每个显示刷新周期,ZLG7290 按照扫描位数寄存器(ScanNum) 指定
的显示位数N,把显示缓存(DpRam0DpRamN)的内容按先后循序送入
LED 驱动器实现动态显示;

实验十四LED示键盘实验

实验十四LED示键盘实验

实验十四LED示键盘实验作者: 日期:实验14 LED显示和键盘实验1. 实验目的加深用户对I2C总线的理解,熟悉I2C器件的使用,掌握ZLG7290芯片显示和键盘的简单程序设计。

2. 实验设备及器件IBM PC机一台DP-51 PRO单片机综合仿真实验仪一台3. 实验内容ZLG7290芯片LED显示、键盘控制器驱动实验。

4. 实验要求熟练掌握l2c总线的控制,灵活运用I2C主控器软件包,深刻理解ZLG7290芯片LED显示、键盘控制的各种功能,编写驱动程序,读出用户按键值并依次显示在8个LED数码管上(保留显示最后8次按键值,显示内容从右向左移动,最后一次按键值显示在最右侧LED数码管上)。

5. 实验步骤①用导线连接D5 区和A2 区的P16f SCL, P17^SDA , P10^RST_L , INT_KEY INTO,短接D5区的JP1跳线。

②模拟I2C软件包VI2C_ASM.INC 文件,使用$INCLUDE (VI2C_ASM」NC)命令加入到你的汇编源文件中。

在你的汇编源文件中定义SCL、SDA、ACK等信号。

③先编写显示的子程序(DISPLAY )和获取用户按键子程序(GETKEY )。

④然后再进行整体编程。

如果还有一难,可以先画流程一,再编写程序。

⑤显示结果为:上电运行时,8位数码管显示01234567,用户按键时,键值在最右侧LED数码管显示,原显示内容左移一位,例如:显示由“01234567”变为“ 1234567X ”,(X :用户按键值,1〜16,显示为1〜F, G)。

6. 实验预习要求认真阅读ZLG7290的数据手册(附件1)和模拟I2C软件包(附件2)使用手册,理解硬件结构; 先把程序编好,然后在KEIL 51环境下进行软件仿真。

7. 实验参考程序详见附近3:计算机硬件技术基础实验参考代码(DP-51PR0C ).D0C 文件。

;I2C 总线定义串行数据存取位 ;I2C 总线定义串行时钟位;MCU 复位输出信号,低电平复位 ZLG7290;MCU 中断信号输入,有效的按键动作使该引脚信号变为 低电平 ;I2C 总线发送数据缓冲区(8字节) ;I2C 总线接收数据缓冲区(8字节);显示缓冲区(8字节,可对应8位数码管显示);ZLG7290的器件地址;应答标志位 ;器件的从地址 ;器件的子地址;读/写的字节数变量 ;返回用户按键值;系统寄存器地址,保存 ZLG7290系统状态 ;键值寄存器,表示被压按键的键值 ;命令缓冲区0 ;命令缓冲区1 ;显示缓存寄存器ORG8100H; -- 主程序如下: MAIN:MOV SP,#70H CLR RST LCALL DELAY SETB RST LCALL DELAY LCALL CLSDISPMAINLOOP: MOV DISBUF+0,#0MOV DISBUF+1,#1 MOV DISBUF+2,#2 MOV DISBUF+3,#3 MOV DISBUF+4,#4 MOV DISBUF+5,#5 MOV DISBUF+6,#6 MOV DISBUF+7,#7SDABIT P1.7 SCL BIT P1.6 RSTBIT P1.0 INT_KEYBITP3.2MTD EQU 40H MRD EQU 48H DISBUFEQU38HZLG7290 EQU 70HACK BIT 10HSLA DATA 50HSUBA DATA 51HNUMBYTE DATA52HKEYDATA53HSYSTEMREG EQU 00HKEYREG EQ U01HCMDBUF0 EQU07HCMDBUF1 EQU 08HDPRAM EQU 10HORG 8000H;堆栈区从70H 开始;复位 ZLG7290;等待复位完成,ZLG7290复位周期比较长,必须等待;结束复位 ;清除显示;上电运行时,8位数码管显示01234567;给显示缓冲区赋值,01234567;定义ZLG7290器件地址及子地址 LJMP MAINLCALL DISPLAY WAITKEY: JB INT_KEY,W AITKEYLCALLGETKEYMOV A,KEYJZ WAITKEYMOV DISBUF+7,DISBUF+6MOV DISBUF+6,DISBUF+5MOV DISBUF+5,DISBUF+4MOV DISBUF+4,DISBUF+3MOV DISBUF+3,DISBUF+2MOV DISBUF+2,DISBUF+1MOV DISBUF+1,DISBUF+0MOV DISBUF+0,KEYLCALL DISPLAYLJMP WAITKEY;子程序名:CLSDISP;功能:清除显示内容;调用:VI2C_AS M.INC;入口参数:无;出口参数:无;占用资源:R0,R1,R2,R3 (工作寄存器组CLSDISP:MOV R5,#8MOV A,#01100000BCLS1:MOV SLA,#ZLG7290MOV SUBA,#CMDBUF01),ACC,CY,R5 (当前工作寄存器组);循环计数器初值,8位数码管;按位下载数据且译码指令01100 A2A1A0;A2~A0:对应显示位置1〜8位数码管;指定器件地址;指定子地址;命令送I2C总线发送数据缓冲区;命令参数,1FH :无显示;待发送数据2字节;保护ACC;保护PSW;切换工作寄存器,I2C通信软件使用工作寄存器组1;调用写2字节数据程序(VI2C_ASM.INC , I2C模拟软件包);恢复PSW;恢复ACC;按位下载数据且译码指令地址部分+ 1涎时,等待ZLG7290执行上述命令;没有达到8次,继续循环;子程序返回;调用显示子程序,显示内容;查询按键;获取键值;KEY=0无键按下,继续查询;显示内容左移MOV MTD,AMOV MTD+1,#1FH MOV NUMBYTE,#02H PUSH ACCPUSH PSWSETB RS0CLR RS1LCALL IWRNBYTEPOP PSWPOP ACCINC ALCALL DELAYDJNZ R5,CLS1RET;子程序名:DISPLAY;功能:在8段LED 数码管显示;调用:VI2C_AS M.INC;入口参数:DISBUF+O~ DISBUF+7 , 8字节显示缓冲区;出口参数:无1),ACC ,CY ,RO , R5 (当前工作寄存器组) ;循环计数器初值,8位数码管;按位下载数据且译码指令 01100 A2A1A0 ;A2~A0:对应显示位置 1〜8位数码管 ;R0-> DISBUF;指定器件地址;指定子地址;命令送I2C 总线发送数据缓冲区;命令参数,待显示数据送 I2C 总线发送数据缓冲区 ;待发送数据2字节 ;保护ACC ;保护PSW;切换工作寄存器,I2C 通信软件使用工作寄存器组 1;调用写2字节数据程序(VI2C_ASM 」NC , I2C 模拟软件 包) ;恢复PSW ;恢复ACC;按位下载数据且译码指令地址部分+ 1 ;R0+1,指向下一个待显示数据 涎时,等待ZLG7290执行上述命令 ;没有达到8次,继续循环 ;子程序返回;子程序名:GETKEY;功能:获取用户按键值(KEY );调用:VI2C_AS M.INC;入口参数:无;出口参数:KEY;占用资源:R0,R1,R2,R3 (工作寄存器组GETKEY:MOV SLA,#ZLG7290MOV SUBA,#01H MOV NUMBYTE,#01H PUSH ACC PUSH PSW SETB RS0 CLR RS1LCALL IRDNBYTE POP PSWDISPLAY:MOV R5,#8MOV A,#01100000B DISP1:MOV R0,# DISBUFMOV SLA,#ZLG7290 MOVSUBA,#CMDBUF0MOV MTD,AMOV MTD+1,@R0 MOVNUMBYTE,#02HPUSH ACC PUSH PSW SETB RS0 CLR RS1LCALL IWRNBYTEPOP PSW POP ACC INC A INC R0 LCALL DELAY DJNZ R5,DISP1RET1), ACC , CY ;指定器件地址 ;指定子地址 ;读1字节数据 ;保护ACC ;保护PSW;切换工作寄存器,I2C 通信软件使用工作寄存器组1;调用读1字节数据程序 ;恢复PSW;占用资源:R0,R1,R2,R3 (工作寄存器组;子程序名:DELAY;功能:延时约 36.5 MS (11.0592MHZ 时钟) ;调用:YS500US ;入口参数:无 ;出口参数:无 ;占用资源:R7,R6 DELAY: MOV R7,#80H MIN:LCALL YS500US DJNZ R7,MIN RET;子程序名:YS500US;功能:延时约 279US ( 11.0592MHZ 时钟)8. 实验思考题① 编写LED 数码管闪烁控制子程序,实现对指定位进行闪烁控制。

电阻焊控制系统中ZLG7290接口的实现

电阻焊控制系统中ZLG7290接口的实现

需要 4根 串行数据信 号线 ( 输入 线 、 时钟线 、 数据 加载线 、 据 数 输出线) 就可 以实现对键 盘的控 制管理 和数码 管的显示 , 系 但
统 中的线路还是相 对复杂 … 。基于 此 , 中选 用 了一种 带 I 文 z C 总线的接 口芯片 Z G 2 0对键盘及显示 电路控制 管理 L 79 , 由
电阻 R R 在电路 中所选电阻值为 33 l.L 79 需外接一 . k1 G 20 Z
个晶体振荡 电路供 系统工作 , 晶振 ) ( 2通常取值 为8M z而这里 H ,
收稿 日期 :0 1 6— 3 收修改稿 日期 :0 1—1 2 1 —0 0 2 1 2—1 3
将调节电容 c 和 c 的值设 置为 2 F复位信号设 置为低 电平 。 2p.


6 6 ll
于该芯片与主控制器件 A 8 C 1 T 9 5 仅通过 2根线相连 , 简化 了系
统线路 , 而且可 以管理多达 6 4支独立 的数码管和按 键等功 能。
}址 也
P A0一 A7 DO
7 S3 7 4L 7
D1 一D8
霭 Ql Q — 8
因此 , 在现代控制 系统 中对 键盘及 显示 电路模块 的设计 均 可 ,
系统中利用单片机 A 8C 1 Z G 20进行控制 , T 9 5 对 L 79 充分利 用 Z G 20为 1 L 79 2 C总线器件这一特征 , 设计 中通过单片机 的2根 通用 I0线 , P . 、17脚分别 与 Z G 20的 S L S A脚相 / 即 I6 P . L 79 C 、D
关键词 : 单片机 ; C;L 7 9 i Z G 20 2 中图分类号 :P 6 . T 38 1 文献标识 码 : A 文章编号 :02— 8 12 1 )2— 0 0— 3 10 14 ( 02 0 09 0
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1 绪论 (1)1.1课题背景及意义 (1)1.2课题设计任务 (2)2总体方案论证 (3)2.1基于ZLG7290键盘显示系统设计 (3)2.2信号发生器的方案设计 (3)3硬件电路设计 (4)3.1Z L G7290键盘显示系统设计 (5)3.2 信号发生器的硬件设计 (7)4软件部分设计 (8)4.1 ZLG7290键盘显示软件设计 (9)4.2信号发生器软件设计 (20)5 实验结果及分析 (32)5.1 实验步骤 (32)5.2 实验结果 (33)设计心得 (41)参考文献 (42)附录整体电路图 (43)1 绪论单片机,采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。

从早期的4位、8位、16位单片机发展到现在的32位、64位等具备更高处理能力的单片机。

ZLG7290键盘/LED驱动器是周立功公司针对仪器仪表行业的需要自行研制的一款芯片。

该芯片能自动完成8位LED数码管的动态扫描和(最多)64按键检测扫描,大大减轻单片机的用于显示/键盘的工作时间和程序负担,可使集中资源用于信号的检测和控制。

信号发生器是指产生所需参数的电测试信号的仪器。

按信号波形可分为正弦信号、函数(波形)信号、脉冲信号和随机信号发生器等四大类。

信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。

各种波形曲线均可以用三角函数方程式来表示。

能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。

1.1 课题背景及意义课程设计是培养学生综合运用所学的知识的重要环节。

本课程设计的时间安排在大四上学期,也就是接近毕业的时候了,通过这次为期两周的课程设计,我们能够更多的学习到单片机的相关内容。

从设计中,我们能够发现,提出,分析和解决问题,锻炼实践能力,这是对学生实际工作能力的具体训练和考察过程。

随着科技发展的日新月异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说是无处不在。

因此作为二十一世纪的大学生来说,掌握单片机的开发技术是十分重要的。

1.2 课题设计任务1.2.1 基于7290的键盘显示设计设计内容:利用51单片机,7290接口芯片设计一个键盘显示系统,要求8位显示,16个按键,通过汇编语言定义每个按键的功能,并显示出结果。

设计要求:熟练掌握I2C总线的控制,灵活运用I2C主控器软件包,ZLG7290键盘LED控制的各种功能。

实验设备及器件:IBM PC 机一台DP-51PROC 单片机综合仿真实验仪一台1.2.2 信号发生器的设计设计内容:利用51单片机,DAC0832转换芯片,键盘显示系统,LM324运算放大器,设计一个信号发生器,可以产生正弦波,三角波,方波,锯齿波,通过键盘控制,用汇编语言设计。

设计要求:理解掌握DAC0832的D/A转换器原理和并行D/A转换器接口的编写方法,学会使用DAC0832并行数/模转换器实现电压信号采集的方案设计。

设计设备及器件:IBM PC 机一台DP-51PROC 单片机综合仿真实验仪一台DAC0832 PARK模块一块示波器一台2 总体方案论证2.1 基于ZLG7290的键盘显示系统设计ZLG7290的核心是一块ZLG7290B芯片,它采用I2C接口,能直接驱动8位共阴式数码管,同时可扫描管理多达64只按键,实现人机对话的功能资源十分丰富。

除具有自动消除抖动功能外,它还具有段闪烁、段点亮、段熄灭、功能键、连击键计数等强大功能,并可提供10种数字和21种字母的译码显示功能,用户可以直接向显示缓存写入显示数据,而且无需外接元件即可直接驱动数码管,还可扩展驱动电压和电流。

此外,ZLG7290B的电路简单,使用也很方便。

按要求设计系统框图如图2.1所示:图2.1 ZLG7290键盘显示系统框图2.2 信号发生器的系统方案设计本设计就是在基于51单片机和ZLG7290芯片的基础上完成一个可以产生正弦波,三角波,方波,锯齿波的信号发生器的设计,系统框图就是在ZLG7290键盘显示系统框图的基础上加上DAC0832模块。

信号发生器的系统框图如图2.2所示:图2.2信号发生器的系统框图3 硬件电路设计3.1 ZLG7290键盘显示系统设计ZLG7290能够直接驱动8 位共阴式数码管(或64 只独立的LED),同时还可以扫描管理多达64 只按键。

其中有8 只按键还可以作为功能键使用,就像电脑键盘上的Ctrl、Shift、Alt 键一样。

另外ZLG7290B 内部还设置有连击计数器,能够使某键按下后不松手而连续有效。

采用I2C 总线方式,与微控制器的接口仅需两根信号线。

可控扫描位数,可控任一数码管闪烁。

3.1.1 ZLG7290芯片ZLG7290的核心是一块ZLG7290B芯片,它采用I2C接口,能直接驱动8位共阴式数码管,同时可扫描管理多达64只按键,实现人机对话的功能资源十分丰富。

除具有自动消除抖动功能外,它还具有段闪烁、段点亮、段熄灭、功能键、连击键计数等强大功能,并可提供10种数字和21种字母的译码显示功能,用户可以直接向显示缓存写入显示数据,而且无需外接元件即可直接驱动数码管,还可扩展驱动电压和电流。

此外,ZLG7290B的电路简单,使用也很方便。

ZLG7290键盘显示系统原理图如图3.1所示图3.1 ZLG7290键盘显示系统原理图3.1.2 LED数码管当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。

如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp 不亮。

发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。

常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

数码管原理图如3.2所示:图3.2 数码管原理图3.1.3 键盘系统键盘有如下几个基本功能:(1)键盘去抖动处理:做去抖动处理是为了不引起按键盘命令错误,以便读取稳定的键盘状态。

(2)双键互锁处理:当有两个按键同时按下时,ZLG7290只采样优先级高的按键。

(3)连击处理:当按下某个按键时,输出一次键值后,如果该按键还未释放,该键值连续有效。

(4)功能键处理:功能键实现2个以上按键同时按下来扩展按键数目或实现特殊功能。

键盘的原理图如图3.3所示:图3.3 键盘原理图3.2 信号发生器的硬件设计3.2.1 DAC0832芯片DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等),所以这个芯片的应用很广泛。

D/A转换结果采用电流形式输出。

若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。

运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。

DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。

4 软件部分设计4.1 ZLG7290键盘显示软件设计4.1.1 ZLG7290键盘显示流程图4.1.2 ZLG7290键盘显示程序ZLG7290键盘显示程序清单:SDA BIT P1.7SCL BIT P1.6RST BIT P1.0KEY_INT BIT P3.2MTD EQU 40HMRD EQU 49HZLG7290 EQU 70HACK BIT 10HSLA DATA 50HSUBA DATA 51H NUMBYTE DATA 52HORG 0000HLJMP MAINORG 0100HMAIN:MOV SP,#70HCLR RSTLCALL DELAYSETB RSTLCAL DELAYMAIN1:MOV R4,#67HMOV R7,#08H MAINLOOP:JNB KEY_INT,KEY_HANDLE SJMP MAINLOOPKEY_HANDLE:MOV SLA,#ZLG7290MOV SUBA,#01HMOV NUMBYTE,#01HLCALL IRDNBYTELCALL DELAY HANDLELOOP:MOV A,R4MOV MTD,APUSH ACCMOV A,MRDCJNZ A,#10H,NEXTMOV MRD,#0H NEXT:MOV MTD+1,MRDMOV SLA,#ZLG7290MOV SUBA,#07HMOV NUMBYTE,#02HLCALL IWRNBYTELCALL DELAYPOP ACCDEC R4DJNZ R7,MAINLOOPSJMP MAIN1 DELAY:MOV R5,#50H DELAY1:MOV R6,#0FFHDJNZ R6,$DJNZ R5,DELAY1RETSTART:SETB SDANOPSETB SCLACALL WAITCLR SDAACALL WAITCLR SCLNOPRETSTOP:CLR SDANOPSETB SCL ACALL WAITSETB SDA ACALL WAITRETMACK:CLR SDANOPNOPSETB SCL ACALL WAITCLR SCLRET MNACK:SETB SDANOPNOPSETB SCL ACALL WAITCLR SCLNOPNOPRETCACK:SETB SDANOPNOPSETB SCLCLR ACKNOPNOPMOV C,SDAJC CENDSETB ACK CEND:NOPCLR SCLNOPRETWRBYTE:MOV R0,#08H WLP:RLC AJC WR1SJMP WR0 WR1:SETB SDANOPSETB SCLACALL WAITCLR SCLSJMP WLP1 WR0:CLR SDANOPSETB SCLACALL WAITCLR SCL WLP1:DJNZ R0,WLPNOPRETRDBYTE:MOV R0,#08H RLP:SETB SDAACALL WAITSETB SCL ACALL WAITMOV C,SDAMOV A,R2CLR SCLRLC AMOV R2,A ACALL WAITDJNZ R0,RLPRETIWRNBYTE:MOV A,NUMBYTE MOV R3,ALCALL STARTMOV A,SLALCALL WRBYTELCALL CACKMOV A,SUBALCALL WRBYTELCALL CACKMOV R1,#MTD WRDA:MOV A,@R1LCALL WRBYTELCALL CACKJNB ACK,IWRNBYTEINC R1DJNZ R3,WRDA RETWRN:LCALL STOPRETIRDNBYTE:MOV R3,NUMBYTELCALL STARTMOV A,SLALCALL WRBYTELCALL CACKJNB ACK,RETRDNMOV A,SUBALCALL WRBYTELCALL CACKLCALL STARTMOV A,SLAINC ALCALL WRBYTELCALL CACKMOV R1,#MRDRDN1:LCALL RDBYTEMOV @R1,ADJNZ R3,SACKLCALL MNACK RETRDN:LCALL STOPRETSACK:LCALL MACKINC R1SJMP RDN1WAIT:NOPNOPNOPNOPNOPRETEND4.1.2 学号程序(02040221)SDA BIT P1.7SCL BIT P1.6RST BIT P1.0KEY_INT BIT P3.2MTD EQU 40HMRD EQU 49HZLG7290 EQU 70HACK BIT 10H SLA DATA 50H SUBA DATA 51HNUMBYTE DATA 52H ORG 0000HLJMP MAINORG 0100HMAIN:MOV SP,#70HCLR RSTLCALL DELAYSETB RSTLCALL DELAYMAIN1:MOV R4,#67HMOV R7,#08HMOV R2,#0HCLR RSTLCALL DELAYSETB RSTLOOP:MOV SLA,#ZLG7290MOV SUBA,#07HMOV NUMBYTE,#02HMOV MTD,R4MOV A, R2MOV DPTR,#DISWORDMOVC A,@A+DPTRMOV MTD+1,ALCALL IWRNBYTELCALL DELAYLCALL DELAYLCALL DELAYINC R2DEC R4DJNZ R7,LOOPLCALL DELAYLCALL DELAY LCALL DELAYLCALL DELAYLCALL DELAYLCALL DELAY HERE:SJMP $START:SETB SDANOPSETB SCLACALL WAITCLR SDAACALL WAITCLR SCLNOPRETSTOP:CLR SDANOPSETB SCLACALL WAITSETB SDA ACALL WAITRETCACK:SETB SDA ACALL WAIT SETB SCLCLR ACK ACALL WAITMOV C,SDAJC CENDSETB ACK CEND:NOPCLR SCLNOPRETWRBYTE:MOV R0,#08H WLP:RLC AJC WR1SJMP WR0 WR1:SETB SDANOPSETB SCL ACALL WAITCLR SCLSJMP WLP1WR0:CLR SDANOPSETB SCLACALL WAITCLR SCLWLP1:DJNZ R0,WLPNOPRETIWRNBYTE:MOV A,NUMBYTEMOV R3,ALCALL STARTMOV A,SLALCALL WRBYTELCALL CACKJNB ACK,IWRNBYTEMOV A,SUBALCALL WRBYTELCALL CACKMOV R1,#MTD WRDA:MOV A,@R1LCALL WRBYTELCALL CACKJNB ACK,IWRNBYTEINC R1DJNZ R3,WRDA RETWRN:LCALL STOPRETDELAY:MOV R5,#50HDELAY1:MOV R6,#0FFHDJNZ R6,$DJNZ R5,DELAY1RETWAIT:MOV R5,#08HDJNZ R5, $RETDISWORD:DB 00H,02H,00H,04H,00H,02H,02H,01HEND4.2 信号发生器软件设计信号发生器程序清单:SDA BIT P1.7 ;I2C总线定义SCL BIT P1.6RST BIT P1.0KEY_INT BIT P3.2MTD EQU 40H ;发送数据缓冲器MRD EQU 49H ;接受数据缓冲区;定义器件地址ZLG7290 EQU 70H ;ZLG7290的器件地址ACK BIT 10H ;应答标志位SLA DATA 50H ;器件的从地址SUBA DATA 51H ;器件的子地址NUMBYTE DATA 52H ;读/写的字节数变量ORG 0000HLJMP MAINORG 0100H;主程序如下:MAIN: MOV SP,#70H ;定义指针地址CLR RSTLCALL DELAY ;调用延时程序SETB RST ;发送1LCALL DELAYMAINLOOP:MOV R0,#0 ;R0初始值JNB KEY_INT,KEY_HANDLESJMP MAINLOOPKEY_HANDLE:LCALL DELAYLCALL DELAYINC R0JISHU: JNB KEY_INT,PANDUANLCALL DELAYLCALL DELAYINC R0PANDUAN:LCALL DELAYLCALL DELAYJB KEY_INT,MAINA ;是1跳转到MAINASJMP JISHUMAINA: CJNE R0,#1,MAINA1 ;R0是1执行FANGBO, 否则执行MAINA1 SJMP FANGBOMAINA1:CJNE R0,#2,MAINA2 ;R0是2执行JUCHI SJMP JUCHIMAINA2:CJNE R0,#3,MAINA3SJMP SANJIAOMAINA3:CJNE R0,#4,MAINA4SJMP ZHENGXIANMAINA4:CJNE R0,#5,MAINLOOPSJMP TIXING;方波FANGBO:LJMP LJF1:MOV DPTR,#7FFFH ;指向0832MOV A,#255MOVX @DPTR,A ;高电平LCALL DELAY11LCALL DELAY11LCALL DELAY11MOV A,#0MOVX @DPTR,A ;低电平LCALL DELAY11LCALL DELAY11LCALL DELAY11JNB KEY_INT,KEY_HANDLEAJMP F1 ;重复上述过程,形成连续方波;锯齿波JUCHI: LJMP LJF2: MOV DPTR,#7FFFH ;指向0832AA4: MOV A,#0AA5: MOVX @DPTR,A ;向DAC送锯齿波最小值0 INC A ;加1CJNE A,#255,AA5 ;循环256次,形成锯齿波的上升沿JNB KEY_INT,KEY_HANDLESJMP AA4;三角波SANJIAO:LJMP LJF3: MOV DPTR,#7FFFH ;指向0832AA6: MOV A,#0AA7: MOVX @DPTR,A ;向DAC送最小值0 INC A ;加1CJNE A,#255,AA7 ;循环256次,形成上升沿AA8: MOVX @DPTR,ADEC A ;递减,形成下降沿CJNE A,#0,AA8JNB KEY_INT,KEY_HANDLESJMP AA6;正弦波ZHENGXIAN:LJMP LJF4:MOV SP,#70HMOV DPTR,#7FFFHMOV A,#0HMOV R1,00HMOV R2,#20AA9: MOV DPTR,#0800HMOVC A,@A+DPTRMOV DPTR,#7FFFHMOVX @DPTR,AACALL DELAYAINC R1MOV A,R1JNB KEY_INT,AAAASJMP AA9;梯形波TIXING:LJMP LJF5: MOV DPTR,#7FFFH ;指向0832A6: MOV A,#0A7: MOVX @DPTR,A ;向DAC送最小值0 INC A ;加1CJNE A,#255,A7 ;循环256次,形成上升沿LCALL DELAY11LCALL DELAY11LCALL DELAY11A8: MOVX @DPTR,ADEC A ;递减,形成下降沿CJNE A,#0,A8LCALL DELAY11LCALL DELAY11LCALL DELAY11JNB KEY_INT,AAAASJMP A6AAAA:MOV R0,#1LJMP JISHUDELAYA:MOV R2,#20HDELAYA1:NOPNOPDJNZ R2,DELAYA1RETORG 0800HDB 127,130,133,136,139,142,145,148DB 151,154,157,160,163,166,169,172DB 175,178,181,184,186,189,192,194DB 197,200,202,205,207,209,212,214DB 216,218,221,223,225,227,229,230DB 232,234,235,237,239,240,241,243DB 244,245,246,247,248,249,250,250DB 251,252,252,253,253,253,253,253DB 254,253,253,253,253,253,252,252DB 251,250,250,249,248,247,246,245DB 244,243,241,240,239,237,235,234DB 232,230,229,227,225,223,221,218DB 216,214,212,209,207,205,202,200DB 197,194,192,189,186,184,181,178DB 175,172,169,166,163,160,157,154DB 151,148,145,142,139,136,133,130DB 127,123,120,117,114,111,108,105DB 102,99,96,93,90,87,84,81DB 78,75,72,69,67,64,61,59DB 56,53,51,48,46,44,41,39DB 37,35,32,30,28,26,24,23DB 21,19,18,16,14,13,12,10DB 9,8,7,6,5,4,3,3DB 2,1,1,0,0,0,0,0DB 0,0,0,0,0,0,1,1DB 2,3,3,4,5,6,7,8DB 9,10,12,13,14,16,18,19DB 21,23,24,26,28,30,32,35DB 37,39,41,44,46,48,51,53DB 56,59,61,64,67,69,72,75DB 78,81,84,87,90,93,96,99DB 102,105,108,111,114,117,120 ;延时程序DELAY:MOV R5,#50HDELAY1:MOV R6,0FFHDJNZ R6,$DJNZ R5,DELAY1RETDELAY11:MOV R2,#40hDELAY111:NOPNOPDJNZ R2,DELAY111RET;显示程序;主程序LJ: MOV SP,#70HCLR RSTLCALL DELAYSETB RSTLCALL DELAYMAIN1:MOV R4,#69HMOV R7,#0AHMOV R2,#0HCLR RSTLCALL DELAYSETB RSTLOOP: MOV SLA,#ZLG7290 ;指定器件地址MOV SUBA,#07H ;指定子地址MOV NUMBYTE,#02H ;发送2字节数据LCALL IWRNBYTE ;调用写2字节数据程序LCALL DELAYPOP ACCDEC R4DJNZ R7,LOOPTY: CJNE R0,#1,TY1LJMP F1TY1: CJNE R0,#2,TY2LJMP F2TY2: CJNE R0,#3,TY3LJMP F3TY3: CJNE R0,#4,TY4LJMP F4TY4: CJNE R0,#5,TY5LJMP F5TY5: LJMP MAINLOOPSTART:SETB SDANOPSETB SCL ;起始条件建立时间大于4.7us ACALL WAITCLR SDAACALL WAITCLR SCL ;钳位总线,准备发数据NOPRET;结束总线子程序STOP: CLR SDANOPSETB SCL ;发送结束条件的时钟信号ACALL WAITSETB SDA ;结束总线ACALL WAITRET;检查应答位子程序;返回值,ACK=1时表示有应答CACK: SETB SDAACALL WAITSETB SCLCLR ACKACALL WAITMOV C,SDAJC CENDSETB ACK ;判断应答位CEND: NOPCLR SCLNOPRET;发送字节子程序;字节数据放入ACC;每发送一个字节要调用一次CACK子程序,去应答位WRBYTE:MOV R5,#08HWLP: RLC A ;取数据位JC WR1SJMP WR0 ;判断数据位WR1: SETB SDA ;发送1NOPSETB SCLACALL WAITCLR SCLSJMP WLP1WR0: CLR SDA ;发送0NOPSETB SCLACALL WAITCLR SCLWLP1: DJNZ R5,WLPNOPRET;读取字节子程序;读出的值在ACC;每取一个字节要发送一个应答/非应答信号;向器件指定地址写N字节数据;入口参数:器件从地址SLA,器件子地址SUBA、发送数据缓冲区MTD、发送字节数NUMBYTE;占用:A、R0、R1、R3、CYIWRNBYTE:MOV A,NUMBYTEMOV R3,ALCALL START ;启动总线MOV A,SLALCALL WRBYTE ;发送器件从地址LCALL CACKJNB ACK,RETWRN ;无应答则退出MOV A,SUBA ;指定子地址LCALL WRBYTELCALL CACKMOV A,R4LCALL WRBYTE ;开始写入数据65+ LCALL CACKJNB ACK,IWRNBYTEMOV A,R2CJNE R0,#01H,JUMOV DPTR,#DISWORD1SJMP HJJU: CJNE R0,#02H,SANMOV DPTR,#DISWORD2SJMP HJSAN: CJNE R0,#03H,ZHMOV DPTR,#DISWORD3SJMP HJZH: CJNE R0,#04H,TXMOV DPTR,#DISWORD4SJMP HJTX: CJNE R0,#05H,HJ1MOV DPTR,#DISWORD5HJ: MOVC A,@A+DPTRINC R2LCALL WRBYTELCALL CACKRETWRN:LCALL STOPRETHJ1: LJMP LJWAIT: MOV R1,#08HDJNZ R1,$RETDISWORD1:DB 0FH,01H,01H,01H,01H,01H,01H,01H ; 方波DISWORD2:DB 00H,00H,00H,00H,00H,00H,00H,02H ; 锯齿波DISWORD3:DB 03H,03H,03H,03H,03H,03H,03H,03H ;三角DISWORD4:DB 02H,11H,0EH,04H,04H,04H,04H,04H ; 正弦DISWORD5:DB 05H,1EH,12H,12H,10H,0BH,15H,00HEND5 实验结果及分析5.1实验步骤5.1.1 ZLG7290键盘显示的设计步骤(1)使用导线连接D5区的SCL、SDA到A2区的P16、P17(SCL~P16、SDA~P17),连接D5区的RST_L、INT_KEY到A2区的P10、INTO(RST_L~P10、INT_KEY~INTO),连接D5区的JP1跳线。

相关文档
最新文档