zlg7290cs 8位数码管驱动ic

品牌 zlg-mcu 型号 zlg7290cs
批号 09+ 封装 soic24
营销方式 库存 产品性质 热销
处理信号 模拟信号 工艺 混合集成

型号:zlg7290cs

:zlg-mcu

封装:soic24

描述:全新原装无铅现货

  

zlg7290使用说明

 

  一.        作用及其功能介绍

 

  zlg7290能够直接驱动8 位共阴式数码管(或64 只独立的led),同时还可以扫描管理多达64 只按键。其中有8 只按键还可以作为功能键使用,就像电脑键盘上的ctrl、shift、alt 键一样。另外zlg7290b 内部还设置有连击计数器,能够使某键按下后不松手而连续有效。采用i2c 总线方式,与微控制器的接口仅需两根信号线。可控扫描位数,可控任一数码管闪烁。

 

  二.        使用说明

 

  zlg7290b是基于i2c总线接口的芯片。主控单片机aduc831作为主器件时,内部没有i2c总线功能,因此需用spi总线的引脚来模拟i2c总线。具体连接如下:

 

  zlg7290b         aduc831

 

  gnd         dgnd

 

  sda         mosi

 

  scl         sclock

 

  /int          int0

 

  vcc         dvdd

 

  但是,这种连接不是唯一的,只是在所写的软件里需要这样连接。其实中断可以根据自己所选的中断而定。地(gnd)和电源(vcc)也可以另外从电源上接过来。所用电源为5v。

三.软件库及调用说明

 

  (1)i2c头文件库

 

  ⑴ void i2c_delay(); i2c延时程序

 

  ⑵ void i2c_init(); i2c 总线初始化,使总线处于空闲状态

 

  ⑶ void i2c_start(); 产生i2c 总线的起始状态

 

  ⑷ void i2c_write(char dat); 向i2c 总线写1 个字节的数据

 

  ⑸ char i2c_read(); 从从机读取1 个字节的数据

 

  ⑹ bit i2c_getack(); 读取从机应答位

 

  ⑺ void i2c_putack(bit ack); 主机产生应答位或非应答位

 

  ⑻ void i2c_stop(); 产生i2c 总线的停止状态

 

  ⑼ void idle(); 将i2c总线置于空闲状态,即将时钟线和数据线都拉高

 

  ⑽ bit i2c_puts(unsigned char slaveaddr,unsigned int subaddr,unsigned char submod,char *dat,unsigned int size); i2c 总线综合发送函数,向从机发送多个字节的数据

 

  ⑾ bit i2c_gets(unsigned char slaveaddr,unsigned int subaddr,unsigned char submod,char *dat,unsigned int size);i2c 总线综合接收函数,从从机接收多个字节的数据

 

  ⑿ char gets2(unsigned char subaddr);

 

  (2)zlg7290函数库

 

  首先要包含另一个库zlg7290b.h,里面定义了zlg7290的各个寄存器地址和它本身的地址。而zlg7290.h包含的函数如下:

 

  ⑴ bit zlg7290_writereg(unsigned char regaddr, char dat) 向zlg7290 的某个内部寄存器写入数据

 

  ⑵ unsigned char zlg7290_readreg(unsigned char regaddr) 从zlg7290 的某个内部寄存器读出数据

 

  ⑶ bit zlg7290_cmd(char cmd0, char cmd1) 向zlg7290 发送控制命令

 

  ⑷ bit zlg7290_segonoff(char seg, bit b) 段寻址,单独点亮或熄灭数码管(或led)中的某一段

 

  ⑸ bit zlg7290_download(char addr, bit dp, bit flash, char dat) 下载数据并译码

 

  说明:⑴,⑵,⑶,⑷,⑸中的函数都有返回值,0表示正常返回,1表示访问zlg7290 时出现异常。

 

  (3)主函数zlg7290b.c;

 

  void int0_svc() interrupt 0 中断服务函数

 

  void delay1(unsigned int t) 延时函数

 

  void systeminit() 系统初始化函数,用于初始化定时器和让zlg7290复位

 

  void clearall() 清除所有数码管显示函数

 

  void test_dispbuf() 测试直接写显存函数,

 

  void test_download() 测试下载数据函数

 

  void test_scannum() 测试扫描不同数码管函数

 

  void test_flash() 测试闪烁功能函数

 

  void test_segonoff() 测试段寻址函数,用于将数码管分段点亮

 

  void dispvalue(char x, unsigned char dat) 以十进制显示数据函数

 

  void disphexvalue(char x, unsigned char dat) 以十六进制显示数据函数

 

  void test_key() 测试按键函数,自动读出键值并且在数码管上显示