在灯红酒绿的时代,彩灯循环无处不在!
题目:现利用74LS194双向移位寄存器两片和74LS160同步十进制计数器一片实现简单的一个彩灯电路循环电路,要求8个彩灯在开始时清零,再依次从左到右亮,从右到左灭,不断重复循环,如下表所示为灯的状态转换。D0,D1,...,D7表示八个灯,0表示灯灭状态,1表示灯亮状态。
CP | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
4 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
5 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
6 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
7 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
8 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
9 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
10 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
11 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
12 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
13 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
14 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
15 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
16 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
思路分析:
1.74LS194的设计思路
在设计电路时,我们发现74LS194双向移位寄存器的功能表为:
74LS194在上升沿到达时,进行左/右移位,如灯的状态转换图所示,先左移位,不断输送1,使得D0,D1,...,D7从左到右依次变亮,然后右移位,不断输送0,使得D0,D1,...,D7从右到左依次变暗。
因此额外的时钟信号需要保证两片74LS194实现双向8进制,共16进制。并且要求实现如下的循环
00000000->00000001->00000011->00000111->00001111->00011111->00111111->01111111->11111111->01111111->00111111->00011111->00001111->00000111->00000011->00000001->00000000
画出对应的时序图如下:
注:左侧数字从下到上依次表示D0,D1,...,D7,左侧Clock_Int表示时钟信号。
因此欲实现从左到右依次变亮的功能,则需要先将两片74LS194的4位双向移位寄存器自拓展为双向8位移位寄存器。先通过左移位,不断将1输入,再右移位,不断将0输入。
2.74LS160的设计思路
74LS160真值表如下:
现在已经实现了左移-依次变亮和右移-依次变暗的功能,那么将左移变为右移,即为使用74LS160的目的。
如下面电路图所示:笔者使用了1片74LS160以实现当最后一个灯变亮时,控制74LS160发出信号使得74LS190的右移位转化为左移位。并且当第一个灯变暗时,控制74LS160发出信号使得74LS190的左移位转化为右移位。
当D7从0->1时,为上升沿,控制74LS160的CP,使得74LS160实现计数功能,QA输出从0->1,当D0由1->0时,控制74LS160的CLR(异步清零端)实现QA输出1->0,从而控制由左移变为右移。
数字电路图:
总结
数字电路设计的关键在于灵活运用各个器件的功能,并根据功能表和状态转换图实现对应的逻辑功能,以达到具体的实际应用。
本题中使用了74LS160和74LS194两种电路,设计的关键在于将由左移变为右移。
2024/7/17补:
Multisim电路分享:
设计.7z: https://474b.com/f/51439519-1323775681-58cccd?p=2886 (访问密码: 2886)
压缩包密码:请私信;