搜索
bottom↓
回复: 10

Atemga16和8279??

[复制链接]

出0入0汤圆

发表于 2007-9-23 21:20:10 | 显示全部楼层 |阅读模式
请问有人用过Atemga16和8279连接吗??怎么联法?谢谢!

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2007-9-23 23:39:37 | 显示全部楼层
为什么用8279,不用7279?

出0入0汤圆

 楼主| 发表于 2007-9-24 15:16:41 | 显示全部楼层
不想占用串口!!!

出0入0汤圆

发表于 2007-9-24 16:02:40 | 显示全部楼层
还使用3个“!”,说明你比较顽固啦。

不知道你的串口是指哪个串口,M16有3个串行接口。

7279可以使用I/O口模拟,比并口扩展少用I/O。并且M16本身不支持并口扩展。另外到周力功网站找一下,有个类似的7290的51例子,使用I2C接口,改一下就可以了。

外围采用串口扩展是发展趋势,尤其在8位系统中。

下面是我书中的部分介绍:

    在并行接口向串行接口发展的今天,市场上已经推出了采用串行接口的专用的键盘/LED驱动电路,典型的有HD7279、ZLG7290等。这些芯片的功能同8279类似,甚至还要强大,但与控制器的连接只需要2~4根信号线。使用这些新型的可编程键盘显示器接口芯片,具有外围电路简洁,接口速度快,程序效率高,性能稳定,多功能等特点,得到了广泛的应用。

16.4.1 ZLG7290简介
    ZLG7290键盘/LED驱动器是周立功公司针对仪器仪表行业的需要自行研制的一款芯片。该芯片能自动完成8位LED数码管的动态扫描和(最多)64按键检测扫描,大大减轻单片机用于显示/键盘的工作时间和程序负担,可使集中资源用于信号的检测和控制。由于ZLG7290采用I2C总线的接口方式,使得芯片与单片机间的通讯只用2个I/O口便可完成,节省了单片机有限的I/O口资源。ZLG7290的主要特点有:
I2C串行接口,提供键盘中断信号,方便于处理器接口;
可驱动8位共阴数码管或64只独立LED和64个按键;
可控扫描位数,可控任一数码管闪烁;
提供数据译码和循环,移位,段寻址等控制;
8个功能键,可检测任一键的连击次数;
无需外接元件即直接驱LED,可扩展驱动电流和驱动电压;

  相比40脚的8279,ZLG7290只有24个引脚,减少了近50%。这主要是由于ZLG7290只使用了2个引脚与控制器连接。图16-16是ZLG7290的典型应用电路。

       图16-16 ZLG7290的典型应用电路

    在图中,U1就是ZLG7290B。为了使电源更加稳定,一般要在Vcc到GND之间接入47~470uF 的电解电容E1。J1是ZLG7290B与微控制器的接口,按照I2C总线协议的要求,信号线SCL和SDA上必须要分别加上拉电阻,其典型值是10KΩ。晶振Y1通常取值4MHz,调节电容C3和C4通常取值在10pF左右。复位信号是低电平有效,一般只需外接简单的RC复位电路,也可以通过直接拉低RST 引脚的方法进行复位。

    数码管必须是使用共阴极的,不能直接使用共阳极的。DPY1和DPY2是4位联体式数码管,共同组成一个完整的8位LED显示。数码管在工作时要消耗较大的电流,R1~R8是限流保护电阻,典型值是270Ω。如果要增大数码管的亮度,可以适当减小电阻值,最低为200Ω。

    64只按键中,前56个按键是普通按键K1~K56,最后8个为功能键F0~F7。键盘电阻R9~R16 的典型值是3.3KΩ。数码管扫描线和键盘扫描线是共用的,所以二极管D1~D8是必须的,有了它们就可以防止按键干扰数码管显示的情况发生。

    在多数的应用当中,可能不需要太多的按键,这时可以按行或按列裁减键盘。裁减后相应行的二极管或相应列的电阻可以省略。如果完全不使用数码管,则原来用到的所有限流电阻R1~R8也都可以省略,这时ZLG7290B消耗的电流大大降低,典型值为1mA。

16.4.2 AVR与ZLG7290的连接
   
    ATmega16与ZLG7290的硬件连接非常简单,将图16-16中的J1上SCL、SDA和~INT分别与ATmega16的PC0、PC1和PB2(外部中断INT2输入)连接即可实现ATmega16与ZLG7290的I2C总线连接。ATmega16为主机,ZLG7290则作为从机。
   
    ZLG7290的I2C接口传输速率可达32Kbit/s,同时还可以提供键盘中断信号~INT,以提高主处理器的效率。

    ZLG7290本身也是采用动态扫描方式驱动LED显示以及采样键盘的,它内部使用了24个寄存器,用于控制显示和记录键值等。访问这些寄存器需要通过I2C总线接口来实现。ZLG7290 的I2C总线器件地址是70H(写操作)和71H(读操作)。访问内部寄存器要通过“子地址”来实现。

    有效的按键动作、普通键的单击和连击、以及功能键状态的变化都会使ZLG7290的系统寄存器SystemReg中的KeyAvi位置1, 同时~INT 引脚信号有效,变为低电平。AVR的键盘处理程序可由~INT引脚低电平下降沿中断触发,以提高程序效率。也可以不使用~INT 引脚信号,节省AVR的一个I/O口,而采用轮询方式,定时访问ZLG7290系统寄存器中的KeyAvi位。
   
    可通过I2C总线访问的ZLG7290内部寄存器地址范围为00H~17H,任一寄存器都可按字节直接读写,也可以通过命令接口间接读写,或按位读写。ZLG7290的I2C接口还支持自动增址功能(访问一寄存器后,寄存器子地址sub address自动加一)和地址翻转功能(访问最后一寄存器子地址17H后,寄存器子地址翻转为00H)。ZLG7290的控制和状态查询,全部都是通过读/写寄存器实现的。用户只需象读写24C256内的单元一样,即可实现对ZLG7290的控制,具体请参考ZLG7290指令详解部分。

    由于篇幅所限,这里就不做进一步的程序设计介绍了,在本书的光盘中提供了ZLG7290全部开发资料和设计参考。只不过参考设计例程是MSC-51代码,需要读者转换成AVR的代码。

出0入0汤圆

发表于 2007-9-24 16:08:18 | 显示全部楼层
老马的脾气真好!

出0入0汤圆

发表于 2007-9-24 16:32:10 | 显示全部楼层
表扬还是批评?没人说我脾气好的,学生都怕我,甚至恨我。
头像被屏蔽

出0入0汤圆

发表于 2007-9-25 00:38:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2007-11-13 08:33:44 | 显示全部楼层
谢谢马老师!!!

出0入0汤圆

 楼主| 发表于 2007-11-13 08:35:19 | 显示全部楼层
7楼的三个“!”表示强烈的谢谢。

出0入0汤圆

发表于 2010-8-19 10:34:30 | 显示全部楼层
马老师是说的很对,  用7279  7290是蛮好的  可是我手头的设计需要控制9只数码管,5行6列的按键呢  所以还是考虑是不是用8279+74138+74154的外扩电路来搭建,恳请大家给出更好的建议。

出0入0汤圆

发表于 2012-10-11 15:36:45 | 显示全部楼层
7290B在使用过程中,用手触碰SCL线,会导致7290B把SCL线拉低,并且没法恢复!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 07:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表