1 设计任务目的与要求
1.1 设计目的:
1. 此次课程设计的目的是一方面使我们能够进一步理解课程内容,基本掌握数字系统设计和调试的方法,增加集成电路应用知识,培养我们的实际动手能力以及分析、解决问题的能力。另一方面也使我们更好地巩固和加深对基础知识的理解,学会设计中小型数字系统的方法,独立完成调试过程,增强我们理论联系实际的能力,提高电路分析和设计能力,通过实践引导我们在理论指导下有所创新,为专业课的学习和日后工程实践奠定坚实的基础。
1.2 设计要求:
10路彩灯分别用10个发光二极管L0、L1…..L9模拟,发光二极管L0、L1…..L9从左到右排列。
要求显示三种不同的花型:
(1)10路彩灯按照L0、L1…..L9的顺序依次点亮至全亮,再按照L9、L8…..L0的顺序依次熄灭至全灭。
(2)10路彩灯按照L0L1亮、L1 L2亮、L2L3亮、…L8L9亮、L9L0亮的顺序轮流点亮。
(3)10路彩灯按照L0L9、L1L8、L2L7、L3L6、L4L5的顺序依次点亮,然后按相反的
顺序依次灭掉。
控制电路设有启动、切换、复位按钮。按下启动按钮,进入花型(1)并反复循环运行。按下切换按钮,进入花型(2)并反复循环运行;再次按下切换按钮,进入花型(3)并反复循环运行;再次按下切换按钮,则三个花型顺序运行并反复循环;若再次按下切换按钮,则又进入花型(1)并反复循环;不断按下切换按钮,则按上面顺序进行花型切换。任何时候按下复位按钮,全部灯灭。
2 模块及其原理介绍
2.1 计数电路单元
该电路单元由两片74192计数器组成。74192计数器是双时钟十进制计数器。本电路用一片74192来实现0到9,即0000到1001的十进制计数,同时用另外一个74192的来对第一片芯片进位进行计数,第二个芯片计数到2时同时对两个计数器进行清0操作,构成一个二十进制的计数器。其电路图如下图所示。
2.2 编码电路单元
总编码电路图:
从上图我们可以明显的看出来,按纵列排序,从右到左分别是花型1第一部分、花型1第二部分、花型2和花型3的实现的门电路。
花型1:
下面是花型1 的真值表,由于在高位灯泡亮的时候,低位灯泡一定会亮,则可以利用与门将高位的输出信号与低位的输入信号相与来作为低位的输出信号,依次类推。
A2 | D1C1B1A1 | L0 L1 L2 L3 L4 L5 L6 L7 L8 L9 |
0 | 0000 | 0 1 1 1 1 1 1 1 1 1 |
0 | 0001 | 0 0 1 1 1 1 1 1 1 1 |
0 | 0010 | 0 0 0 1 1 1 1 1 1 1 |
0 | 0011 | 0 0 0 0 1 1 1 1 1 1 |
0 | 0100 | 0 0 0 0 0 1 1 1 1 1 |
0 | 0101 | 0 0 0 0 0 0 1 1 1 1 |
0 | 0110 | 0 0 0 0 0 0 0 1 1 1 |
0 | 0111 | 0 0 0 0 0 0 0 0 1 1 |
0 | 1000 | 0 0 0 0 0 0 0 0 0 1 |
0 | 1001 | 0 0 0 0 0 0 0 0 0 0 |
1 | 0000 | 0 0 0 0 0 0 0 0 0 1 |
1 | 0001 | 0 0 0 0 0 0 0 0 1 1 |
1 | 0010 | 0 0 0 0 0 0 0 1 1 1 |
1 | 0011 | 0 0 0 0 0 0 1 1 1 1 |
1 | 0100 | 0 0 0 0 0 1 1 1 1 1 |
1 | 0101 | 0 0 0 0 1 1 1 1 1 1 |
1 | 0110 | 0 0 0 1 1 1 1 1 1 1 |
1 | 0111 | 0 0 1 1 1 1 1 1 1 1 |
1 | 1000 | 0 1 1 1 1 1 1 1 1 1 |
1 | 1001 | 1 1 1 1 1 1 1 1 1 1 |
花型2:
下面是花型2的真值表,在将花型1解决之后,花型2的连接也就顺手拈来了。按照真值表连接即可。
DCBA | L0 L1 L2 L3 L4 L5 L6 L7 L8 L9 |
0000 | 0 0 1 1 1 1 1 1 1 1 |
0001 | 1 0 0 1 1 1 1 1 1 1 |
0010 | 1 1 0 0 1 1 1 1 1 1 |
0011 | 1 1 1 0 0 1 1 1 1 1 |
0100 | 1 1 1 1 0 0 1 1 1 1 |
0101 | 1 1 1 1 1 0 0 1 1 1 |
0110 | 1 1 1 1 1 1 0 0 1 1 |
0111 | 1 1 1 1 1 1 1 0 0 1 |
1000 | 1 1 1 1 1 1 1 1 0 0 |
1001 | 0 1 1 1 1 1 1 1 1 0 |
花型3:
下面是花型3的真值表,这里可以从中往两边看,即在4之前,高位亮低位必亮,在5之后,低位亮高位必亮,所以也可以套用花型1的化简办法,4之前高位的输出与低位的输入相与,5之后低位的输出与高位的输入相与,稍作调整,即可得到化简后的连接方式,即如我总编码图最左侧所连接的方式。
DCBA | L0 L1 L2 L3 L4 L5 L6 L7 L8 L9 |
0000 | 0 1 1 1 1 1 1 1 1 0 |
0001 | 0 0 1 1 1 1 1 1 0 0 |
0010 | 0 0 0 1 1 1 1 0 0 0 |
0011 | 0 0 0 0 1 1 0 0 0 0 |
0100 | 0 0 0 0 0 0 0 0 0 0 |
0101 | 0 0 0 0 1 1 0 0 0 0 |
0110 | 0 0 0 1 1 1 1 0 0 0 |
0111 | 0 0 1 1 1 1 1 1 0 0 |
1000 | 0 1 1 1 1 1 1 1 1 0 |
1001 | 1 1 1 1 1 1 1 1 1 1 |
2.3 花型控制电路单元
列出对应的真值表:
QA(计数电路) QB QA (U69) QB QA (U70) | A B (多路选择器) |
0 0 0 0 0 | 0 0 |
1 0 0 0 0 | 1 1 |
d 0 1 0 0 | 0 1 |
d 1 0 0 0 | 1 0 |
0 1 1 0 1 | 0 0 |
1 1 1 0 1 | 1 1 |
0 1 1 1 0 | 0 1 |
1 1 1 1 1 | 1 0 |
其他 | d d |
根据真值表画出卡诺图
并化简得到逻辑函数。
2.4 彩灯显示电路单元
由于前面输送过来的是低电平信号才是亮的信号,所以在前面接个反相器,然后与一个控制信号相与,得到了最终输出到灯泡的信号,而控制信号则作为复位键。
2.5 切换电路单元
在切换电路中,主要思想是由切换键的点击构成计数器的计数信号,然后将花型与数字状态关联起来,这样便能做到通过计数来切换花型。而在这之中最为重要的则是第二片计数器,这片计数器是用于单独控制三花型循环的,即在第一片计数器计数到第四个状态,即3的时候,第二片计数器同步进入计数,要完成这点则需要将第二片计数器的计数信号也与切换键关联起来,这样才能够与第一片计数器同时获得计数的信号,作为开始计数的标志,在获得第一次开始计算的信号后,第二片计数器进入状态1,这时我们要求他应在1到3之间循环,对应三个花型的循环,根据需求,我就直接写出第二片计数器的计数信号的逻辑函数了,如下图所示。
3 设计方案
3.1 设计思路
根据老师给出的设计要求,彩灯循环控制器主要是完成10个灯泡按照不同排列组合的亮灭。由此可想到用74192计数器从0-9计数,分别对应十个灯泡的亮灭情况。而其中花型1较为特殊,因其完成循环需要的是20次计数,需要计数两轮才能完成花型的展示。然后由于74192芯片的输出对应的是8421编码,可以用7442译码器将计数的值转化成十路对应0到9的输出。又因为需要完成的一共有三种花型,四种状态(花型1可分为正序和倒序的两种状态),可以通过四选一多路选择器,即74153多路选择器来控制花型的切换。
3.2 设计框图及原理
设计框图如下
设计原理:
该彩灯循环控制器的原理是:由方波信号发生器产生稳定的高频脉冲信号,作为计时基准。用两个十进制计数器构成二十进制的计数器来实现电路计数,花型一需要20个状态来展示彩灯,故需要二十进制的计数器,而花型二和三则只需要十进制计数器来实现花型,故无需考虑第二个计数器的状态。将第一片计数器接到译码器上编译,按照各花型的要求通过简单的门电路接到对应的多路选择器的4个输入端中。多路选择器的控制端由花型控制电路来控制,花型控制电路主要由两个计数器来实现对应花型的计数,再结合前面计数电路的第二个芯片的输出值进行逻辑电路的连接完成选择器控制端相对应的值。由于74153有两个输出值,故本次一共需要5个多路选择器输出到对应的彩灯显示电路。
3.3 流程图
3.4 总电路图
4 实验结果与数据分析
4.1 实验现象及数据分析
首先将开关拨到如图所示
,此为关闭状态,数码管显示皆为0,而后将开关拨到与地相连,计数器开始计数,上面那个计数器做正常的十进制计数,并将进位信号发送到下面的计数器作为计数信号,下面的计数器做二进制计数,即整体为二十进制计数器。无异常现象。
再来做切换按钮的测试,
图中用空格键控制的为切换按键,用C控制的为清零键,作用在接下来会说明。点击切换按钮,将信号传入两个计数器,使其计数,注意点击的时间需久一点(约1秒),最好能观察到数码管显示计数器已经计数再松开按钮,否则会出现点击了按钮却并没有切换花型的问题。当上面的计数器处于2的计数状态时,也就是下一个计数状态为3,进入花型循环,即如图
。如果按键按的时间不够久,则会出现上面计数器进入3,而下面计数器因为信号时间太短不计数的情况,即这样
,这种情况下,我们原本3花型循环状态是通过下面的计数器实现的,而三个花型状态分别对应计数器1、2、3的状态,即0状态是不对应花型的,也就是说,下面的计数器会卡在0状态不进行计数循环。导致花型切换失败,
由U70的进位信号的逻辑函数可以看的出来,从0到1 的跳变是需要开关控制的,如果由于按键时间过短导致无法进入到如图的正常状态
,则需要用到清零键,重新开始进行花型切换。
再看彩灯结果
,也是可以按照要求呈现的。只是在花型切换的时候会有些许问题。这个问题将在总结的时候讨论。
5 结论与问题讨论
5.1 结论与问题讨论
在上一部分的测试中,可以看出在设计要求上我的完成度很高,基本完美满足了设计的要求。在整个设计二点过程中,我遇到的最大的问题应该是花型切换按键的设计部分了吧,一开始我的方案是想着用4个计数器和4个译码器分别对应4种花型的(花型1占两种),然后通过门电路来选择给哪个计数器供应时钟信号,但由于复杂程度的原因而不得不放弃这个想法,在查阅了一系列资料之后,终于在网络上找到了一篇前人的设计思路,是通过多路选择器来选择输出的花型的想法。第一次看到这个思路的时候我也不禁感叹这思路的清晰与简洁。然而美中不足的是,这套方案在切换花型的那一刻的信号输出并不连续,导致花型切换的不够连贯。为了弄清楚这是如何导致的,我在前面各级电路种也分别装上了小灯泡来观察,发现在信号传输过程中,灯泡是可以明显看出呈逐级亮(灭)的状态的,我也因此断定花型切换问题是由于电路延迟导致切换不连贯的,遂将之说与老师,与老师讨论一番之后,老师也提出了另一个可能:由于各电路器件的搭配问题而产生的信号延迟。从这两种可能出发,我也尝试做出补救,像是更换器件、在电路中增加电阻增大电路、重新设计简化电路、或是并联上小电容等,效果并不甚佳。
在使用软件的过程中,我学习并掌握了该软件的使用方法,加强了实际动手能力,并且明白了做事必须谨慎的道理,哪怕有一条线接错了也会导致整个电路的失败,使其不能正常运行从而达到我们的要求。这次的课程设计也让我知道了必须掌握大量的相关知识,不能得过且过。
编辑:hfy
评论
查看更多