《八路彩灯控制电路》
课程设计报告
专 业:
班 级:
姓 名:
学 号:
指导教师:
20##年 6 月 26日
目 录
一、课程设计目的……………………………… - 3-
二、课程设计描述和要求……………………… - 3 -
(一) 彩灯控制器设计要求…………… - 3 -
(二) 课程设计的总体要求…………… - 3 -
三、课程设计内容……………………………… - 4 -
(一) 原理分析 ……………………… - 4 -
(二) 器件选择………………………… -10 –
(三) 电路连线 ……………………… - 10-
1.时钟信号电路…………………… - 10
2. 花型控制信号电路…………… - 11-
3.花型演示电路………………… - 12 -
四、分析与总结 ……………………………… - 13-
五、参考书目 -……………………………… - 15 -
八路彩灯控制电路
一、 课程设计目的
(一)、熟悉掌握74LS161,74LS194及555定时器组成的多谐振荡器的工作原理,及其实际应用情况。
(二)、加深对数字逻辑电路的认识,提高数字逻辑电路设计水平。
(三)、培养自己对待科学的严谨认真的态度。
二.课程设计题目描述和要求
实现彩灯控制的方法很多,如EPROM编程、RAM编程、单板机、单片机等,都可以组成大型彩灯控制系统。因为本次实习要求设计的彩灯路数较少,且花型变换较为简单,故采用移位寄存器型彩灯控制电路。
(一) 彩灯控制器设计要求
设计并制作8路彩灯控制电路,用以控制8个LED按照不同的花色闪烁,要求如下:
1. 接通电源,电路开始工作,LED灯闪烁;
2. LED灯按照事先设计的方式工作,要求闪烁的模式不能少于三种模式;
(二) 课程设计的总体要求
设计报告每人一份
主要包括以下内容:
1、设计思路与元件参数;
2、有关元件介绍;
3、设计过程中遇到的问题及解决办法;
4、结论与体会
特别提醒:报告要求独立完成,若发现有报告完全相同,按照不及格处理。
三.课程设计报告内容
(一)原理分析
1. 针对题目设计要求,经过分析与思考,决定以下方案:
总体电路共分四大块。第一块实现时钟信号的产生;第二块实现花型的控制及节拍控制;第三块实现花型的输出,第四块实现花型的演示。
主体框图如下:
2. 根据所提供的实验器材各模块总体思路如下:
时钟信号CP电路
花型控制电路由两片161 4位二进制同步计数器和一些逻辑门共同完成
花型输出电路由两片194 双向移位寄存器完成,可左移右移完成花型变化
花型演示电路 由8个LED灯组成
3.整个花型控制设计如下:
花型一:
花型二:
花型三:
花型四:
每种花型显示一遍,四种花型演示完后再次循环,所以四种花型完全显示一遍需要的总结拍数为65,即1~21显示第一个花型,21~37显示第二个花型,37~49显示第三个花型,49~65。
要用194实现四个花型的连续显示必须对两片194的S1、S0和SL、SR一句节拍的变化进行相应的改变。现将两片194分为低位片1和高位片2,再将其输出端从低位到高位记为Q1~Q8。列出各花型和其对应的194的S1、S0、SL、SR的输入信号及节拍控制信号列表如下,经过分析可以得到控制194高低位片的左移右移变化的控制量。用CA~CH表示161从低位到高位的个输出端。
:(用^Qi表示Qi的取非)
控制表达式:
74LS161功能表:
注:QCC= CTr·Q0·Q1·Q2·Q3
74LS194功能表:
(二)器件选择
74LS161(四位二进制同步计数器) ------------------------------2个;
74LS194(移位寄存器) ------------------------------------- 2个;
74LS04(六非门) ------------------------------------------- 4个;
与门 ---------------------------------------------------1个
或门 ---------------------------------------------------4个
发光二极管--------------------------------------------------- 8个;
555 ----------------------------------------------------- 1个;
电容: 30nf ----------------------------------------------1个;
10nf -----------------------------------------------1个;
电阻: 4kΩ ------------------------------------------------ 1个;
190kΩ-------------------------------------------------1个;
实验板-------------------------------------------------------1个;
导线若干。
(三)电路连线
1.时钟信号电路
由一片555加上适当电容及电阻实现。
电容取:30nf 10nf
电阻取:4kΩ 190 kΩ
时钟信号频率为: f=1/T=1/0.69(R1+R2)c
电路图如下:
2. 花型控制信号电路
由二片161级联的计数器实现。将其几个输出信号加上适当门电路产生四种花型所需的输入信号。由计数器的高位片的QA、QB作为两片移位寄存器194的S0、S1的输入,用以控制方向,由计数器161的低位片QC加上若干门电路为194提供左移或右移的串行数据输入。
电路图如下:
3.花型演示电路
由二片移位寄存器194级联实现。其八个输出信号端连接八个发光二极管,用其输出信号控制发光二级管的亮灭实现花型演示。
电路图如下:
四、课程设计分析与总结
这几周时间虽然很短暂,但从中获益匪浅,首先对数字电路这门课程有了更深的了解,因为课程设计本身要求将以前学的理论知识运用到实际的电路设计当中去,在电路的设计过中形中便加深了对数字电路的了解及运用能力,对课本以及以前学过的知识有了一个更好的总结与理解。数字电路课程设计对我们的总体电路的设计要求很严格,需要通过翻阅复习以前学过的知识确立了实验总体设计方案,然后逐步细化进行各模块的设计;其次,在电路仿真的过程中总会出现一些问题,需要我们细心解决,所以这几周下来,我对电路故障的排查能力有了很大的提高;再次,通过此次课程设计,我对实验所用到的软件有了初步的了解,这对我们以后的工作和学习的帮助都很有用处。感谢学校给我这次机会,锻炼了我的动手能力,通过这次课程设计让我明白了理论和实际操作之间的差距,而且也让我很明确的意识到自己在数电上有很多的知识漏洞,以后应该多钻研一下。
这次课程设计主要是运用数字电路逻辑设计的一些相关知识,在整个设计过程中,都离不开对数字电路课程知识的再学习。我在最开始,就先将需要用到的知识通过翻阅数电书回顾了一遍(这也是对这门课的复习,给以后的复习备考减少了很多负担),这样的回顾让我对知识的理解更加透彻,对后来的快速设计起了很好的铺垫作用。
课程设计,根据要求,运用所学知识将其付诸实践来完成。这并不是在课堂上的单纯听懂,或者课后看书过程中的深入理解,这需要的是一种理论联系实践的能力。理论知识往往都是在一些理想状态下的假设论,而实际的动手操作则完全不同,需要考虑实际中的很多问题。有些知识在理论上可能完全没错但到了实际中则不然。比如在动笔做题时我们是不用考虑导线的电阻的,但在实际中,导线电阻有时是会带来时延造成花型变化的错乱,所以我们应尽量在连接电路时选择最短路径。
虽然这不是第一次用电路板,因为之前的课内实验也用过,但当时的运用也只是插些导线和电阻电容之类的,用了电路板的很小部分。这次的实习中应用了整块板子,现在对电路板的组成完全了解了,并能熟练运用。实验中通过对电路的连接也懂得了如何通过设计的分析对所连电路的整体布局,如何更好的放置芯片在最合适的位置。在导线的连接上,如何选择导线走向是关键,我们应该尽量保证所连电路的简捷,宁短勿长,合理布线。一个完美的作品不仅要能很好的完成要求实现功能,还要在感官上给人美的享受。所以站在美的角度对自己的电路进行改良是很必要的。
在实验中经常会遇到一些自己可能暂时无法想明白的问题,请教同学或老师是很好的做法,节省时间也会从别人上上学到更多。在设计时和同学相互交流各自的想法也是很重要的,不同的人对问题的看法总有差异,我们可以从交流中获得不同的想法,其他人的设计一定有比你出色的地方,很好的借鉴,并在大家的商讨中选择最优方案最终一定会得到最好的设计方法。
设计是开端,连接是关键,测试是必须。所以实现过程中不仅要求对知识的掌握要足够准确与精通,更要有绝对的耐心与细心。连接电路时一定按照自己的设计图仔细连接这会对后面的测试起到很好的铺垫作用。在后面查错时就不用花费精力在查线上,可以给减少很多后续工作。
参考书目:
[1]王毓银,《数字电路逻辑设计(第2版》,中国大陆,高等教育出版社,20##年03月
[2] 聂典 等 编,《Multisim 10仿真设计》,电子工业出版社,20##-01
[3]古良玲,《电路仿真与电路板设计项目化教程(基于Multisim与Protel)-附赠电子教案》,机械工业出版社,20##-3-1
第二篇:毕业设计33EDA课程设计报告多路彩灯控制电路设计
EDA课程设计报告
学 号:
班 级:
姓 名:
日 期:20xx年1月1日
——多路彩灯控制电路设计
多路彩灯控制电路设计报告
题 目:多路彩灯控制电路
设计要求:⑴要有6种花型变化。
⑵多种花型可以自动变化,循环往复。
⑶彩灯变化的快慢节拍可以选择。
⑷具有清零开关。
设计方案:
根据系统设计要求,设计一个具有6种花型循环变化的彩灯控制器。整个系统共有三个输入信号:控制彩灯节奏快慢的基准时钟信号CLK_IN,系统清零信号CLR,彩灯节奏快慢选择开关CHOSE_KEY;共有16个输出信号LED[15..0],分别用于控制十六路彩灯。 据此,系统设计采用自顶向下的设计方法,我们可将整个彩灯控制器CDKZQ分为两大部分:时序控制电路SXKZ和显示控制电路XSKZ。
模块划分:时序控制电路(SXKZ) 显示控制电路(XSKZ)
端口介绍:
CLK_IN—控制彩灯节奏快慢的基准时钟信号
CLR—系统清零信号
CHOSE_KEY—彩灯节奏快慢选择开关
LED[15..0]—16个输出信号
设计过程:
⒈时序控制模块(SXKZ)
① 新建一个VHD格式的文本编辑文件,保存—默认—命名
②编写源程序,如下:
时序控制模块源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SXKZ IS
PORT(
CHOSE_KEY : IN STD_LOGIC;
CLK_ZN : IN STD_LOGIC;
CLR : IN STD_LOGIC;
CLK : OUT STD_LOGIC);
END SXKZ;
ARCHITECTURE ART OF SXKZ IS
SIGNAL CK : STD_LOGIC;
BEGIN
PROCESS (CLK_ZN, CLR,CHOSE_KEY)
VARIABLE TEMP : STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
IF CLR='1' THEN
CK<='0';
TEMP:="000"; ELSIF (CLK_ZN'EVENT AND CLK_ZN='1') THEN IF (CHOSE_KEY='1')THEN IF TEMP="011" THEN TEMP:="000"; CK<=NOT CK; ELSE TEMP:=TEMP+1; END IF; ELSE IF TEMP="111" THEN TEMP:="000"; CK<=NOT CK; ELSE TEMP:=TEMP+'1'; END IF; END IF; END IF; END PROCESS; CLK<=CK; END ART;
③检查错误,如图:
④器件配置。选用FLEX10K下的EPF10K10LC84-3 ⑤系统综合。如图:
⑥管脚定义。注意:端口只能放在I/O端口和I/O数据端,时钟信号放在CLK,如图:
⑦生成符号文件。如图:
⑧仿真。新建一个波形编辑文件,格式为SCF,先保存—默认—命名,
结束时间:10ms
时钟周期:50ns
如图:
分析仿真结果:
根据源程序
当CLR为1时,TEMP=000,CLK=0 清零。
当CLR=0且时钟信号CLK_IN来到时,
⒈CHOSE_KEY为1时,
如果TEMP=011(即为3),则TEMP=000(即为0)且CLK反转。
如果TEMP不为011,则TEMP+1
⒉CHOSE_KEY为0时
如果TEMP=111(即为7),则TEMP=000(即为0)且CLK反转。
如果TEMP不为111,则TEMP+1
⒉显示控制模块(XSKZ)
① 新建一个VHD格式的文本编辑文件,保存—默认—命名
②编写源程序,如下:
显示控制模块源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY XSKZ IS
PORT(
CLK : IN STD_LOGIC;
CLR : IN STD_LOGIC;
LED : OUT STD_LOGIC_VECTOR(15 downto 0));
END entity XSKZ;
ARCHITECTURE ART OF XSKZ IS
TYPE STATE IS(S0,S1,S2,S3,S4,S5,S6);
SIGNAL CURRENT_STATE: STATE;
SIGNAL LIGHT: STD_LOGIC_VECTOR(15 DOWNTO 0);
BEGIN
PROCESS (CLR, CLK)IS
CONSTANT L1:STD_LOGIC_VECTOR(15 DOWNTO 0):="0010010010010010"; CONSTANT L2:STD_LOGIC_VECTOR(15 DOWNTO 0):="10xxxxxxxxxxxx0"; CONSTANT L3:STD_LOGIC_VECTOR(15 DOWNTO 0):="0010110110011010"; CONSTANT L4:STD_LOGIC_VECTOR(15 DOWNTO 0):="10xxxxxxxxxxxx1"; CONSTANT L5:STD_LOGIC_VECTOR(15 DOWNTO 0):="10xxxxxxxxxxxx0"; CONSTANT L6:STD_LOGIC_VECTOR(15 DOWNTO 0):="11xxxxxxxxxxxx1"; BEGIN
IF CLR='1' THEN
CURRENT_STATE<=S0;
ELSIF(CLK'EVENT AND CLK='1') THEN
CASE CURRENT_STATE IS
WHEN S0 =>
LIGHT<="ZZZZZZZZZZZZZZZZ";
CURRENT_STATE<=S1;
WHEN S1 =>
LIGHT<=L1;
CURRENT_STATE<=S2;
WHEN S2 =>
LIGHT<=L2;
CURRENT_STATE<=S3;
WHEN S3 =>
LIGHT<=L3;
CURRENT_STATE<=S4;
WHEN S4 =>
LIGHT<=L4;
CURRENT_STATE<=S5;
WHEN S5 =>
LIGHT<=L5;
CURRENT_STATE<=S6;
WHEN S6 =>
LIGHT<=L6; CURRENT_STATE<=S1; END CASE; END IF; END PROCESS; LED<=LIGHT; END ARCHITECTURE ART;
③检查错误,如图:
④器件配置。选用FLEX10K下的EPF10K10LC84-3
⑤系统综合。如图:
⑥管脚定义。注意:端口只能放在I/O端口和I/O数据端,时钟信号放在CLK,如图:
⑦生成符号文件。如图:
⑧仿真。新建一个波形编辑文件,格式为SCF,先保存—默认—命名,
结束时间:10ms
时钟周期:80ns
如图:
分析仿真结果:
根据源程序
当系统清零信号CLR为1时CURRENT_STATE为S0
当系统清零信号CLR为0且时钟信号CLK来到时,
当CURRENT_STATE为S1时,CURRENT_STATE的下一个状态S2,LED输出为0010010010010010
当CURRENT_STATE为S6时,CURRENT_STATE的下一个状态S1,LED输出为11xxxxxxxxxxxx1
循环彩灯控制器:
⑴用图形编辑文件做循环彩灯控制器(CDKZQ)
① 新建一个GDF格式的图形编辑文件,保存—默认—命名
② 在元器件库调用XSKZ(显示控制模块)和SXKZ(时序控制模块)的符号以及输入
输出符号,做图,如下
:
③检查错误,如图:
④器件配置。选用FLEX10K下的EPF10K10LC84-3
⑤系统综合。如图:
⑥管脚定义。注意:端口只能放在I/O端口和I/O数据端,时钟信号放在CLK
,如图
⑧仿真。新建一个波形编辑文件,格式为SCF,先保存—默认—命名,
结束时间:10ms
时钟周期:80ns
如图:
分析仿真结果:
当CLR=1时,系统清零
当CLR为0且CHOSE_KEY为1时彩灯变换的慢。
当CLR为0且CHOSE_KEY为0时彩灯变换的快。
⑵循环彩灯控制器顶层设计(CAIDENG)
① 新建一个VHD格式的文本编辑文件,保存—默认—命名
②编写源程序,如下:
源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY caideng IS
PORT(
CLK_ZN : IN STD_LOGIC;
CLR : IN STD_LOGIC;
CHOSE_KEY : IN STD_LOGIC;
LED : OUT STD_LOGIC_VECTOR(15 downto 0)); END entity caideng;
ARCHITECTURE ART OF caideng IS
COMPONENT SXKZ IS
PORT(
CHOSE_KEY : IN STD_LOGIC;
CLK_ZN : IN STD_LOGIC;
CLR : IN STD_LOGIC;
CLK : OUT STD_LOGIC);
END COMPONENT SXKZ;
COMPONENT XSKZ IS
PORT(
CLK : IN STD_LOGIC;
CLR : IN STD_LOGIC;
LED : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)); END COMPONENT XSKZ;
SIGNAL S : STD_LOGIC;
BEGIN
U1:SXKZ PORT MAP(CHOSE_KEY,CLK_ZN,CLR,S);
U2:XSKZ PORT MAP(S,CLR,LED);
END ARCHITECTURE ART;
③检查错误
.
④器件配置。选用FLEX10K下的EPF10K10LC84-3
⑤系统综合。如图:
⑥管脚定义。注意:端口只能放在I/O端口和I/O数据端,时钟信号放在CLK,如图:
⑦仿真。同上。
设计心得:
两周的时间虽然很短暂,但从中获益匪浅,首先对EDA数字电路这门课程有了更深的了解,无形中便加深了对EDA的了解及运用能力。以学的到很多很多同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。EDA设计对我们的总体电路的设计的要求更严格,需要通过翻阅复习以前学过的知识确立了实验总体设计方案,然后逐步细化进行各模块的设计;通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。在波形仿真时,也遇到了一点困难,在设定输入信号后,想要的结果不能在波形上得到正确的显示,在数十次的调试之后,才发现是因为输入的时钟信号对于器件的延迟时间来说太短了。经过屡次调试,终于找到了比较合适的输入数值。另外,Endtime的值需要设置的长一点:100ms左右,这样就可以观察到完整的仿真结果。使我对电路故障的排查能力有了很大的提高。
其次,在连接各个模块的时候一定要注意各个输入、输出引脚的线宽,因为每个线宽是不一样的,只要让各个线宽互相匹配,才能得出正确的结果,否则,出现任何一点小的误差
就会导致整个文件系统的编译出现错误提示,在器件的选择上也有一定的技巧,只有选择了合适当前电路所适合的器件,编译才能得到完满成功。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
总的来说,这次设计的循环彩灯控制电路还是比较成功的,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力.同时,对未来有了更多的信心。最后,
对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!