<?XML:NAMESPACE PREFIX = O />
使用74系列芯片作为I/O并行扩展的常见于过去单片机I/O口不够的情况,而且是需要大量的内存和程序存储器严重不足的情况下。
开关量输出的扩展经常使用的芯片是74LS273/74LS373/74LS573/74LS574等;这些芯片的共同特点是具有数据锁存的功能;
开关量输入的扩展经常使用的芯片是74LS244/74LS245/74LS240等;这些芯片的特点是三态门,可以把多个芯片的输出,并联在一起而不会互相影响;
通过138、139、153等译码选通芯片,把RD/WR/地址的高位信号(高3位或者高4位,看单片机系统中的芯片的数量)接到译码芯片,把译码芯片的输出接到锁存器的锁存输入,或者缓冲器的选通输入。下面以74LS138为例。
要特别注意到,对245、574、273等使用TTL芯片以RAM方式做I/O扩展的,跟8255、8155、8253、8251、62256等系列芯片不一样的地方,就是:
1)8255、8155、8253、8251、62256等芯片本身有wr、rd、ce等信号,所以138的地址译码输出,可以直接接到CE;但是,245、574、273等芯片,没有wr或者rd信号,因此,如果系统中有这样的芯片扩展,就需要把wr或者rd加入到138中;
2)对于245或者244,要把数据读到数据总线上,芯片的数据的使能端必须是WR和地址译码数据的混和;
3)对于要把数据总线上的数据,锁存到574或者273的数据输出端口上,必须锁存器的LE,是地址和wr的混和;
因此,138的接法是:
1、A15-》138的A2(3)
2、A14-》138的A1(2)
3、A13-》138的A0(1)
4、RD和WR接74LS00,00的输出接138的E3(6)
5、138的输出接245的E或者574的CLK;
这样,使用 MOVX a,@dptr的时候,才能在245的E上出现带地址的RD信号;
使用 MOVX @dptr,A的时候,才能在574的CLK上出现带地址的WR信号;
参见574的真值表,可见,E应该接低电平;
373、573与273、574有所区别:
1、573是从低-》高-》低,在从高-》低的瞬间,锁存数据;但是,在高电平的时候,数据是直通的,所以也可以使用这个特性做缓冲器,把LE直接接高电平;OE是三态门,直接接地;
2、但是138的输出是,当地址的输入有效的时候,是低电平,其它时间是高电平,所以在时序上跟573是不配合的,因此,573不能作为数据锁存器,除非138的输出加一个反向门接到LE;
而574是上升沿锁存数据,138的输出直接作为锁存脉冲即可;
如果系统中没有8255、8155、8253、8251、62256这样的芯片,也可以使用139,RD和wr分别接入一个2-4译码器,译码器的输出分别接到245的E和574的LE,这样可以省去一个74LS00。
地址、数据、RD、WR等时序是51在MOVX a,@dptr或者MOVX @dptr,A时自动产生的。
245、244不具备锁存的功能,具备选通输入或者输出的功能,所以可以作为扩展I/O输入;
245、244同时作为总线芯片的另外一个特点是驱动能力加强了,可以提供比较大的输出电流,所以经常用来直接驱动光耦、发光管等,也可以用于驱动微型的继电器!
--------------------------------------------------------------------
74系列的芯片只要看真值表和功能框图就可以了
74ls245: 8 双向3态缓冲电路。主要使用在数据的双向缓冲,原来常见于51的数据接口电路,比如,早期电路中,扩展了很多的8255/8155/8251/8253/573等芯片的时候,担心8031的数据驱动能力不足,就使用一片245作为数据缓冲电路,增强驱动能力;也常见与ISA卡的接口电路;245是双向的。
看真值表就知道了。
G=0,DIR=0,B->A;
G=0, DIR="1", A->B;
G=1, DIR="X", X="0或者1",输入和输出均为高阻态;高阻态的含意就是相当于没有这个芯片;
74系列的芯片只要看真值表和功能框图就可以了
74ls245: 8 双向3态缓冲电路。主要使用在数据的双向缓冲,原来常见于51的数据接口电路,比如,早期电路中,扩展了很多的8255/8155/8251/8253/573等芯片的时候,担心8031的数据驱动能力不足,就使用一片245作为数据缓冲电路,增强驱动能力;也常见与ISA卡的接口电路;245是双向的。
看真值表就知道了。
G=0,DIR=0,B->A;
G=0, DIR="1", A->B;
G=1, DIR="X", X="0或者1",输入和输出均为高阻态;高阻态的含意就是相当于没有这个芯片;
74系列的芯片只要看真值表和功能框图就可以了
74ls245: 8 双向3态缓冲电路。主要使用在数据的双向缓冲,原来常见于51的数据接口电路,比如,早期电路中,扩展了很多的8255/8155/8251/8253/573等芯片的时候,担心8031的数据驱动能力不足,就使用一片245作为数据缓冲电路,增强驱动能力;也常见与ISA卡的接口电路;245是双向的。
看真值表就知道了。
G=0,DIR=0,B->A;
G=0, DIR="1", A->B;
G=1, DIR="X", X="0或者1",输入和输出均为高阻态;高阻态的含意就是相当于没有这个芯片;
74系列的芯片只要看真值表和功能框图就可以了
74ls245: 8 双向3态缓冲电路。主要使用在数据的双向缓冲,原来常见于51的数据接口电路,比如,早期电路中,扩展了很多的8255/8155/8251/8253/573等芯片的时候,担心8031的数据驱动能力不足,就使用一片245作为数据缓冲电路,增强驱动能力;也常见与ISA卡的接口电路;245是双向的。
看真值表就知道了。
G=0,DIR=0,B->A;
G=0, DIR="1", A->B;
G=1, DIR="X", X="0或者1",输入和输出均为高阻态;高阻态的含意就是相当于没有这个芯片;
文章评论(0条评论)
登录后参与讨论