版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2008级学生EDA课程设计 EDA课程设计报告书课题名称跑马灯的设计姓 名杨婷婷学 号0812202-33院 系物理与电信工程系专 业电子信息工程指导教师曾专武 讲师2011年 6月10日一、设计任务及要求: 本课程设计主要是利用VHDL语言设计跑马灯,要求实现以下功能要求: 1实现8个红色LED的亮、灭、交错显示等,其显示如下 (1)复位时,8个灯全灭; (2)从左到右第一个开始亮,依次亮到最后一个; (3)从右到左第一个开始亮,依次亮到最后一个; (4)从中间亮到两边; (5)从两边亮到中间; 2随着跑马灯显示图案的变化,发出不同的音响声。指导教师签名: 年 月 日 二、指导教师评语:指
2、导教师签名: 年 月 日 三、成绩验收盖章 年 月 日 跑马灯的设计1设计目的 系统设计采用自顶向下的设计方法,使用简单的EDA程序实现跑马灯显示效果设计。并且熟悉可编程逻辑器件的使用,通过制作来了解跑马灯控制系统。2 设计的主要内容和要求2.1实现8个红色LED的亮、灭、交错显示等,其显示如下 (1)复位时,8个灯全灭;(2)从左到右第一个开始亮,依次亮到最后一个;(3)从右到左第一个开始亮,依次亮到最后一个;(4)从中间亮到两边;(5)从两边亮到中间; 2.2随着彩灯显示图案的变化,发出不同的音响声。3 整体设计方案 这次的跑马灯设计采用的是分模块来完成的,包括分频器、计数器、选择器、彩灯
3、控制器。其中彩灯控制器是用来输出不同的花样,彩灯控制器的输出则是用一个32进制的计数器来控制,扬声器的输出时用不同的频率来控制,所以用了一个集成分频器来使输入的频率被分为几种不同的频率,不同频率的选择性的输出则是用一个4选一的选择器来控制。 图3.1跑马灯的输出原理方框图 图3.2 扬声器输出原理方框图4硬件电路的设计与软件设计4.1集成分频器模块1)设计要求显示不同的跑马灯的时候要伴随不同的音乐,所以设计分频器来用不同的频率控制不同的音乐输出。模块说明:Rst:输入信号 复位信号 用来复位集成分频器的输出使输出为“0”,及没有音乐输出。Clk:输入信号 模块的功能即为分频输入的频率信号。Cl
4、k_4、clk_6、clk_8、clk_10:输出信号 即为分频模块对输入信号clk的分频,分别为1/4分频输出、1/6分频输出、1/8分频输出、1/10分频输出。 图4.1 集成分频器2)分频器VHDL程序编写及仿真结果LIBRARY ieee;USE ieee.std_logic_1164.all; - IEEE库使用声明ENTITY fenpinqi IS - 实体端口声明PORT(clk,rst: IN std_logic; - 类型的输入端口clk_10,clk_4,clk_6,clk_8: OUT std_logic); - 输出口END fenpinqi;ARCHITECTURE
5、 cd OF fenpinqi IS -结构体功能描述语句beginp1:process(clk,rst) -进程语句 variable a:integer range 0 to 20; begin if rst='1' then clk_4<='0' -复位信号控制部分 else if clk'event and clk='1'then -时钟信号clk,上升沿有效边沿 if a>=3 then a:=0; -当a大于等于3时,则a等于0 clk_4<='1' else a:=a+1; -否则a等于a加
6、1 clk_4<='0' end if; end if; end if;end process p1;p2:process(clk,rst) variable b:integer range 0 to 20; begin if rst='1' then clk_6<='0' - 复位信号控制部分 else if clk'event and clk='1'then if b>=5 then b:=0; clk_6<='1' else b:=b+1; clk_6<='0
7、39; end if; end if; end if;end process p2;p3:process(clk,rst) variable c:integer range 0 to 20;begin if rst='1' then clk_8<='0' - 复位信号控制部分 else if clk'event and clk='1'then if c>=7 then c:=0; clk_8<='1' else c:=c+1; clk_8<='0' end if; end if; e
8、nd if;end process p3; -关闭进程p4:process(clk,rst) -开启另外一个进程variable d:integer range 0 to 20; -定义d为变量 begin if rst='1' then clk_10<='0' - 复位信号控制部分 else if clk'event and clk='1'then if d>=9 then d:=0; clk_10<='1' else d:=d+1; clk_10<='0' end if; end
9、 if; end if; end process p4; end cd;图4.2 集成分频器仿真波形4.2 32进制计数器模块1)32进制模块用来控制彩灯输出模块,即确定跑马灯控制器的不同的输出。Rst:输入信号 复位信号 用来复位32进制使其输出为“00000”。Clk:输入信号 用来给模块提供工作频率。Count_out4.0:输出信号 即为32进制计数器的输出。 图4.3 32进制计数器2)32进制计数器VHDL程序编写及其仿真结果library ieee;use ieee.std_logic_1164.all; - IEEE库使用声明entity counter_32 is -实体端口
10、声明port(clk,rst: in std_logic; -声明clk,clr是标准逻辑位类型的输入端口count_out: out integer range 0 to 31);end counter_32;architecture a of counter_32 isbeginprocess (rst,clk) variable temp:integer range 0 to 32; -定义temp为变量beginif rst='1' then -条件选择语句 temp:=0;elsif (clk'event and clk='1') then t
11、emp:=temp+1; if(temp=32) then temp:=0; end if; end if; count_out<=temp;end process;end a; 图4.4 32进制计数器仿真波形 4.3彩灯控制模块1)彩灯控制模块用来直接控制跑马灯的输出,使彩灯表现出不同的花样。Rst:输入信号 使彩灯控制模块的输出为“00000000”,即让彩灯无输出。Input4.0:输入信号 不同的输入使彩灯控制模块有不同的输出即彩灯显示出不同的花样。Output7.0:输出信号 直接与彩灯相连来控制彩 图4.5 彩灯控制模块 2) 彩灯控制模块VHDL程序编写及仿真LIBRAR
12、Y ieee;USE ieee.std_logic_1164.all; - IEEE库使用声明ENTITY caideng IS - 实体端口声明 PORT(input: ININTEGER RANGE 0 TO 31; rst:in std_logic; output: OUT std_logic_vector(7 downto 0); sm :out std_logic_vector(6 downto 0);END caideng;ARCHITECTURE a OF caideng IS -结构体功能描述语句BEGIN PROCESS (input,rst) BEGIN if rst=
13、39;1' then output<="00000000"sm<="0000000" -当rst复位时,灯全灭 else case input is when 0=>output<="10000000"sm<="0000110" when 1=>output<="01000000"sm<="0000110" when 2=>output<="00100000"sm<="00
14、00110" when 3=>output<="00010000"sm<="0000110" when 4=>output<="00001000"sm<="0000110" when 5=>output<="00000100"sm<="0000110" when 6=>output<="00000010"sm<="0000110" when 7=>o
15、utput<="00000001"sm<="0000110" -当sm为110时,灯从左到右第一个开始亮 when 8=>output<="00010000"sm<="0011011" when 9=>output<="00110000"sm<="0011011" when 10=>output<="00111000"sm<="0011011" when 11=>o
16、utput<="01111000"sm<="0011011" when 12=>output<="01111100"sm<="0011011" when 13=>output<="01111110"sm<="0011011" when 14=>output<="11111110"sm<="0011011" when 15=>output<="1111
17、1111"sm<="0011011" -当sm为11011时,灯从中间亮到两边 when 16=>output<="10000001"sm<="1001111" when 17=>output<="11000001"sm<="1001111" when 18=>output<="11000011"sm<="1001111" when 19=>output<="111
18、00011"sm<="0011011" when 20=>output<="11100111"sm<="1001111" when 21=>output<="11110111"sm<="1001111" when 22=>output<="11111111"sm<="1001111" when 23=>output<="00001000"sm<=&q
19、uot;1001111"-当sm为1001111时,灯从两边亮到中间 when 24=>output<="00000001"sm<="0100110" when 25=>output<="00000010"sm<="0100110" when 26=>output<="00000100"sm<="0100110" when 27=>output<="00001000"sm<=
20、"0100110" when 28=>output<="00010000"sm<="0100110" when 29=>output<="00100000"sm<="0100110" when 30=>output<="01000000"sm<="0100110" when 31=>output<="10000000"sm<="0100110"
21、when others=>null;-当sm为0100110时,灯从右边亮到左边end case; end if; end process; end a;图4 .6 .跑马灯控制模块仿真波形4.4 4选1选择器模块1) Rst:输入信号 复位信号 使选择器的输出为“0”。In1、in2、in3、in4:输入信号 接分频器的输出。Inp1.0:输入信号 接4进制计数器的输出用来控制选择器的选择不同的输入选择不同的输出。Output:输出信号 直接接扬声器即输出的是不同的频率来控制扬声器播放音乐。 图4.7 4选1选择器2) 4选1选择器模块VHDL程序编写及仿真Library ieee;u
22、se ieee.std_logic_1164.all; - IEEE库使用声明entity mux41 is - 实体端口声明port( rst:in std_logic; s:in std_logic_vector(1 downto 0);a,b,c,d: in std_logic;y: out std_logic);end mux41;architecture a of mux41 is -结构体功能描述语句beginprocess (rst,s,a,b,c,d)begin if(rst='1') then y<='0'else case s is -
23、 case选择语句 when "00"=>y<=a; when "01"=>y<=b; when "10"=>y<=c; when "11"=>y<=d; when others=>null; end case; end if;end process;end a;图4.8 4选1选择器仿真波形4.5 4进制计数器模块1) 4进制计数器作为选择器的输入来控制选择器选择不同的频率作为输出控制扬声器工作。Clk:输入信号 来为计数器提供工作频率。Rst:输入信号 复位
24、信号 使计数器的输出为“00”。 图4.9 4进制计数器2) 4进制计数器模块VHDL程序编写及仿真Library IEEE;use ieee.std_logic_1164.all; - IEEE库使用声明entity counter_4 is - 实体端口声明port(clk,rst: in std_logic; - 声明clk,clr是标准逻辑位count_out: out integer range 0 to 3);end counter_4;architecture a of counter_4 isbeginprocess(rst,clk) variable temp:integer
25、 range 0 to 4;begin if rst='1'then -如果rst为1,变量temp:为0,否则temp:=temp+1;temp:=0;elsif (clk'event and clk='1') then temp:=temp+1; if(temp=4) then temp:=0; end if;end if; count_out<=temp; -把temp赋值给count_outend process; end a图4.10 4进制计数器仿真波形5 系统结构及仿真 整个系统就是各个分模块组成来实现最后的彩灯控制功能,系统又两个时钟来控制一个是控制32进制计数器即控制彩灯控制模块来实现彩灯的不同输出,另一个时钟为分频器的输入来进行分频处理,最后用来控制扬声器发出不同的音乐,具体分频处理的时钟的频率比实现彩灯控制的时钟频率要高。 图 5.1 系统功能模块图 5.2 系统功能仿真波形6.总结这次的EDA课程设计有一周的时间,在这一周的时间里我们充分合理的安排了自己的时间来使本次的课程设计能够顺利的完成,当然我们在本次的设计中并不是一帆风顺的,我们遇到了一些的问题,例如我们开始时用的文本的方式用一个总的程序来完成,可以在设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 呼和浩特民族学院《散打初级》2024-2025学年第二学期期末试卷
- 湖南理工学院南湖学院《职业规划与就业指导三》2024-2025学年第二学期期末试卷
- 2026中国兵器工业第二〇五研究所春季博士校园招聘笔试模拟试题及答案解析
- 2026广西南宁市西乡塘区石埠卫生院招聘临床医师1人考试参考题库及答案解析
- 2026福建龙岩市消防救援局招聘政府专职消防员53人笔试备考试题及答案解析
- 2026黑龙江牡丹江恒丰纸业股份有限公司社会招聘96人笔试模拟试题及答案解析
- 医院抓实内部管理制度
- 编办单位内部控制制度
- 房地产公司内部审核制度
- it内部控制制度
- 冀教版3年级下册数学全册课件(2025年3月修订)
- 2024-2025学年度大庆医学高等专科学校单招《职业适应性测试》真题含答案详解(典型题)
- 前列腺术后盆底肌康复
- 危重症患者体温管理课件
- 家庭农场设施农业建设施工合同
- 律所选举管理办法
- 基于javaweb的图书管理系统
- 润心行动家长会课件
- 经络与健康的关系
- 运动控制技术课件
- 腾讯客户分级管理办法
评论
0/150
提交评论