单片机ZLG7290_第1页
单片机ZLG7290_第2页
单片机ZLG7290_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.1 ZLG7290的工作原理ZLG7290的核心是一块ZLG7290B芯片,它采用I2C接口,能直接驱动8位共阴式数码管,同时可扫描管理多达64只按键,实现人机对话的功能资源十分丰富。除具有自动消除抖动功能外,它还具有段闪烁、段点亮、段熄灭、功能键、连击键计数等强大功能,并可提供10种数字和21种字母的译码显示功能,用户可以直接向显示缓存写入显示数据,而且无需外接元件即可直接驱动数码管,还可扩展驱动电压和电流。此外,ZLG7290B的电路简单,使用也很方便。 用户按下某个键时,ZLG7290的INT引脚会产生一个低电平的中断请求信号,读取键值后,中断信号就会自动撤销。正常情况下,微控制器只需

2、要判断INT引脚就可以得到键盘输入的信息。微控制器可通过两种方式得到用户的键盘输入信息。其一是中断方式,该方式的优点是抗干扰能力强,缺点是要占用微控制器的一个外部中断源。其二是查询方式,即通过不断查询INT引脚来判断是否有键按下,该方式可以节省微控制器的一根IO口线,但是代价是I2C总线处于频繁的活动状态,消耗电流多并且不利于抗干扰。2基于ZLG7290的无功补偿控制器设计由于采用了I2C总线接口,因而用ZLG7290与微控制器设计电力仪表的硬件电路连接非常简单。它只需要两根信号线(一根数据线SDA,一根时钟信号线SCL)。但应注意进行I2C通信的双方要共地,并应用,INT传递键盘中断信号。微

3、控制器通过RST可以将ZLG7290复位。一 作用及其功能介绍ZLG7290能够直接驱动8 位共阴式数码管(或64 只独立的LED),同时还可以扫描管理多达64 只按键。其中有8 只按键还可以作为功能键使用,就像电脑键盘上的Ctrl、Shift、Alt 键一样。另外ZLG7290B 内部还设置有连击计数器,能够使某键按下后不松手而连续有效。采用I2C 总线方式,与微控制器的接口仅需两根信号线。可控扫描位数,可控任一数码管闪烁。 引脚说明二 使用说明ZLG7290B是基于I2C总线接口的芯片。主控单片机ADUC831作为主器件时,内部没有I2C总线功能,因此需用SPI总线的引脚来模拟I2C总线。

4、具体连接如下: 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(

5、); 产生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 Su

6、bMod,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

7、.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

8、(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(ch

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论