您的当前位置:首页正文

彩灯控制器设计及实验报告三篇

来源:个人技术集锦
彩灯控制器设计及实验报告三篇

篇一:多路彩灯控制器的设计 一课程设计题目(与实习目的) (1)题目:多路彩灯控制器 (2)实习目的:

1.进一步掌握数字电路课程所学的理论知识。

2.熟悉几种常用集成数字芯片,并掌握其工作原理,进一步学会使用其进行电路设计。

3.了解数字系统设计的基本思想和方法,学会科学分析和解决问题。 4.培养认真严谨的工作作风和实事求是的工作态度。

5.作为课程实验与毕业设计的过度,课程设计为两者提供了一个桥梁。 二任务和要求

实现彩灯控制的方法很多,如EPROM编程、RAM编程、单板机、单片机等,都可以组成大型彩灯控制系统。因为本次实习要求设计的彩灯路数较少,且花型变换较为简单,故采用移位寄存器型彩灯控制电路。

第 1 页 共 56 页

(1)彩灯控制器设计要求

设计一个8路移存型彩灯控制器,要求: 1.彩灯实现快慢两种节拍的变换; 2.8路彩灯能演示三种花型(花型自拟); 3.彩灯用发光二极管LED模拟;

4.选做:用EPROM实现8路彩灯控制器,要求同上面的三点。 (2)课程设计的总体要求 1.设计电路实现题目要求;

2.电路在功能相当的情况下设计越简单越好;

3.注意布线,要直角连接,选最短路径,不要相互交叉; 4.注意用电安全,所加电压不能太高,以免烧坏芯片和面包板。 三总体方案的选择 (1)总体方案的设计

针对题目设计要求,经过分析与思考,拟定以下二种方案: 方案一:总体电路共分三大块。第一块实现花型的演示;第二块实现花型的控制及节拍控制;第三块实现时钟信号的产生。 主体框图如下:

第 2 页 共 56 页

方案二:在方案一的基础上将整体电路分为四块。第一块实现花型的演示;第二块实现花型的控制;第三块实现节拍控制;第四块实现时钟信号的产生。并在部分电路的设计上与方案一采用了完全不同的方法,如花型的控制。 主体框图如下:

(2)总体方案的选择

方案一与方案二最大的不同就在,前者将花型控制与节拍控制两种功能融合在一起,是考虑到只要计数器就可以实现其全部功能的原因,且原理相对简单。这样设计,其优点在于:设计思想比较简单。元件种类使用少,且都较熟悉易于组装电路。缺点则是:中间单元电路连线过于繁多,容易出错。且可能出现线与关系。要避免这些,则势必造成门电路使用过多。导致电路不稳定,抗干扰能力下降。而后者则将以上两种功能分开设计,各单元电路只实现一种功能。其优点在于:电路设计模块化,易于检查电路,对后面的电路组装及电路调试带来

第 3 页 共 56 页

方便。缺点则是:节拍控制电路采用可编辑逻辑电路,原理相对复杂,不易理解。花型控制电路简单,花型也比较简单。

基于以上原因,加上为了确保短时间内完成课程设计,我选择了连线少,易于组装和调试的方案二。 四单元电路的设计

1.设计所使用的元件及工具:

74LS161(四位二进制同步计数器)----------------------2个; 74LS194(移位寄存器)------------------------------2个; 74LS151(八选一数据选择器)---------------------------1个; 74LS74(双D触发器)----------------------------------1个; 74LS20(双四输入与非门)----------------------------3个; 74LS04(六非门)------------------------------------2个; 发光二极管---------------------------------------------8个;

555-----------------------------------------------1个; 电容:4.7μf----------------------------------------------1个;

0.01μf---------------------------------------------1个;

第 4 页 共 56 页

电阻:150kΩ

------------------------------------------------------------1个;

100Ω----------------------------------------------1个; 4.7kΩ-----------------------------------------1个; 实验板一个; 万用表一个; 钳子一个; 导线若干。 2.各个单元电路 (1)花型演示电路

由二片移位寄存器194级联实现。其八个输出信号端连接八个发光二极管,用其输出信号控制发光二级管的亮灭实现花型演示。 三种花型变换样式

花型1:8路灯分两半。从左至右渐亮,全亮后,再分两半从左至右渐灭。循环两次;

花型2:从中间到两边对称地逐次渐亮,全亮后仍由中间到两边逐次渐灭。循环两次;

花型3:从左至右顺次渐亮。全亮后逆序渐灭。循环两次。

第 5 页 共 56 页

移存器输出状态编码表

我的设计是每种花型完整显示两遍,所以三种花型完全显示一遍需要的总结拍数为64,即1~16显示第一个花型,17~32显示第二个花型,33~64显示第三个花型。

要用194实现三个花型的连续显示必须对两片194的S1、S0和SL、SR一句节拍的变化进行相应的改变。现将两片194分为低位片1和高位片2,再将其输出端从低位到高位记为L1~L8。列出各花型和其

第 6 页 共 56 页

对应的194的S1、S0、SL、SR的输入信号及节拍控制信号列表如下:(用^Li表示Li的取非)

经过分析可以得到控制194高低位片的左移右移变化的控制量。用QA~QH表示161从低位到高位的个输出端。 控制结果表达式如下:

电路图如下:

第 7 页 共 56 页

(2)花型控制信号电路

由二片161级联的模128(三种花型节拍每种显示两遍,再总体重复一遍的总节拍数)计数器。

161的级联用的是同步,并用^QH清零。

当三种花型全新显示一遍后(总共64拍)161的输出变为00000100所以将161高位片的Q2(即QG)信号输给节拍控制电路的151的A

第 8 页 共 56 页

来通过节拍控制电路改变第二遍花型显示的频率。161的CP脉冲来自节拍控制电路中74的输出端Y。 电路图如下:

(3)节拍控制电路

由一片151和一片74级联实现。整体上实现脉冲频率的变换,即交替产生快慢节拍。

令74的Vcc,CLR,PR都接高电平,将^Q的输出接到D端,Q端的输出接到151的D1端。令151的D0,D2,D3,D4,D5,D6,D7,B,C,G’,GND接低电平,Vcc接高电平,D0接时钟信号的CP脉冲,A端接由花型控制电路的QG输出。

第 9 页 共 56 页

所以Y端的输出就为:Y=CP·^A+Q·A

(Q是74D触发器的输出端)由D触发器具有记忆功能,记录上一个状态,所以在每一个CP脉冲的上升沿,Q输出为上一次的记录(即一个脉冲)。也就比时钟信号电路的CP脉冲慢了一拍。

所以通过A为0或1选择Y端输出的脉冲的频率。A端接的是161的高位片的QG即当到达第64拍时QG为1接下来的65~128拍为变慢后的脉冲输出。 电路图如下:

(4)时钟信号电路

由一片555加上适当电容及电阻实现。 电容取:4.7μf0.01μf

第 10 页 共 56 页

电阻取:150kΩ4.7kΩ 电路图如下:

五总体电路图(见附页)

六电路组装完成后,实际测量的各个单元电路的输入、输出信号波形

1.基本CP脉冲产生电路波形图与分频电路波形图

2.测试波形:(列依次为CP脉冲,低位片194A,B,C,D,高位片194A,B,C,D) 花型一:

第 11 页 共 56 页

花型二:

花型三:

第 12 页 共 56 页

七电路组装、调试过程中发生的问题及解决的方法。

我的数字电路课程设计总共用了4天完成的,这4天每一天都有所收获,都有所进步。起初想预习但不知道都该看些什么也不知道从何看起,因为对自己要设计的东西一点思路都没有。所以第一天去了只知道要用到CP脉冲产生电路,因为书上有完好的电路图直接照着连就OK。可是问题并不是想的那么简单,因为我一开始操作就不知道怎样布线才合理,常出现看着电路图不知道这条线该走哪儿连过去,看过老师的示范后,对老师的布线法真是无限敬佩,聪明呀。所以当然要学习了,于是自己也那样连了。连完时钟电路后,满以为会很成功,因为我的电路连得很简洁。结果是加电后LED二极管居然常亮,检查电路没什么问题,我开始不知所措,于是去咨询其他同学,发现好多同学都有和我一样的问题,有同学说那可能是线

第 13 页 共 56 页

的而问题,也可能是板子的问题,也可能是电容的正负极插反了…不管是什么问题,一个个排除吧。最终其实也没很确切的知道问题的所在,因为不同的方法都在试具体是哪个也不确定了。我觉得最可能是电容的正负极和LED的插稳与否的问题。

第二天去我拿了个数码管来测试,结果连好了的电路加电测试结果却完全是错误的显示,我检测了电路测试了电位,都正确。老师过来看时让我加电他看看,结果居然是我给的电压太高了,我在加电是不小心把电压调的很高,自己还没在意,幸好没把芯片很板子烧坏。

在接下来的几天中我看了一些参考书籍,大概有了自己的思路,于是开始一一试验,我用了<<数字系统设计——数字电路课程设计指南>>(北京邮电学院出版社高书莉编)所提供的三种花型,所以刚开始的几天就一直在想怎样将三种花型衔接起来,前两天是一直都没相处具体的解决方法。后来我就不停地分析花型的变化与161加法器数值的增加两者之间的规律。我发现自己好像有点太急于求成首先就把问题带到了最不容易解决的地方,于是我改变了思路开始不复杂的先简单化,三个花型的演示先不管,一个花型弄好再说。说行动立马行动,先连好了时钟信号电路再连了161的级联电路,先用清零端制1同步CP脉冲,还连了194的级联电路直接给低位片

第 14 页 共 56 页

和高位片都加右移信号。先测试了161的工作状态是否正常,正常后又测试了194的移位寄存功能,都正常。说明芯片和板子都很正常。将下来的一天我又通过分析找到了前两种花型通过节拍控制其变化的方式,于是按照自己的设计连了电路图,测试过电压后,加电测试。结果完全正确,那一刻真挺欣慰,觉得这也是一件挺开心的事情。接下来的问题就是如何把第三种花型也加进去。因为我选的第三种花型稍有点复杂,因为两个194是同步级联的但在花型显示中看到是似乎是第一个先工作等到前4个灯都亮后高位片的194才开始工作,所以考虑将它怎样加入费了我好长时间。问题的关键还是在如何用最少的门电路将其加入。最后的设计我用了12个芯片,应该是很多了,可是依据我设计的花型,也只能得到这样的设计,到目前为止我也只找到这样的最简连接方案。

其实在电路组装过程中,遇到的最大问题是,芯片分布不够合理,无法很好的布线。于是在分析了我的设计后计算了要用芯片的个数和个芯片之间的关系,按照各个控制电路的走向较合理的插好了芯片。其次就是布线,因为要求不准交叉,且横平竖直,所以在保证连通的情况下,在布线上也下了不少工夫,虽然布线的成绩不高只得到B+,但我想我是用心考虑过的,而且尽力做到我认为很合理的布线,也就是用线的颜色有点混乱,因为用了很多从之前面包板上

第 15 页 共 56 页

拆下来的旧线,所以整个板子看起来有点杂乱。也因为我的设计中要用3个74L00和2个74L04,12个与非门电路的连接却是非了我好大的功夫。于是连线也就不十分合理了。

调试过程中,第一轮用万用表欧姆档测试,就遇了实验板上有插孔不通的情况,导致芯片不能正常工作。相对于别的办法,我选择了导线显示连通,因为其更明晰,更易实现。对于高阻导线则只能换掉。第二轮接电后,用万用表的电压档测试单元电路的状态。如:时钟信号电路的信号是否正常产生,控制信号电路中的计数器能否正常计数,D触发器能否每2拍翻转一次……最后在整体上测试一遍。 在整个调试完成后,却遇到的新问题:彩灯演示时有时正常有时混乱。在排除其它可能的情况下,我仔细检查各端子的连接情况,发现清“0”端在清“0”后悬空了。将其插到电源正极后,发现问题解决了。 八分析和总结。

本次课程实习我虽然用了一个星期的时间就全部做完,但整个过程我都认真的完成了,而且从中收获很多。可以总结为以下的几点: 1,对数字电路知识的巩固与提高

这次课程设计主要是运用数字电路逻辑设计的一些相关知识,在整个实习过程中,都离不开对数字电路课程知识的再学习。我在最开

第 16 页 共 56 页

始,就先将实习用到的知识通过翻阅数电书回顾了一遍(这也是对这门课的复习,给以后的复习备考减少了很多负担),这样的回顾让我对知识的理解更加透彻,对后来的快速设计起了很好的铺垫作用。

2,学会了理论联系实际

课程设计,通过选择的题目,根据要求,运用所学知识将其付诸实践来完成。这并不是在课堂上的单纯听懂,或者课后看书过程中的深入理解,这需要的是一种理论联系实践的能力。理论知识往往都是在一些理想状态下的假设论,而实际的动手操作则完全不同,需要考虑实际中的很多问题。有些知识在理论上可能完全没错但到了实际中则不然。比如在动笔做题时我们是不用考虑导线的电阻的,但在实际中,导线电阻有时是会带来时延造成花型变化的错乱,所以我们应尽量在连接电路时选择最短路径。

3,学会了如何运用电路板、芯片、导线等组装各种功能的电路; 虽然这不是第一次用电路板,因为之前的课内实验也用过,但当时的运用也只是插些导线和电阻电容之类的,用了电路板的很小部分。这次的实习中应用了整块板子,实习后对电路板的组成完全了解了,并能熟练运用。实习中通过对电路的连接也懂得了如何通过设计的分析对所连电路的整体布局,如何更好的放置芯片在最合适的位置。

第 17 页 共 56 页

在导线的连接上,如何选择导线走向是关键,我们应该尽量保证所连电路的简捷,宁短勿长,合理布线。一个完美的作品不仅要能很好的完成要求实现功能,还要在感官上给人美的享受。所以站在美的角度对自己的电路进行改良是很必要的。 4,和同学的互相协作共同进步

在实习中经常会遇到一些自己可能暂时无法想明白的问题,请教同学或老师是很好的做法,节省时间也会从别人上上学到更多。在设计时和同学相互交流各自的想法也是很重要的,不同的人对问题的看法总有差异,我们可以从交流中获得不同的idea,其他人的设计一定有比你出色的地方,很好的借鉴,并在大家的商讨中选择最优方案最终一定会得到最好的设计方法。 5,其他

课程实习设计是开端,连接是关键,测试是必须。所以实现过程中不仅要求对知识的掌握要足够准确与精通,更要有绝对的耐心与细心。连接电路时一定按照自己的设计图仔细连接这会对后面的测试起到很好的铺垫作用。在后面查错时就不用花费精力在查线上,可以给减少很多后续工作。我在这次的实习中其实也有连错线的时候,但我很快检查出来调整了那根线的连接,结果测试电路后花型显示完全正确。没有费太多的功夫在检查电路上。

第 18 页 共 56 页

九参考文献。

<<数字电路逻辑设计>>高等教育出版社王毓银编 <<数字系统设计——数字电路课程设计指南>> 北京邮电学院出版社高书莉编 十过程考核表和成绩鉴定表

(这个具体内容老师会给你的,每个学校都有点不同在这我就不发了。)

下面是总体电路图,就是截图有点小,可能看不太清楚,其实就是前面每个分模块的组合。。。大家看看就明白了。

第 19 页 共 56 页

第 20 页 共 56 页

篇二:多路彩灯控制器课程设计

摘要 八路循环彩灯控制器整体电路由三部分组成:脉冲发生电路、移位寄存器、控制电路。其中用时钟脉冲来启动电路,使其发出不同的频率产生不一样的脉冲,控制发光二极管,使电路更好的工作。主要采用 74LS194 芯片接成扭环形结构的移位器来实现,最后做到两种花型的彩灯循环控制。

一、实验目的:

根据知识掌握情况和兴趣选择题目,给出功能设计方案,插接、调试电路,完成要求的任务,达到巩固和应用“电子技术基础”和“数字电路与逻辑设计”课程基本理论和方法,初步掌握模拟与数字电路系统设计基本方法的目的。

二、实验要求:

设计一个4路移存型彩灯控制器,彩灯用发光二极管LED模拟,具体要求如下:

1、能演示三种花型,花型自拟。

2、选作:彩灯明暗变换节拍为1.0s和0.5s,两种节拍交替运行。

三、实验元件:

555定时器 1个

第 21 页 共 56 页

74194 2个 74161 2个 7404 2个 电阻150kΩ 1个 电阻4.7KΩ 1个 电阻20 Ω 8个 电容4.7uF 1个 电容0.1 uF 1个

四、总体方案的设计:

经过分析问题及初步的整体思考,设计方案如下:

需要实际时钟产生电路,循环控制电路和彩灯左右移,及全亮全灭输出电路。时钟脉冲产生电路由脉冲发生器产生连续的脉冲。循环电路采用74LS161 ,74LS194实现彩灯的循环控制。具体主要通过两片双向移位寄存器74LS194 来实现彩灯电路控制,通过脉冲发生器来产生连续时钟信号的输入,由74LS161计数器来控制信号的移动方向,实现左移,右移及亮灭的功能。总体电路原理图如下 :

花型演示电路

花型控制 节拍控制电路 第 22 页 共 56 页

五、单元电路的设计: 1、时钟信号

一片555加上电容及电阻实现 电容:4.7μf 0.01μf 电阻:150 kΩ 4.7 kΩ

花型控制 节拍控制电路

输出高电平时间T=(R1+R2)Cln2

第 23 页 共 56 页

输出低电平时间T=R2Cln2 振荡周期 T=(R1+2R2)Cln2 输出方波的占空比 为

根据本次设计使用的R1,R2(R1=150k,R2=4.7k)值,计算出振荡周期0.5s

2 花型控制信号电路

由一片74LS161(两种花型每种显示一遍)计数器。74LS161芯片用的是同步置数,并清零。74LS161可预置四位二进制计数器(并清除异步)。

时钟CP和四个数据输入端A,B,C,D。清零CR,使能EP,ET,置数LD,数据输

出端Q0-Q3,以及进位输出Rco = 1. (当Q0 Q1 Q2 Q3 = 1111->0000时)。

第 24 页 共 56 页

<74LS161功能表>

当清零端CR=“0”,计数器输出Q3、Q2、Q1、Q0立即为全“0”,这个时候为异步复位功能。当CR=“1”且LD=“0”时,在CP信号上升沿作用后,74LS161输出端Q3、Q2、Q1、Q0的状态分别与并行数据输入端D3,D2,D1,D0的状态一样,为同步置数功能。而只有当CR=LD=EP=ET=“1”、CP脉冲上升沿作用后,计数器加1。74LS161还有一个进位输出端CO,其逻辑关系是CO=1,当Q0 Q1 Q2 Q3 = 1111->0000时。合理应用计数器的清零功能和置数功能,一片74LS161可以组成16进制以下的任意进制分频器。

3 花型演示电路

(1) 由74LS194双向移位寄存器完成(可左移右移完成花型变化)。

第 25 页 共 56 页

当清除端(CLEAR)为低电平时,输出端(QA-QD) 为低电平。 当工作方式控制端(S0、S1)为高电平时,在时钟 (CLOCK)上升沿作用下,并行数据(A-D)被送入 相应的输出端QA-QD。此时串行数据(DSR、DSL)被禁 止。

当S0 为高电平、S1 为低电平时,在CLOCK上升沿作用下进行右移操作,数据由DSR送入。

当S0 为低电平、S1 为高电平时,在CLOCK上升沿作 用下进行操作,数据由DSR送入。 当 S0 和 S1 为低电平时,CLOCK 被禁止。

花型设计为

第 26 页 共 56 页

六、总体原理图、pcb图及实物图

第 27 页 共 56 页

第 28 页 共 56 页

第 29 页 共 56 页

七、组装过程中的问题

在这次实验中其实最麻烦的就是pcb绘制过程,电路图还好画些,放置元器件需要十足的耐心加细心,每个元件都有自己的封装,需要找到对应的库文件。布线要求美观大方,尽量没有交叉线,元器件要分步均匀,不要挤在一起,这样不利于线的走位。我在这次布线中,一开始没有注意元件的方向的转换,最后不能布线时发现还有很多交叉线(飞线),我及时做了相应调整。整个电路板制作过程中有些环节可能做得不够好,如:腐蚀过程墨掉后未及时补墨,打孔过程中可能是转头的缘故,部分焊盘直接被转掉了。这次焊接时做得不够好,焊锡用的太多,直接影响了电路板的美观。还出现了短路,还好调试过程中及时纠正,最后终于做出我们想要的结果。

八、心得体会和分析总结

历经这学期的八个星期,我和同伴终于将彩灯控制器课程设计完成。经过这次实验,终于感觉到了理论与实际的差别还是很大的,最重要的是这个过程非常的考验人,不仅仅是考察你的理论知识,动手能力,以及检查问题并解决问题的能力,更是在考验一个人的耐心,细心。在连接电路的过程中,丝毫不得马虎,必须清楚的了解每个芯片的引脚图以及功能。说实话,做这次实验确实有点累,然而,当我开始清理自己的设计成果时,慢慢回味这几周的辛苦历程,一种少有的成功喜悦即刻使消除了倦意。

在这次实验中,我们也遇到了许多问题,还要多多感谢老师和

第 30 页 共 56 页

各位帮助过我们的同学,因为你们,我们才如此顺利地完成了本次实在本文的写作过程中得到了李彬老师的精心指导,在此表示衷心的感谢。通过本次实验,我不仅巩固了课堂上学习的理论知识,掌握了常用集成电路芯片的使用,更加增强了我的动手能力,总之,这门课程使我成熟了许多,学习了许多。 九、参考文献

[1] 阎石主编.数字电子技术基础.高等教育出版社。 [2] 唐诗百主编.模拟电子技术基础.高等教育出版社。 [3] 邱关源主编.电路.高等教育出版社。

第 31 页 共 56 页

篇三::彩灯控制器设计

《数字系统设计》任务书

第 32 页 共 56 页

课题名称 数字电压表设计 指导教师(职周珍艮(副教授) 称) 执行时间 学生姓名 学号 1、掌握VHDL语言的基本结构及应用 设计目的 2、掌握利用VHDL语言进行数字系统设计方法 用FPGA和模数转换器ADC0804设计一个数字电压表,能够测量0-5V之间的直流电压,用三个数码设计要求 管显示被测电压,要求小数点后有两位数字显示。

第 33 页 共 56 页

2016~2017学年第一学期 第XX周 承担任务 第1章 EDA简

介 ..................................................................................... 1 第

2

理 .............................................................. 2 第

3

析 .......................................................................... 3 第

4

仿

析 ............................................................................ 8 第

5

试 .................................................................................... 11 第

6

会 .................................................................................... 12

第 34 页 共 56 页

第1章 EDA简介

EDA技术(即Electronic Design Automation技术)就是依

赖强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL (Hardware Ddscription Langurage)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。它在硬件实现方面融合了大规模集成电路制造技术、IC版图设计、ASIC

第 35 页 共 56 页

测试和封装、

FPGA(Gield Peogrammable Gate Array)/CPLD(Complex Programmable Logic Device)编程下载和自动测试等技术;在计算机辅助工程方面融合了计算机辅助设计(CAD),计算机辅助制造(CAM),计算机辅助测试(CAT),计算机辅助工程(CAE)技术以及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如电子线路设计理论、数字信号处理技术、数字系统建模和优化技术及长线技术理论等。

硬件描述语言HDL是EDA技术的重要组成部分,常见的HDL主要有VHDL、Verilog HDL、ABEL、AHDL、System Verilog和SystemC。其中VHDL、Verilog和现在的EDA设计中使用最多,并且我们学习的是VHDL的编程方法和实用技术。 VHDL(

VHSIC

)IEEE

Very High Speed Integrated Circuit

Hardware Description Language,

(The Institute of Electrical and Electronics Engineets)进一步发展,并在1987年作为“IEEE标准1076”公布。从此VHDL成为硬件描述语言的业界标准之一。VHDL技术与传统的数字电子系统或IC设计相比之下有很大的优势,主要表现在:

第一, VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建 模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。

第 36 页 共 56 页

第二, VHDL具有也具体硬件电路武官和与设计平台无关的特性,并且具有良好的电 路行为描述和系统描述的能力,并在语言易读性和层次化,结构化设计方面,表现了强大的生命力和应用潜力。 EDA书中所给出的所有的实力和实验都是基于Quartus Ⅱ6.0的,其应用方法和设计流程对于其他流行EDA工具的使用具有一定的典型性和普遍性。它提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)开发的基本设计工具,并为Altera DSP开发包进行系统模型设计提供了集成综合环境。 Quartus Ⅱ6.0包括模块化的编译器。编译器包括的功能模块有分析/综合器(Analysis & Synthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(TimingAnalyzer)、设计辅助模块(Design Assistant)、EDA(

EDA Netlist Writer

)、

网表文件生成器编

(Compiler Database Interface)等。可以通过选择Start Compilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择Compiler Tool,在Compiler Tool窗口中运行该模块来启动编译器模块。

第2章 彩灯控制器的设计原理本次彩灯控制器的设计包含几个主

第 37 页 共 56 页

要模块,一是彩灯显示和扬声器的时序控制部分,二是发光二极管的动态显示和数码管的动态显示,本次设计中,二者的显示同步变化;三是扬声器的控制部分。 流程图如下所示:

图1 彩灯控制器的设计流程图

彩灯控制器的设计核心主要是分频器的使用,显示部分的设计较简易。分频的方法有很多种,本次设计之采用了其中较简易的一种,通过计数器的分频,将控制器外接的频率分为几个我们预先设定的值。当计数器达到预先设定的值,即产生一个上升沿,从而实现分频。 扬声器通过不同的频率控制发出不同的声音。同样发光二极管和数码管的显示速度也由其中分出来的一种频率控制(控制显示

第 38 页 共 56 页

频率在1~4之间为宜)。通过使能端的控制可以控制不同的数码管显示预先设定的图案,数码管依次显示的图案为AA、BB、CC,并随着发光二极管同步动态显示。AA为自左向右显示,BB为自右向左显示,CC从二边向中间再由中间向二边发散显示。与此同时,显示不同的花型时扬声器发出不同的声音,代表不同的花型。本次设计还带有复位功能,通过复位可以使彩灯控制器恢复到最初的状态。

第3章 程序设计和分析 library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; 建立设计库和标准程序包 实体部分: entity pan is port(clk:in std_logic; clr:in std_logic; speak:out std_logic;

led7s1:out std_logic_vector(6 downto 0); led7s2:out std_logic_vector(7 downto 0); led_selout:out std_logic_vector(7 downto 0);

第 39 页 共 56 页

end entity;

实体名为pan,定义端口,输入端口为clk和clr ,其中clk接脉冲信号,clr接复位端;输出端口speak接扬声器,led7s1接数码管的七段显示部分,led7s接八个发光二极管,led_selout接八个数码管的使能端,控制数码管的循环显示。 结构体部分:

architecture one of pan is

signal s: std_logic_vector(4 downto signal clk1:std_logic; signal clk2:std_logic; signal clk3:std_logic;

定义4个信号,cq,cllk1,clk2,clk3. process(clk)

variable a:std_logic_vector(5 downto begin 10:55:54

if clr='1' then

clk1<='0'; ----- 复位信号控制部分 else

if clk'event and clk='1'then

第 40 页 共 56 页

0); 0); if a=\"110010\"then a:=\"000000\"; clk1<='1'; else a:=a+1; clk1<='0'; end if; end if; end if; end process;

以上程序为第一次分频,为50分频,当clk发生变化,使a从000000变化到110010时 产生一个上升沿clk1。如果a没有变化到110010则a继续自加,直到110010为止产生下一个上升沿。 process(clk)

variable b:std_logic_vector(4 downto 0); begin

if clr='1' then clk2<='0'; -----复位信号 else

if clk'event and clk='1'then if b=\"11001\"then b:=\"00000\";

第 41 页 共 56 页

clk2<='1'; else b:=b+1; clk2<='0'; end if; end if; end if; end process;

以上程序为对clk进行25分频,原理同上,产生信号clk2。 process(clk)

variable c:std_logic_vector(2 downto 0); begin

if clr='1' then clk3<='0'; ----复位信号 else

if clk'event and clk='1'then if c=\"111\"then c:=\"000\"; clk3<='1'; else c:=c+1; clk3<='0';

第 42 页 共 56 页

end if; end if; end if; end process;

以上程序为对clk进行8分频,产生一个新的时钟脉冲信号clk3。 数码管及二极管循环显示时序控制程序: process(clk2)

variable z:integer range 0 to 20; begin

if clr='1' then

s<=\"00000\"; -------复位信号 else

if clk'event and clk='1'then z:=z+1;

if z=20then s<=s+1;s:=0; if s=\"10111\" then s<=\"00000\"; else s<=s+1; end if; end if; end if; end if; end process;

第 43 页 共 56 页

该段程序的目的是对clk2再进行一次分频,当clk2发生变化,并且变化为上升沿时,z就加1,直到加到为20时,s就发生变化,加1,每当s发生变化,加到30时,s就加1。当s从00000变化到10111时,就对s清零,从而实现数码显示管和发光二极管的循环显示,以达到显示速度的要求。 发光二极管及数码管显示程序: process(s) begin case s is when

\"00000\"=>led7s1<=\"0001000\";led7s2<=\"01111111\";speak<=clk1;led_selout<=\"11000000\"; when

\"00001\"=>led7s1<=\"0001000\";led7s2<=\"10111111\";speak<=clk1;led_selout<=\"01100000\"; when

\"00010\"=>led7s1<=\"0001000\";led7s2<=\"11011111\";speak<=clk1;led_selout<=\"00110000\"; when

\"00011\"=>led7s1<=\"0001000\";led7s2<=\"11101111\";speak<=clk1;led_selout<=\"00011000\"; when

第 44 页 共 56 页

\"00100\"=>led7s1<=\"0001000\";led7s2<=\"11110111\";speak<=clk1;led_selout<=\"00001100\"; when

\"00101\"=>led7s1<=\"0001000\";led7s2<=\"11111011\";speak<=clk1;led_selout<=\"00000110\"; When

\"00110\"=>led7s1<=\"0001000\";led7s2<=\"11111101\";speak<=clk1;led_selout<=\"00000011\"; When

\"00111\"=>led7s1<=\"0001000\";led7s2<=\"11111110\";speak<=clk1;led_selout<=\"10000001\"; 此段程序就是当敏感信号s发生变化,对数码管进行置位和置型,0001000也就是对相应的数码管使之显示花型为A,通过对数码管使能端的置位,控制显示的数码管显示为AA ,并且发光二极管最右边显示为亮。当S每变化一次,数码管向左移动一格,发光二极管也同步向左移动,每次只亮一个灯。当 s变化到00111之后执行下一段程序,同时扬声器发出声音。 when

\"01000\"=>led7s1<=\"0000011\";led7s2<=\"11111110\";speak<=clk2;led_selout<=\"00000011\"; When

\"01001\"=>led7s1<=\"0000011\";led7s2<=\"11111101\";speak<=clk2;led_selout<=\"00000110\";

第 45 页 共 56 页

When

\"01010\"=>led7s1<=\"0000011\";led7s2<=\"11111011\";speak<=clk2;led_selout<=\"00001100\"; when

\"01011\"=>led7s1<=\"0000011\";led7s2<=\"11110111\";speak<=clk2;led_selout<=\"00011000\"; when

\"01100\"=>led7s1<=\"0000011\";led7s2<=\"11101111\";speak<=clk2;led_selout<=\"00110000\"; When

\"01101\"=>led7s1<=\"0000011\";led7s2<=\"11011111\";speak<=clk2;led_selout<=\"01100000\"; when

\"01110\"=>led7s1<=\"0000011\";led7s2<=\"10111111\";speak<=clk2;led_selout<=\"11000000\"; when

\"01111\"=>led7s1<=\"0000011\";led7s2<=\"01111111\";speak<=clk2;led_selout<=\"10000001\";

此段程序就是当敏感信号s发生变化至01000时,对数码管进行置位和置型,0000011也就是对相应的数码管使之显示花型为B,通过对数码管使能端的置位,控制显示的数码管显示为BB ,并且发光二极管最左边显示为亮。当S每变化一次,数码管向右移动一格,

第 46 页 共 56 页

发光二极管也同步向右移动,每次只亮一个灯。当 s变化到01111之后执行下一段程序,同时扬声器发出声音。 when

\"10000\"=>led7s1<=\"1000110\";led7s2<=\"01111110\";speak<=clk3;led_selout<=\"10000001\"; When

\"10001\"=>led7s1<=\"1000110\";led7s2<=\"10111101\";speak<=clk3;led_selout<=\"01000010\"; When

\"10010\"=>led7s1<=\"1000110\";led7s2<=\"11011011\";speak<=clk3;led_selout<=\"00100100\"; when

\"10011\"=>led7s1<=\"1000110\";led7s2<=\"11100111\";speak<=clk3;led_selout<=\"00011000\"; When

\"10100\"=>led7s1<=\"1000110\";led7s2<=\"11100111\";speak<=clk3;led_selout<=\"00011000\"; When

\"10101\"=>led7s1<=\"1000110\";led7s2<=\"11011011\";speak<=clk3;led_selout<=\"00100100\"; when

\"10110\"=>led7s1<=\"1000110\";led7s2<=\"10111101\";speak<=clk3;

第 47 页 共 56 页

led_selout<=\"01000010\"; when

\"10111\"=>led7s1<=\"1000110\";led7s2<=\"01111110\";speak<=clk3;led_selout<=\"10000001\"; when others=>null; end case; end process; end;

此段程序就是当敏感信号s发生变化至10000时,对数码管进行置位和置型,1000110也就是对相应的数码管使之显示花型为C,通过对数码管使能端的置位,控制显示的数码管显示为CC ,并且发光二极管最左边第一个和最右边第一个显示为亮。当S每变化一次,数码管向中间移动一格,发光二极管也同步中间移动,可以看到由二边向中间移动再发散到二边的变化过程。当 s变化到10111之后执行再循环显示A花型,同时扬声器发出声音。

第4章 波形仿真分析程序经过编译之后即可进行波形的仿真,为了方便观察显示结果,这里调节仿真时间为3us ,脉冲频率clk的周期为5ns,复位信号暂且不进行仿真.。执行Quartus软件中的processing--> start simulation选项,即可观察到波形仿真图像。如下图所示为显示花型AA的仿真结果。

第 48 页 共 56 页

图2 花型A波形仿真图

由图2可知,当clk发生变化,来上升沿时,led7s1为0001000即数码管首先显示为花型A 二极管按规定的显示,首先led7s2位01111111即最右边的二极管亮灯,led_selout为11000000即最右边的2个数码管显示2个A的花型。当clk变化到规定次数时二极管的显示开始按左移动,数码显示管也向左移动。Led7s2依次变化01111111~11111110,实现二极管的向左移动;led_selout也依次变化11000000~00000011实现数码显示管的向左移动。同时当clk信号变化50次时产生一个上升沿clk1,控制扬声器发出声音。

第 49 页 共 56 页

图3 花型BB的波形仿真图

由图3可知,当clk发生变化,来上升沿时,led7s1为0000011即数码管首先显示为花型B二极管按规定的显示,首先led7s2位11111110即最右边的二极管亮灯,led_selout为00000011即最右边的2个数码管显示2个B的花型。当clk变化到规定次数时二极管的显示开始向右移动,数码显示管也向右移动。Led7s2依次变化11111110~01111111,实现二极管的向右移动;led_selout也依次变

第 50 页 共 56 页

化00000011~11000000实现数码显示管的向右移动。同时当clk信号变化25次时产生一个上升沿clk2,控制扬声器发出声音。

图4 花型C的波形仿真图

由图4可知 当clk发生变化,来上升沿时,led7s1为1000110即数码管首先显示为花型C二极管按规定的显示,首先led7s2位01111110即最右边和最右边的二极管亮灯,led_selout为10000001即最右边和最左边的2个数码管显示2个C的花型。当clk变化到规定次数时二极管的显示开始向中间移动,数码显示管中的花型也向中间移动,然后再由中间向俩边移动。Led7s2依次变化

第 51 页 共 56 页

01111110~11100111~01111110,实现二极管的向中间移动再向俩边移动;led_selout也依次变化10000001~00011000~10000001实现数码显示管的向中间再向俩边移动。同时当clk信号变化8次时产生一个上升沿clk3,控制扬声 器发出声音。

第5章 硬件测试波形仿真完成之后即可进行引脚的分配,并进行编程下载至硬件进行测试。在

Quartus

中选择

Assignments->Assignments Editor,在Assignments Editor窗口中选择pin标签页,即可分配引脚,引脚的分配情况如图5所示。

第 52 页 共 56 页

图5 引脚分配图

如上图所示,在实验过程中clk的引脚选择J16即可外接频率源,实验过程中选择的频率为1KHZ。其余数码管和二极管以及8个数码管的使能端引脚分配见上图,复位键引脚T10对应的按键。选择process->start compilation,重新编译,完成后形成可配置到FPGA的pan.sof文件和配置到外部的pan.pof文件。编程下载,在quartus软件中,选择tools/programmer,在Mode中选择JTAG,点击”add file” 按钮添加需要配置的pan.sof文件,选中program /configure,点击start按钮对芯片进行配置,等待一段时间后即可观察到实验结果。在实验箱上,我们观察到实验结果按我们所设计的那样显示,即可显示我们预先设定的三种花型AA、BB、CC并且能够按要求循环移动,发光二极管也可按设计要求循环闪烁,并与数码显示管的花型变化同步。同时当显示不同的花型时扬声器发出了不同的声音。当按下复位键时我们可以看到数码显示管重新开始再最右边显示花型AA,并且扬声器停止发声。这些实验结果验证所设计程序的正确性,实现了设计内容和要求,并且有了一定的扩展功能。 第六章

本次设计的课题是彩灯控制器的设计,当拿到这个课题的时候经过

第 53 页 共 56 页

分析就知道关键是计数器和分频器的使用,分频的方法有很多种,对于同一种功能的实现,用VHDL可以采用多种方式进行描述,每种方式之间各有优劣,本次设计只采用了其中较简单的一种,应尽量用最简洁的语言写出所需功能的程序。

通过这次课程设计对EDA技术有了更进一步的熟悉,VHDL 语言和C语言等其他语言还是有很大的区别。VHDL是EDA技术的重要组成部分,其具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化、结构化设计方面,表现了强大的生命力和应用潜力。其主要的也是最大的优点就在于设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。在实际操作中发现设计和课本上的知识有很大联系,但又高于课本,一个简单的原理要把它应用以及和其他功能综合起来就有些困难。通过设计也巩固了我们的书本知识以及通过借阅书籍和上网查找资料,也丰富了自己对EDA的了解。

不过本次设计也存在一些不足,暴露了自己对EDA的掌握还有所欠缺。在设计过程中,分频分的太大,频率太小的话,扬声器的声音体现不出显示不同花型时的区别;频率太大的话,数码管显示速度太快,尝试分频时使用不同的脉冲信号,但没有成功。在反复调试中,最后还是成功了,但原理还不是很清楚。同时,在课程设计过程中通过与老师、同学的交流,也了解了他们对于这门技术的看法和今后这门技术的发展方向,也感谢老师对我设计的指导和同学

第 54 页 共 56 页

对我的帮助。总的来说,这次设计还是有所收获的。 参考文献

1. 潘松,黄继业.EDA与VHDL.[M]北京:清华大学出版社,2007

2.徐志军,徐光辉.CPLD/FPGA的开发与应用.[M]北京:电子工业出版社,2002

3. 边计年,薛宏熙.用VHDL设计电子线路.北京:清华大学出版社,2000

4.王金明,杨吉斌.数字系统设计与VerilogHDL.北京:机械工业出版社,2002

答辩记录及评分表

课题名称 数字电压表设计 答辩教师(职周珍艮(副教授) 称) 答辩时间 答

第 55 页 共 56 页

2011~2012学年第二学期 第14周 辩 记 录 评 分 表 学生姓名

第 56 页 共 56 页

学号 评分

因篇幅问题不能全部显示,请点此查看更多更全内容