首页 | 博客群 | 公社 | 专栏 | 论坛 | 图片 | 资讯 | 注册 | 帮助 | 博客联播 | 随机访问
单片机电子工程师的三种境界- -| 回首页 | 2005年索引 | - -还是要在一个行业中挖金子,技术人员对行业的深入理解是关键

使用74系列芯片作为I/O并行扩展的方法以及总线驱动芯片的使用方法

关键词74系列芯片    总线驱动    南方的老树    单片机                                          

使用74系列芯片作为I/O并行扩展的方法以及总线驱动芯片的使用方法

使用74系列芯片作为I/O并行扩展的常见于过去单片机I/O口不够的情况,而且是需要大量的内存和程序存储器严重不足的情况下。

开关量输出的扩展经常使用的芯片是74LS273/74LS373/74LS573/74LS574;这些芯片的共同特点是具有数据锁存的功能;

开关量输入的扩展经常使用的芯片是74LS244/74LS245/74LS240等;这些芯片的特点是三态门,可以把多个芯片的输出,并联在一起而不会互相影响;

通过138139153等译码选通芯片,把RD/WR/地址的高位信号(高3位或者高4位,看单片机系统中的芯片的数量)接到译码芯片,把译码芯片的输出接到锁存器的锁存输入,或者缓冲器的选通输入。下面以74LS138为例。

要特别注意到,对245574273等使用TTL芯片以RAM方式做I/O扩展的,跟825581558253825162256等系列芯片不一样的地方,就是:

1825581558253825162256等芯片本身有wrrdce等信号,所以138的地址译码输出,可以直接接到CE;但是,245574273等芯片,没有wr或者rd信号,因此,如果系统中有这样的芯片扩展,就需要把wr或者rd加入到138中;

2)对于245或者244,要把数据读到数据总线上,芯片的数据的使能端必须是WR和地址译码数据的混和;

3)对于要把数据总线上的数据,锁存到574或者273的数据输出端口上,必须锁存器的LE,是地址和wr的混和;

因此,138的接法是:

1A15-》138A23

2A14-》138A12

3A13-》138A01

4RDWR74LS0000的输出接138E3(6)

5138的输出接245E或者574CLK

这样,使用 MOVX a@dptr的时候,才能在245E上出现带地址的RD信号;

使用 MOVX @dptr,A的时候,才能在574CLK上出现带地址的WR信号;

参见574的真值表,可见,E应该接低电平;

373573273574有所区别:

1573是从低-》高-》低,在从高-》低的瞬间,锁存数据;但是,在高电平的时候,数据是直通的,所以也可以使用这个特性做缓冲器,把LE直接接高电平;OE是三态门,直接接地;

2、但是138的输出是,当地址的输入有效的时候,是低电平,其它时间是高电平,所以在时序上跟573是不配合的,因此,573不能作为数据锁存器,除非138的输出加一个反向门接到LE

574是上升沿锁存数据,138的输出直接作为锁存脉冲即可;

如果系统中没有825581558253825162256这样的芯片,也可以使用139RDwr分别接入一个2-4译码器,译码器的输出分别接到245E574LE,这样可以省去一个74LS00

地址、数据、RDWR等时序是51MOVX a@dptr或者MOVX @dptr,A时自动产生的。

245244不具备锁存的功能,具备选通输入或者输出的功能,所以可以作为扩展I/O输入;

245244同时作为总线芯片的另外一个特点是驱动能力加强了,可以提供比较大的输出电流,所以经常用来直接驱动光耦、发光管等,也可以用于驱动微型的继电器!

也可以利用三态门的选通功能,把作为多个子板(地址不同)的输出并联在一起,

三态门芯片主要是74LS24574LS24474LS240;还有一些芯片但是不怎么常用;

1、数据总线:

只能使用74LS245,因为数据总线是双向的;而74LS245是双向的总线驱动器,有一个芯片管脚DIR是控制方向的;

2、地址总线

使用74LS244,也可以使用74LS245,因为245的输入输出排列在芯片一侧,比较好布线

74LS240比较少使用到,因为它是反向的。

244245作为数据总线和地址总线芯片使用在:

1、电路板上大量使用TTL芯片,比如,74LS57474LS27374LS24574LS244作为I/O并行扩展;因为芯片比较多,单片机的数据和地址总线驱动能力比较弱,无法带动这么大的负载;

而且,往往电路板的面积比较大,线路比较长;使用总线驱动芯片成了唯一的选择;

2、多板结构的仪器或者设备,例如STD总线的CPU模板和其它的接口模板;还有ISA总线的板卡,尤其是工控行业的ISA总线的I/O板,更是经常看见一片74LS245;这是作为数据总线驱动芯片的;

3、也可以利用三态门的选通功能,把作为多个子板(地址不同)的输出并联在一起

例如在我设计的一个多板的系统中,每个板子有2位的地址;一共有16个输出;

每个电路板根据地址选择其中的4路输出;其它的12路为高阻态。

通过拨码开关作为地址选择输出是哪4路;

然后把这4块的电路板的输出通过背板并联接到一个CPU板进行处理,解决了这4块同样的电路板输出并联在一起的问题。

 

【作者: laoshu0902】【访问统计:】【2005年10月15日 星期六 17:06】【注册】【打印

搜索

Google

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=3228772

博客手拉手

感谢lxlong先生慷慨提供51CPLD学习板专门的论坛!
感谢lxlong先生慷慨提供51CPLD学习板专门的论坛!
单片机学习
单片机电子工程师的三种境界
这周第一次培训,还做了一次实验

回复

- 评论人:strilence   2007-08-15 08:41:21   strilence的博客  

很好啊 我正在找这个资料 谢谢了!!!

- 评论人:strilence   2007-08-15 08:41:07   strilence的博客  

很好啊 我正在找这个资料 谢谢了!!!

- 评论人:strilence   2007-08-15 08:40:43   

很好啊 我正在找这个资料 谢谢了!!!

- 评论人:huzeng168   2006-01-15 11:45:13   

在本书上看到有这样I/O扩展方法,但我试了试不行,各位前辈,帮我看看这样I/O扩展为什么不行?小弟愚,看到书上是用MOVX命令,我仔细看了看MOVX命令读写时序图,看不出问题,特向各位前辈请教,望指点,谢谢!
http://file.21ic.com.cn/upload/img/200511/20061159193043428.gif

- 评论人:老树   2005-10-19 19:36:15   

RE:
1、在构成输入口时若输入数据是常态,这类芯片应局有缓冲功能,若输入数据是暂态应具有锁存选通功能
不一定,主要看你的数据和时序的配合;例如,从ram中读数据,RAM的数据出来的也是暂态;但是它能和51的时序配合的很好;当然也有速度的问题;高速的RAM,可能51配合的时候要仔细的看CPU和RAM之间的时序是不是配合;
如果输入的是开关量信号,输入本来就是变化的,采集的本来也是它的变化值,就不需要锁存;
2、从经验上看,4个TTL电平以上我认为就需要加245或者244;8个以上那肯定是要加的!4~8个之间,加与不加,看你的胆量!我胆子小,肯定是加的。
至于如何实现驱动我也不没有仔细研究;一个TTL电路本来就是有很多三极管组成的;
至于某个芯片是否具有驱动能力,主要看它的输入电流的能力。

- 评论人:Jqm   2005-10-19 18:32:17   

在扩展这I/O口时, 在构成输出口时采用的芯片应局有锁存功能,在构成输入口时若输入数据是常态,这类芯片应局有缓冲功能,若输入数据是暂态应具有锁存选通功能 ,对于单片机也能驱动TTL芯片,当TTL为几个时应该加244或245总线驱动?244和245是如何实现驱动?就是内部好象是8组3态门,如果用三极管来驱动可以理解有电流放大作用 我是初学者望老树指点

验证码:   
评论内容: