ZLG7290

王朝百科·作者佚名  2010-05-21  
宽屏版  字体: |||超大  

ZLG7290
引脚说明

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。

编译软件使用的是WSD,这个软件主要是用于AD系列芯片的。只要下载扩展名为HEX的文件即可。

三.软件库及调用说明

(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() 测试按键函数,自动读出键值并且在数码管上显示

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有