彩灯控制器课程设计资料.doc

上传人:豆**** 文档编号:24152506 上传时间:2022-07-03 格式:DOC 页数:18 大小:733.50KB
返回 下载 相关 举报
彩灯控制器课程设计资料.doc_第1页
第1页 / 共18页
彩灯控制器课程设计资料.doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《彩灯控制器课程设计资料.doc》由会员分享,可在线阅读,更多相关《彩灯控制器课程设计资料.doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date彩灯控制器课程设计资料彩灯控制器课程设计资料 20162017学年 第一学期数字电子技术课 程 设 计 报 告题 目: 数字电压表设计 专 业: 电子信息 班 级: 08电子信息1 姓 名: 张三、李四 指导教师: 周珍艮 电气工程系2016年X月X日-数字系统设计任务书课题名称数字电压表设计指导教师(职称)周珍艮(副教授)执行时间20162017学年第一学期 第XX

2、周学生姓名学号承担任务设计目的1、掌握VHDL语言的基本结构及应用2、掌握利用VHDL语言进行数字系统设计方法设计要求用FPGA和模数转换器ADC0804设计一个数字电压表,能够测量05V之间的直流电压,用三个数码管显示被测电压,要求小数点后有两位数字显示。第1章EDA简介.1第2章彩灯控制器的设计原理.2第3章程序设计和分析.3第4章波形仿真分析.第5章硬件测试.11第6章心得体会.12第1章EDA简介 EDA技术(即ElectronicDesignAutomation技术)就是依赖强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL (HardwareDdscriptionLang

3、urage)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。它在硬件实现方面融合了大规模集成电路制造技术、IC版图设计、ASIC测试和封装、FPGA(GieldPeogrammableGateArray)/CPLD(ComplexProgrammableLogicDevice)编程下载和自动测试等技术;在计算机辅助工程方面融合了计算机辅助设计(CAD),计算机辅助制造(CAM),计算机辅助测试(CAT),计算机辅助工程(CAE)技术以及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如电子线

4、路设计理论、数字信号处理技术、数字系统建模和优化技术及长线技术理论等。硬件描述语言HDL是EDA技术的重要组成部分,常见的HDL主要有VHDL、VerilogHDL、ABEL、AHDL、SystemVerilog和SystemC。其中VHDL、Verilog和现在的EDA设计中使用最多,并且我们学习的是VHDL的编程方法和实用技术。VHDL的英文全名是VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage,由IEEE(TheInstituteofElectricalandElectronicsEngineets)进一步发

5、展,并在1987年作为“IEEE标准1076”公布。从此VHDL成为硬件描述语言的业界标准之一。VHDL技术与传统的数字电子系统或IC设计相比之下有很大的优势,主要表现在:第一,VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。第二,VHDL具有也具体硬件电路武官和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化,结构化设计方面,表现了强大的生命力和应用潜力。EDA书中所给出的所有的实力和实验都是基于Quartus6.0的,其应用方法和设计流程对于其他流行EDA工具的使用具

6、有一定的典型性和普遍性。它提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)开发的基本设计工具,并为AlteraDSP开发包进行系统模型设计提供了集成综合环境。Quartus6.0包括模块化的编译器。编译器包括的功能模块有分析/综合器(AnalysisSynthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(TimingAnalyzer)、设计辅助模块(DesignAssistant)、EDA网表文件生成器(EDANetlistWriter)、编辑数据接口(CompilerDatabaseInterface)等。可以通过选择St

7、artCompilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择CompilerTool,在CompilerTool窗口中运行该模块来启动编译器模块。第2章彩灯控制器的设计原理本次彩灯控制器的设计包含几个主要模块,一是彩灯显示和扬声器的时序控制部分,二是发光二极管的动态显示和数码管的动态显示,本次设计中,二者的显示同步变化;三是扬声器的控制部分。流程图如下所示:图1彩灯控制器的设计流程图彩灯控制器的设计核心主要是分频器的使用,显示部分的设计较简易。分频的方法有很多种,本次设计之采用了其中较简易的一种,通过计数器的分频,将控制器外接的频率分为几个我们预

8、先设定的值。当计数器达到预先设定的值,即产生一个上升沿,从而实现分频。扬声器通过不同的频率控制发出不同的声音。同样发光二极管和数码管的显示速度也由其中分出来的一种频率控制(控制显示频率在14之间为宜)。通过使能端的控制可以控制不同的数码管显示预先设定的图案,数码管依次显示的图案为AA、BB、CC,并随着发光二极管同步动态显示。AA为自左向右显示,BB为自右向左显示,CC从二边向中间再由中间向二边发散显示。与此同时,显示不同的花型时扬声器发出不同的声音,代表不同的花型。本次设计还带有复位功能,通过复位可以使彩灯控制器恢复到最初的状态。第3章程序设计和分析libraryieee;useieee.s

9、td_logic_1164.all;useieee.std_logic_unsigned.all;建立设计库和标准程序包实体部分:entitypanisport(clk:instd_logic;clr:instd_logic;speak:outstd_logic;led7s1:outstd_logic_vector(6downto0);led7s2:outstd_logic_vector(7downto0);led_selout:outstd_logic_vector(7downto0);endentity;实体名为pan,定义端口,输入端口为clk和clr,其中clk接脉冲信号,clr接复位

10、端;输出端口speak接扬声器,led7s1接数码管的七段显示部分,led7s接八个发光二极管,led_selout接八个数码管的使能端,控制数码管的循环显示。结构体部分:architectureoneofpanissignals:std_logic_vector(4downto0);signalclk1:std_logic;signalclk2:std_logic;signalclk3:std_logic;定义4个信号,cq,cllk1,clk2,clk3.process(clk)variablea:std_logic_vector(5downto0);begin10:55:54ifclr=

11、1thenclk1=0;-复位信号控制部分elseifclkeventandclk=1thenifa=110010thena:=000000;clk1=1;elsea:=a+1;clk1=0;endif;endif;endif;endprocess;以上程序为第一次分频,为50分频,当clk发生变化,使a从000000变化到110010时产生一个上升沿clk1。如果a没有变化到110010则a继续自加,直到110010为止产生下一个上升沿。process(clk)variableb:std_logic_vector(4downto0);beginifclr=1thenclk2=0;-复位信号e

12、lseifclkeventandclk=1thenifb=11001thenb:=00000;clk2=1;elseb:=b+1;clk2=0;endif;endif;endif;endprocess;以上程序为对clk进行25分频,原理同上,产生信号clk2。process(clk)variablec:std_logic_vector(2downto0);beginifclr=1thenclk3=0;-复位信号elseifclkeventandclk=1thenifc=111thenc:=000;clk3=1;elsec:=c+1;clk3=0;endif;endif;endif;endpr

13、ocess;以上程序为对clk进行8分频,产生一个新的时钟脉冲信号clk3。数码管及二极管循环显示时序控制程序:process(clk2)variablez:integerrange0to20;beginifclr=1thens=00000;-复位信号elseifclkeventandclk=1thenz:=z+1;ifz=20thens=s+1;s:=0;ifs=10111thens=00000;elsesled7s1=0001000;led7s2=01111111;speak=clk1;led_seloutled7s1=0001000;led7s2=10111111;speak=clk1;

14、led_seloutled7s1=0001000;led7s2=11011111;speak=clk1;led_seloutled7s1=0001000;led7s2=11101111;speak=clk1;led_seloutled7s1=0001000;led7s2=11110111;speak=clk1;led_seloutled7s1=0001000;led7s2=11111011;speak=clk1;led_seloutled7s1=0001000;led7s2=11111101;speak=clk1;led_seloutled7s1=0001000;led7s2=11111110

15、;speak=clk1;led_seloutled7s1=0000011;led7s2=11111110;speak=clk2;led_seloutled7s1=0000011;led7s2=11111101;speak=clk2;led_seloutled7s1=0000011;led7s2=11111011;speak=clk2;led_seloutled7s1=0000011;led7s2=11110111;speak=clk2;led_seloutled7s1=0000011;led7s2=11101111;speak=clk2;led_seloutled7s1=0000011;led

16、7s2=11011111;speak=clk2;led_seloutled7s1=0000011;led7s2=10111111;speak=clk2;led_seloutled7s1=0000011;led7s2=01111111;speak=clk2;led_seloutled7s1=1000110;led7s2=01111110;speak=clk3;led_seloutled7s1=1000110;led7s2=10111101;speak=clk3;led_seloutled7s1=1000110;led7s2=11011011;speak=clk3;led_seloutled7s1

17、=1000110;led7s2=11100111;speak=clk3;led_seloutled7s1=1000110;led7s2=11100111;speak=clk3;led_seloutled7s1=1000110;led7s2=11011011;speak=clk3;led_seloutled7s1=1000110;led7s2=10111101;speak=clk3;led_seloutled7s1=1000110;led7s2=01111110;speak=clk3;led_seloutnull;endcase;endprocess;end;此段程序就是当敏感信号s发生变化至1

18、0000时,对数码管进行置位和置型,1000110也就是对相应的数码管使之显示花型为C,通过对数码管使能端的置位,控制显示的数码管显示为CC,并且发光二极管最左边第一个和最右边第一个显示为亮。当S每变化一次,数码管向中间移动一格,发光二极管也同步中间移动,可以看到由二边向中间移动再发散到二边的变化过程。当s变化到10111之后执行再循环显示A花型,同时扬声器发出声音。第4章波形仿真分析程序经过编译之后即可进行波形的仿真,为了方便观察显示结果,这里调节仿真时间为3us,脉冲频率clk的周期为5ns,复位信号暂且不进行仿真.。执行Quartus软件中的processing-startsimulat

19、ion选项,即可观察到波形仿真图像。如下图所示为显示花型AA的仿真结果。图2花型A波形仿真图由图2可知,当clk发生变化,来上升沿时,led7s1为0001000即数码管首先显示为花型A二极管按规定的显示,首先led7s2位01111111即最右边的二极管亮灯,led_selout为11000000即最右边的2个数码管显示2个A的花型。当clk变化到规定次数时二极管的显示开始按左移动,数码显示管也向左移动。Led7s2依次变化0111111111111110,实现二极管的向左移动;led_selout也依次变化1100000000000011实现数码显示管的向左移动。同时当clk信号变化50次

20、时产生一个上升沿clk1,控制扬声器发出声音。图3花型BB的波形仿真图由图3可知,当clk发生变化,来上升沿时,led7s1为0000011即数码管首先显示为花型B二极管按规定的显示,首先led7s2位11111110即最右边的二极管亮灯,led_selout为00000011即最右边的2个数码管显示2个B的花型。当clk变化到规定次数时二极管的显示开始向右移动,数码显示管也向右移动。Led7s2依次变化1111111001111111,实现二极管的向右移动;led_selout也依次变化0000001111000000实现数码显示管的向右移动。同时当clk信号变化25次时产生一个上升沿clk

21、2,控制扬声器发出声音。图4花型C的波形仿真图由图4可知当clk发生变化,来上升沿时,led7s1为1000110即数码管首先显示为花型C二极管按规定的显示,首先led7s2位01111110即最右边和最右边的二极管亮灯,led_selout为10000001即最右边和最左边的2个数码管显示2个C的花型。当clk变化到规定次数时二极管的显示开始向中间移动,数码显示管中的花型也向中间移动,然后再由中间向俩边移动。Led7s2依次变化011111101110011101111110,实现二极管的向中间移动再向俩边移动;led_selout也依次变化100000010001100010000001实

22、现数码显示管的向中间再向俩边移动。同时当clk信号变化8次时产生一个上升沿clk3,控制扬声器发出声音。第5章硬件测试波形仿真完成之后即可进行引脚的分配,并进行编程下载至硬件进行测试。在Quartus中选择Assignments-AssignmentsEditor,在AssignmentsEditor窗口中选择pin标签页,即可分配引脚,引脚的分配情况如图5所示。图5引脚分配图如上图所示,在实验过程中clk的引脚选择J16即可外接频率源,实验过程中选择的频率为1KHZ。其余数码管和二极管以及8个数码管的使能端引脚分配见上图,复位键引脚T10对应的按键。选择process-startcompil

23、ation,重新编译,完成后形成可配置到FPGA的pan.sof文件和配置到外部的pan.pof文件。编程下载,在quartus软件中,选择tools/programmer,在Mode中选择JTAG,点击”addfile”按钮添加需要配置的pan.sof文件,选中program/configure,点击start按钮对芯片进行配置,等待一段时间后即可观察到实验结果。在实验箱上,我们观察到实验结果按我们所设计的那样显示,即可显示我们预先设定的三种花型AA、BB、CC并且能够按要求循环移动,发光二极管也可按设计要求循环闪烁,并与数码显示管的花型变化同步。同时当显示不同的花型时扬声器发出了不同的声音

24、。当按下复位键时我们可以看到数码显示管重新开始再最右边显示花型,并且扬声器停止发声。这些实验结果验证所设计程序的正确性,实现了设计内容和要求,并且有了一定的扩展功能。第六章本次设计的课题是彩灯控制器的设计,当拿到这个课题的时候经过分析就知道关键是计数器和分频器的使用,分频的方法有很多种,对于同一种功能的实现,用VHDL可以采用多种方式进行描述,每种方式之间各有优劣,本次设计只采用了其中较简单的一种,应尽量用最简洁的语言写出所需功能的程序。通过这次课程设计对技术有了更进一步的熟悉,VHDL 语言和语言等其他语言还是有很大的区别。VHDL是EDA技术的重要组成部分,其具有与具体硬件电路无关和与设计

25、平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化、结构化设计方面,表现了强大的生命力和应用潜力。其主要的也是最大的优点就在于设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。在实际操作中发现设计和课本上的知识有很大联系,但又高于课本,一个简单的原理要把它应用以及和其他功能综合起来就有些困难。通过设计也巩固了我们的书本知识以及通过借阅书籍和上网查找资料,也丰富了自己对的了解。不过本次设计也存在一些不足,暴露了自己对的掌握还有所欠缺。在设计过程中,分频分的太大,频率太小的话,扬声器的声音体现不出显示不同花型时的区别;频率

26、太大的话,数码管显示速度太快,尝试分频时使用不同的脉冲信号,但没有成功。在反复调试中,最后还是成功了,但原理还不是很清楚。同时,在课程设计过程中通过与老师、同学的交流,也了解了他们对于这门技术的看法和今后这门技术的发展方向,也感谢老师对我设计的指导和同学对我的帮助。总的来说,这次设计还是有所收获的。参考文献1潘松,黄继业与VHDLM北京:清华大学出版社,20072徐志军,徐光辉CPLD/FPGA的开发与应用M北京:电子工业出版社,20023边计年,薛宏熙用VHDL设计电子线路北京:清华大学出版社,20004王金明,杨吉斌数字系统设计与VerilogHDL北京:机械工业出版社,2002答辩记录及评分表 课题名称数字电压表设计答辩教师(职称)周珍艮(副教授) 答辩时间20112012学年第二学期 第14周答辩记录 评 分 表学生姓名学号评分

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁