74HC573和74LS373原理数哪握一样,8数据锁存器。主要用于数码管、按键等等的控制
1. 真值表
参见74LS373的PDF的第2页:
Dn LE OE On
H H L H
L H L L
X L L Qo
X X H Z
这个就是真值表,表示这个芯片在输入和其它的情况下的输出情况。 每个芯片的数据手册(datasheet)中都有真值表。
布尔逻辑比较简单,在此不赘述;
2. 高阻态
就是输出既不是高电平,也不是低电平,而是高阻抗的状态;在这种状态下,可以
多个芯片并联输出;但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯
片烧毁;
高阻态的概念在RS232和RS422通讯中还可以用到。
3. 数据锁存
当输入的数据消失时,在芯片的输出端,数据仍然保持;
这个概念在并行数据扩展中经常使用到。
4. 数据缓冲
加强驱动能力。74LS244/74LS245/74LS373/74LS573都具备数据缓冲的能力。
OE:output_enable,输出使能;
LE:latch_enable,数据锁存使能,latch是锁存的意思;
Dn:第n路输入数据;
On:第n路输出数据;
再看这个真值表,意思如下:
第四行:当OE=1是,无论Dn、LE为何,输出端为高阻态;
第三行:当OE=0、LE=0时,输出端保持不变;
第二行第一行:当OE=0、LE=1时,输出端数据等于输入端数据;
结合下面的波形图,在实际应用的时候是这样做的:
a. OE=0;
b. 先将缓咐数据从单片机的口线上输出到Dn;
c. 再将LE从0->1->0
d. 这时,你所需要输出的数据就锁存在On上了,输入的数据在变化也影响不到输
出的数据了;实际上,单片机现在在忙着干别的事情,串行通信、扫描键盘……单
片机的资源有限啊。
在单片机按照RAM方式进行并行数据薯庆的扩展时,使用movx @dptr, A这条指令时,这
些时序是由单片机来实现的。
后面的表格中还有需要时间的参数,你不需要去管它,因为这些参数都是几十ns级
别的,对于单片机在12M下的每个指令周期最小是1us的情况下,完全可以实现;如
果是你自己来实现这个逻辑,类似的指令如下:
mov P0,A ;将数据输出到并行数据端口
clr LE
setb LE
clr LE ;上面三条指令完成LE的波形从0->1->0的变化
74ls573跟74LS373逻辑上完全一样,只不过是管脚定义不一样,数据输入和输出端