1 引言
i2c总线接口的显示及键盘管理器件zlg7290广泛应用于智能仪表的接口设计当中,在具体应用过程中,它接收所要显示的数据并将其显示在led显示器上,动态地扫描管理着显示过程,该器件本身只需2根线就可与单片机实现接口,硬件连接简便,软件编程容易。尤其用在单片机担负繁忙数据处理任务的系统中,可节省单片机用于显示扫描的时间,更显出其优越性。
2 zlg7290的特点及工作原理
2.1 zlg7290的特点
如图1所示,zlg7290是一种多位led显示及键盘管理器件,采用流行的i2c总线接口,可与各种带i2c总线的单片机方便接口,并可同时驱动8位led。其内部具有15×8 ram的功能控制寄存器,可方便寻址。对每位数字可单独控制、刷新。显示亮度可数字控制,每位都具有闪烁使能控制功能。无需任何外部元件便可多路复用自动扫描。
zlg7290的特点有:采用i2c串行接口;提供键盘中断信号,方便与处理器接口;可驱动8位共阴数码管或64只独立的led和64个按键:可控制扫描位数,可控制任意数码管的闪烁:提供数据译码和循环移位段寻址等控制;8个功能键均可检测任意键的连击次数;无需外接元件即直接驱动led,可扩展驱动电流和驱动电压。
2.2 zlg7290的工作原理
2.2.1键盘的管理与控制
zlg7290可采样64个按键或传感器,可检测每个按键的连击次数,并具有如下功能:键盘去抖动处理;双键互锁处理,即当有两个以上按键被同时按下时,zlg7290只采样优先级高的按键:连击按键处理,即当某个按键按下输出一次键值后。如果该按键还未释放,该键值连续有效,就像连续压按该键一样,这种功能称为连击。连击次数计数器repeatcnt可区别出单击(某些功能不允许连击如开关)或连击,判断连击次数,可以检测被按下时间。以防止某些功能的误操作。
2.2.2显示的管理与控制
在每个显示刷新周期,zlg7290按照扫描位数寄存器(scannum)指定的显示位数 n,把显示缓存dpram0-dpramn的内容按先后顺序送入led驱动器以实现动态显示,减小n值可提高每位显示扫描时间的占空比,以增强led亮度,显示缓存中的内容不受影响。修改闪烁控制寄存器(flashonoff)可改变闪烁频率和占空比亮、灭的时间。
zlg7290有两种控制方式,即寄存器映像控制和命令解释控制。如上述对显示部分的控制,寄存器映像控制是指直接访问底层寄存器,实现基本控制功能,这些寄存器须字节操作。命令解释控制是通过解释命令缓冲区cmdbuf0-cmdbuf1 中的指令间接访问底层寄存器,实现扩展控制功能,如对寄存器的位操作。
2.2.3内部寄存器的定义
zlg7290内部可通过i2c总线访问的寄存器地址范围为00h-17h,任意寄存器都可按字节直接读写,也可以通过命令接口间接读写或按位读写。zlg7290的控制和状态查询均通过读/写寄存器实现,用户只需像读写24c02内的单元一样操作即可实现对zlg7290的控制。
(1)系统寄存器(systemreg):地址00h,复位值11110000b,系统寄存器可以保存zlg7290系统状态并可对系统运行状态进行配置。
(2)键值寄存器(key):地址01h,复位值00h,key表示被按下键的键值,当key=0时表示没有键被按下。
(3)连击次数计数器(repeatcnt):地址02h。复位值00h,repeatcnt=0时表示单击键,repeatcnt大于0时表示键的连击次数,用于区别出单击键或连击键,判断连击次数可以检测被按下时间。
(4)闪烁控制寄存器(flashonoff):地址0ch,复位值 0111b/0111b,高4位表示闪烁时“亮”的时间,低4位表示闪烁时“灭”的时间,改变其值同时改变了闪烁频率,也能改变“亮”和灭“的占空比。 flashonoff的1个单位相当于150 ms~250ms(”亮“和”灭“的时间范围为1-160000b相当1个单位时间),所有像素的闪烁频率和占空比相同。
(5)扫描位数寄存器(scannum):地址0dh,复位值7,用于控制最大的扫描显示位数(有效范围为0~7,对应的显示位数为18),减小扫描位数可提高每位显示扫描时间的占空比。以增强led的显示亮度。不扫描显示时,显示缓存寄存器则保持不变,如scannum=3时,只显示dpram0-dpram3的内容。
(6)显示缓存寄存器(dpram0-dpram7):地址10h-17h,复位值00h,00h缓存中一位置1表示该像素亮,dpram7-dpram0的显示内容对应dig7-dig0引脚。
2.2.4 i2c通信
zlg7290的i2c接口传输速率可达32 kbit/s,容易与处理器接口,并提供键盘中断信号,提高了主处理器的时间效率。有效的按键动作、普通键的单击、连击和功能键状态的变化都会令系统寄存器systemreg的keyavi位置1。int引脚信号信号为低电平有效,用户的键盘处理程序可由int引脚低电平中断触发,以提高程序效率,也可以不采样int引脚信号,节省系统的i/o数而采取轮询系统寄存器keyavi位的方式,在读键值寄存器时会使keyavi位清0,并会使int引脚信号无效,为确保某个有效的按键动作及所有参数寄存器的同步性.可利用i2c通信的地址自动递增功能。连续读取repeatcnt functionkey和key寄存器。
3 仪表面板接口的硬件连接
图2所示是zlg7290作为仪表面板接口的硬件连接,图中的8位led作为智能仪表面板的显示部分,键盘矩阵完成智能仪表面板的参数设定、修改按键,实现人机交互功能。
使用zlg7290驱动数码管显示有两种方法,一是向命令缓冲区(07h-08h)写入复合指令,向07h写入命令并选通相应的数码管,向08h写入所要显示的数据,这种方法每次只能写入一个字节的数据,多字节数据的输出可在程序中用循环写入的方法实现;二是向显示缓存寄存器(10h-17h)写入所要显示的数据的段码。段码的编码规则为从高位到低位为abcdefgdp,每次可写入1~8个字节数据。
4 仪表面板接口中的软件设计
下面是p89lpc932单片机的i2c接口部分的主程序:
图3是zlg7290在仪表面板应用中的键盘扫描及显示程序流程图。该流程实现的功能是:上电复位后,数码管显示初值0-7,若有键按下,判断是普通键还是功能键,若为功能键,则保持原来的显示不变,使8个数码管同时闪烁;若为普通键,则将键值显示在第一个和第二个数码管并同时闪烁,其他数码管不闪烁,原有的显示左移两位。
5 结束语
zlg7290作为键盘及显示管理器件与单片微处理器的连接,无论是硬件接口还是软件编程都非常简单。该器件本身具有扫描显示功能,不需要单片机进行动态扫描,以使其将更多的时间用于数据处理。已将zlg7290应用在所设计的产品当中,并取得了较为满意的效果。
RYJ线的作用是什么,RYJ低烟无卤线的型号有哪些
嵌入式Linux应用开发之开发坑记录
华为高价收购荣耀:不会再受到美国对华为的制裁
交流电路的基本特征量_三种基本的交流电路图及波形图
AI技术将持续在未来五年内创造庞大的商机与工作机会
基于多位LED显示及键盘管理器件实现实现智能仪表接口的设计
近场测量控制系统的研制
华为公开一个关于“减速器、动力总成及车辆”新专利
人工智能比人类更好地预测抗癌药物组合
solidworks有哪些不同的购买模式?
虚拟现实将改变我们的生活,但它会伤害我们吗?
PWM与电压转换芯片:APC&PAC芯片
干货:汽车RF通用系统前端的设计方案
用于可穿戴自充电生物超级电容器的MXene双功能生物阳极设计
java语言B/S架构医院云HIS系统源码【springboot】
优信充分将VR技术应用于二手车行业,推出首个VR全景看车服务
基于SoC FPGA进行工业设计及电机控制
智能工厂定义是什么
小米汽车发布会直播地址 小米要造一辆什么样的车
以后庞大的物联网设备数量如何来管理