数字电路课程设计彩灯控制电路.docx
《数字电路课程设计彩灯控制电路.docx》由会员分享,可在线阅读,更多相关《数字电路课程设计彩灯控制电路.docx(20页珍藏版)》请在冰豆网上搜索。
![数字电路课程设计彩灯控制电路.docx](https://file1.bdocx.com/fileroot1/2023-6/8/c08fd17b-5f0f-48e7-882f-d30bf22449af/c08fd17b-5f0f-48e7-882f-d30bf22449af1.gif)
数字电路课程设计彩灯控制电路
目录
第1章设计任务…………………………………………………………………4
1.1设计题目及要求……………………………………………………………4
1.2备选方案设计与比较……………………………………………………4
第2章方案设计…………………………………………………………………4
2.1总体方案说明……………………………………………………………4
2.2整体模块与总体方框图…………………………………………………5
第3章单元电路设计原理说明与仿真波形…………………………………6
3.1分频电路……………………………………………………………………6
3.1.1蜂鸣器分频电路………………………………………………….7
3.1.2控制分频电路……………………………………………………7
3.2计数电路……………………………………………………………………8
3.2.1顺时计时电路…………………………………………………….8
3.2.2倒计时电路……………………………………………………….9
3.3彩灯控制电路………………………………………………………………11
3.3.1第一阶段电路…………………………………………………….11
3.3.2第二阶段电路…………………………………………………….12
3.3.3第三阶段电路…………………………………………………….13
3.3.4第四阶段电路…………………………………………………….15
3.4蜂鸣器电路…………………………………………………………………16
第4章整机电路各单元模块信号连接分析及功能说明…………………17
4.1单元电路模块之间的连接说明和信号分析………………………17
4.2整体功能说明………………………………………………………………18
第5章遇到问题及解决方案…………………………………………………25
5.1遇到问题及解决方案……………………………………………………19
第6章设计小结与建议…………………………………………………………19
6.1小结建议…………………………………………………………………………19
6.2致谢………………………………………………………………………………19
附录I:
参考及引用文献…………………………………………………………20
课题名称:
数字电子技术基础
第一章、设计任务
1.1设计题目及要求
设计一个电路来控制16个指示灯,循环的规律如下:
第一阶段,指示灯从左到右依次亮,1秒亮1个,第二阶段,指示灯从右到左依次熄灭,1秒灭1个,第三阶段,指示灯全亮1秒,全灭1秒,第四阶段,从中间往左右两边依次点亮,1秒亮2个,第五阶段,从右两边往中间依次熄灭,1秒灭2个,第六阶段,指示灯全亮,全灭各秒,返回第一阶段,循环往复,运行模式固定。
每个阶段有倒计时,如第一阶段从15、14、13…..01、00减法计数,用2个数码管显示,每个循环有加法计时,01、02、03……51、52(六个阶段共16+16+2+8+8+2=52),用2个数码管显示。
不同阶段灯的亮或灭伴有不同声调声音,如第一阶段“嘀”,第二阶段“嘟”,第三阶段“哔”,第四阶段“哒”第五阶段“咚”第六阶段“呜”等等,以示控制电路处于不同的运行阶段。
1.2备选方案与比较
方案一:
设计一个控制总线同时控制计时和彩灯以及蜂鸣器,这样做总体理念比较简单,但对控制电路的要求较高。
方案二:
分别设计彩灯、计时以及蜂鸣器电路,最后各模块同步运行。
这样做做起来比较简单,但总体结构比较臃肿,器件要求相对较多。
第2章、方案设计
2.1总体方案说明
两个方案的比较分析已经阐明,我在做的时候先是尝试了第一种方案,但是由于理论知识比较匮乏,控制信号只能做出一个循环,一个循环过后不能重复运行,曾尝试用另一个信号结合74158反相输出四2选1数据选择器来实现整个电路的循环运行,但是由于74158的接口特性要达到多次循环必须用大量的74158,并且需要同等数量的控制信号。
最后选择了方案二,由于方案一的失败给了许多启示,方案二最终也做了出来,并且方案二在调试的时候十分方便,电路最终也不会太复杂,quartus显示总共逻辑器件在220个左右,相比其他更优秀的作品多出50个,但方案二的设计过程让我对这个设计题目有了更深的认识,但是由于时间的关系,没有进行方案三,有机会会继续优化的,下面所有叙述都是围绕方案二展开。
2.2总体模块与总体方框图
模块名称
对应功能
备注
52xunhuanjishuqi
52顺时循环计数
DaojishijichengLED
倒计时与彩灯电路集成的模块
Daojishixuanzexinhao
倒计时选择信号
倒计时控制信号
Ershiyi
22/52分频
控制信号
Fengningqihe1hz
蜂鸣器和一hz分频集成的模块
Leddeng01
Led灯控制电路01
Leddeng01A
Led灯控制电路01A
Leddeng02
Led灯控制电路02
Leddeng02A
Led灯控制电路02A
Sanshier
33/52分频
Sanshisan
34/52分频
Sanshiyi
32/52分频
Sishi
41/52分频
Sishijiu
50/52分频
Sishiyi
42/50分频
Wanfenershiwu
26/x分频
Wu
6/52分频
Wushi
51/52分频
Xianzhi1
16/52分频
图一:
总体模块与总体方框图
总体框图:
图二:
总体框图
由图可以看出该方案每个模块都是独立的,将它们联系起来的是内部控制信号,内部控制信号由同一个源信号分频而来,保证了各模块的同步。
该方案存在控制信号重复的问题,这导致逻辑原件的浪费。
第3章、单元电路设计原理与仿真波形
3.1分频电路
图三:
分频电路图
分频电路通过74290——二/五分频十进制计数器[1]74293——二/八分频十进制计数器[2]和实现
3.1.1蜂鸣器分频电路
对输入的1kHz时钟信号进行了6次二分频得到蜂鸣器的六个输出频率,以及三次五分频和一次八分频得到1Hz的信号。
3.1.2控制分频电路
控制分频电路采用VHDL语言编写的模块来实现,只用到了通用整数分频器[3],程序如下:
LIBRARYieee;
USEieee.std_logic_1164.ALL;
ENTITYdaojishiD1IS
PORT(clk_in:
INstd_logic;
clk_out:
OUTstd_logic);
ENDdaojishiD1;
ARCHITECTUREthirdOFdaojishiD1IS
CONSTANTfpb:
INTEGER:
=15;
CONSTANTtemp:
INTEGER:
=7;
SIGNALaqi:
INTEGERRANGE0TOfpb;
BEGIN
PROCESS(clk_in)
BEGIN
IFrising_edge(clk_in)THEN
IFaqiaqi<=aqi+1;
ELSE
aqi<=0;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(clk_in)
BEGIN
IFrising_edge(clk_in)THEN
IF(aqi<=temp)THEN
clk_out<='1';
ELSE
clk_out<='0';
ENDIF;
ENDIF;
ENDPROCESS;
ENDthird;
Fpb对应倍频数,temp对应占空比。
本次几乎所有的控制信号均由这种方式做成,但这样做存在一个缺点,由于是上升延触发的,而始终分频得到的信号的第一个周期里是下降沿,只有的二个周期开始的时候才会触发,所以会导致一定的延时,当然这个问题是容易被解决的,后文将具体阐述。
3.2计数电路
3.2.1顺时计数电路
电路图:
图四:
顺时计时电路图
顺时计时电路由两个五十二计时电路组成循环其中的控制信号是52/104的周期信号,每一个五十二计时电路由两个74196[4]构成的十进制计数组成,在52/104信号的控制清零端CLRN的情况下,每计数52秒就清零等待52秒,同时另一个五十二计数在前一个计数器清零期间开始运作,当他运行52秒后清零52秒,之后回到前一个计数器进行计数,然后在或门的作用下达到无限循环。
对74196的输入信号反向是由于彩灯控制电路有在第一个周期有0.5秒的延迟(造成这个延迟主要是分频产生的信号第一个周期是下降沿),这个延迟在运行一个周期之后消失。
仿真波形图:
图五:
顺时计时仿真波形图
仿真波形与彩灯控制电路同步。
3.2.2倒计时电路
电路图:
图六:
倒计时电路图
倒计时电路由三个74193——16进制双向计数器带清零端,将时钟接入DN端和A端选定倒计时模式(这里的设计由于没有考虑到数码管译码的问题,最终设计完后只有四个输出引脚,虽然这个问题在后面得到解决,但这已经导致了原件的赘余),这里选用3个74193是因为在倒计时的电路中有三种模式(分别是15到0倒计时、1到0倒计时和7到0倒计时),这里用控制信号用来控制清零端还用来截取需要的计时段(与门实现),然后用或门将几个阶段的信号相加,最终得到一个总倒计时信号输出,其中用到的控制信号分别是32/52、41/52、50/52周期信号,同时还用到了彩灯控制电路的led1信号,原因是在进行仿真的时候发现控制信号反向之后开始的0.5秒出现了高电平,这导致清零端滞后了一个周期始终也就是一秒,将控制信号与led1信号相乘可以屏蔽掉开始的0.5秒高电平同时不影响周期信号的周期性。
74193TimingDiagram[5]
图七:
74193时序图
时序图:
图八:
倒计时时序图
上图附带了led1信号。
后来验收的时候发现了数码管译码问题,经过修正得到如下电路图:
图九:
修正后的倒计时电路
该电路将上一个电路的输出进行了修正,以使其能接到7448译码器,修正主要是通过控制信号将16倒计时前六个计时数进行修改,主要通过逻辑门实现,控制信号与输出的十位信号一致,主要用来截取十六倒计时的前六位,使其为.方便或门运算得到最终所需信号。
修正后的波形图:
图十:
修正后的倒计时波形图
其中33脚就是十位输出。
29、30、31、32为个位输出。
图中的突刺现象是由于进行与运算时细微的时间差值导致的,目前没有想到有效的解决办法。
3.3彩灯控制电路
3.3.1第一阶段电路
电路图:
图十一:
第一阶段彩灯控制电路
第一阶段彩灯控制电路由74175——带公共始终和复位四D触发器和74157——同相输出四2选1数据选择器以及控制信号组成,其中控制信号是16/52周期循环信号,控制信号同时作为D触发器的信号源,将信号源按照时钟信号进行移位,得到第一阶段的前半段输出,后半段的输出要调整为前半段的镜像波形,故用74157来进行引脚的倒序输出,同样是通过控制信号控制。
至此得到第一阶段波形,由于控制信号是以52s为周期的周期信号故彩灯输出也具有52秒为周期的特性。
仿真波形图:
图十二:
第一阶段仿真波形图
波形图跟需求一致,开始的0.5s延迟是由1hz分频上升沿决定的。
对后续波形的循环没有影响。
74157FunctionTable:
图十三:
74157函数表
3.3.2第二阶段电路
电路图:
图十四:
第二阶段电路图
该电路是基于第一阶段的通过控制信号和vcc以及gnd对输出进行置1和置0,输出时段由74157和控制信号控制,这一阶段用到的控制信号有32/52、33/52,这样处理之后就出现以52s为周期的第33s和34s内分别置1和置0。
仿真波形如下:
图十五:
第二阶段时序仿真图
仿真波形的周期属性与所需相符
3.3.3第三阶段电路
电路图:
图十六:
第三阶段电路图
该阶段电路是基于第一阶段电路的其中八路输出,这里只用到了一个控制信号以及时钟信号,方法是将第一阶段的8路信号进行上下的镜像。
因为只用到其中的8路信号所以出现了时序上对不上(超前26s),但周期性是正确的,解决方案是用74157实现对它延迟26秒后在输入时钟信号。
这里出现的问题虽然也可以得到解决,但是却浪费了原件,也是本次设计需要优化的一个阶段。
解决方案电路:
图十七:
第三阶段解决方案电路
解决方案用到74157和一个延迟控制信号26/x,理论上x值决定了整个循环的时长,通过这个信号和74157可以实现时钟的延迟输入,这个延迟信号的得到也利用了大量原件造成了浪费。
仿真波形图:
(解决方案后的波形相似只是将时序在现有基础上延后26s)
图十八:
第三阶段仿真波形图
波形超前26s,周期性没有问题。
解决方案后的波形此处不再赘述,将在总的电路波形中展现。
3.3.4第四阶段电路
图十九:
第四阶段电路图
这里实现了最后两秒的输出,其方法与第二阶段一致,使用74157与控制信号为51/52、50/52的周期信号实现,至此已完成多有的彩灯控制电路,具有52s的周期性,其中的不足之处也已简述了。
仿真波形(一二三四阶段):
图二十:
一二三四阶段仿真波形图
总的彩灯控制电路符合设计要求,仿真中有少量突刺这个问题也有待优化。
3.4蜂鸣器电路
电路图:
图二十一:
蜂鸣器电路图
蜂鸣器电路与分频电路设计到同意模块中可以避免器件的重复使用,蜂鸣器的输出采用五个控制信号16/52、32/52、34/52、41/52、50/52以及74151——8选1数据选择器[7]和部分逻辑门控制,最终实现在不同的阶段输出不同的频率,并具有周期性
第4章、整体电路各单元模块信号连接及功能说明
4.1单元电路模块之间的连接说明和信号分析
整体电路图:
图二十二:
整体电路图
分为三个模块的连接分别是蜂鸣器模块、顺时计时模块、彩灯控制电路集成倒计时模块,其中蜂鸣器模块输入为1kHz时钟信号,同时分频出1Hz时钟信号,1Hz时钟信号将输入剩下的两个模块,这两个模块分别输出计时信号和彩灯信号。
总时序图:
图二十三:
总时序图
总时序图与设计要求相符具有循环特性。
4.2总体功能说明
输入1KHz时钟信号将实现如下功能:
第一阶段,指示灯从左到右依次亮,1秒亮1个,第二阶段,指示灯从右到左依次熄灭,1秒灭1个,第三阶段,指示灯全亮1秒,全灭1秒,第四阶段,从中间往左右两边依次点亮,1秒亮2个,第五阶段,从左右两边往中间依次熄灭,1秒灭2个,第六阶段,指示灯全亮,全灭各1秒,返回第一阶段,循环往复,运行模式固定。
每个阶段有倒计时,如第一阶段从15、14、13…..01、00减法计数,用2个数码管显示,每个循环有加法计时,01、02、03……51、52(六个阶段共16+16+2+8+8+2=52),用2个数码管显示。
不同阶段灯的亮或灭伴有不同声调声音,如第一阶段“嘀”,第二阶段“嘟”,第三阶段“哔”,第四阶段“哒”第五阶段“咚”第六阶段“呜”等等,以示控制电路处于不同的运行阶段。
第5章、遇到问题及解决方案
5.1设计是遇到的问题和解决方案
主要问题有如下几个:
(1)、对各逻辑模块型号不了解
解决方案:
通过XX文库找到相关文献参考其中真值表以及函数表,最后在quartus上进行测试,掌握后再运用。
(2)、理论知识匮乏
解决方案:
对教科书中的相关知识进行了复习,但还是遇到了问题,在控制信号的生成上无法做到循环,最终做出来的作品浪费大量原件,并且也耗费了大量精力,之后查阅了VHDL相关书籍,通过编程的方式实现了控制信号的产生。
(3)、时序仿真时出现延迟和超前
解决方案:
通过将时钟信号取反输入解决由上升沿触发带来0.5秒差值。
(4)、对设计要求的理解不够深入
解决方案:
在经过反复的实验后对题设有了一定的了解,但还是不够,更重要的是没有认真参考老师下发的资料,导致自己琢磨的时候浪费了太多时间,到最后结题的时候还没有做出完美的作品,做设计还是不要太过着急了,先认真理解了设计目的在着手设计。
第6章、设计小结与建议
6.1小结建议
通过这次课设学到了许多知识,得到了一定的设计经验。
每次电路的失败都会对自己有一定的启示,每一次仿真的成功也会带来愉悦。
虽然这一次最后并没有得到自己想要的完美的作品,但是让我认识到了电路设计的一些理念,越简单越好,对设计要求的解读越深入越全面越好。
总的来说,这是一段可贵的经验。
6.2致谢
最后在这感谢老师在实验课上对我们的悉心指导以及对我们设计作品时误区的指正,非常感谢!
参考文献
[1]、[2]、[4]、[7]阎石.《数字电子技术基础(第五版)》.高等教育出版社
[3]郑燕郝建国.《基于VHDL与QuartusII软件的可编程逻辑器件应用与开发(第二版)》.国防工业出版社,2011.01.
[5]XX文库.74193中文资料
[6]XX文库.74157中文资料