74LS164的功能与使用方法
的有关信息介绍如下:74LS164是一个串行输入,并行输出的逻辑芯片,利用它可以节省单片机端口,达到2个端口产生8个数据的效果。
从官网或者alldatasheet获取74LS164的数据手册。它的全名是Serial-In Parallel-Out Shift Register即“串行输入并行输出移位寄存器”,这与我们单片机的串口通信刚好相反,利用这一功能可以起到解决单片机端口的作用。
像大多数芯片一样,这颗芯片也具备插件和贴片两种封装形式,工作电压为5V,适应范围4.75~5.25,感觉有点窄了。工作唯独0~70度,属于低端产品。适用于供电稳定、环境温度变化不大的场合。毕竟只是古老的LS系列嘛。
从结构上讲,74LS164虽然是串行输入,但是却需要4个控制端口,输出的话是8个,正好一个字节。其中MR脚用于复位芯片,也就是将输出全部设置为低电平。A和B是数据输入脚,这个不知道为什么设置两个脚,感觉有点浪费了。CP脚用于提供工作时钟,上升沿有效,也就是上升沿的时候数据会被锁存,CP为低电平的时候可以改变A和B的状态。
74LS164的原理图可以知道它主要由一个与门、两个非门加8个D触发器构成,清位脚MR经过一个非门设定在D触发器的设置位脚,这样可以实现8个D触发器的同步更新。从个端口的状态表可以看到当M4为低电平时A和B脚的信号不会对输出产生影响,当MR为高电平时,Q0由A*B决定,Q1~Q7则由Q0移入。
74LS164的AC特性显示其边沿演示约为20纳秒,可适应36MHz的数字信号,这个对于普通的单片机一般是够用的。同时注意,MR、CP、Q之间具有一定的延时,数据读取时需要注意延时处理。
利用AD绘制一个74LS164的原理图封装,注意MR上面有一条横线,表示低电平有效。
下面是用8个LED组成的74LS164的测试电路,其中S1、S2是拨码开关,可以锁定在高电平或低电平,A和B连接到一个点,可以实现一个数据信号的输入,采用LED可以比较容易的知道测试结果,CP使用微动开关S3控制,这样比较容易产生一个电平跳变,C1可以起到一定的消抖作用。
使用74LS164扩展输出端口是可以参考下面的电路,发送的单片机和接收的单片机都连到CP口,这样方便时钟同步,当然如果想更可靠的实现数据传输,那么还需要增加通信协议,最简单的就是奇偶校验,比如什么电平开始传输。MR脚如果不适用可以直接接到VCC,这样就不用多出一个口来控制它了。