人人范文网 范文大全

eda课程设计彩灯控制器

发布时间:2020-03-02 22:35:22 来源:范文大全 收藏本文 下载本文 手机版

1.设计目的

学习EDA开发软件和MAX+plus Ⅱ的使用方法,熟悉可编程逻辑器件的使用,通过制作来了解彩灯控制系统。 2.设计题目描述和要求

1)设计一个彩灯控制器,使彩灯(LED管)能连续发出四种以上不同的显示形式;

2)随着彩灯显示图案的变化,发出不同的音响声。 3)扩充其它功能。 3.设计原理 3.1 方案论证

这次的彩灯设计采用的是分模块来完成的,包括分频器、计数器、选择器、彩灯控制器。其中彩灯控制器是用来输出不同的花样,彩灯控制器的输出则是用一个32进制的计数器来控制,扬声器的输出时用不同的频率来控制,所以用了一个集成分频器来使输入的频率被分为几种不同的频率,不同频率的选择性的输出则是用一个4选一的选择器来控制。基于上述的介绍本次的彩灯控制采用的模式6来进行显示。

图3-1-1 模式6结构图

3.2 模块设计

1)集成分频器模块

设计要求显示不同的彩灯的时候要伴随不同的音乐,所以设计分频器来用不同的频率控制不同的音乐输出。 模块说明:

Rst:输入信号 复位信号 用来复位集成分频器的输出使输出为“0”,及没有音乐输出。

Clk:输入信号 模块的功能即为分频输入的频率信号。

Clk_

4、clk_

6、clk_

8、clk_10:输出信号 即为分频模块对输入信号clk的分频,分别为1/4分频输出、1/6分频输出、1/8分频输出、1/10分频输出。

2

图3-2-1 集成分频器

2)32进制计数器模块

32进制模块用来控制彩灯输出模块,即确定彩灯控制器的不同的输出。 Rst:输入信号 复位信号 用来复位32进制使其输出为“00000”。 Clk:输入信号 用来给模块提供工作频率。

Count_out[4..0]:输出信号 即为32进制计数器的输出。

图3-2-2 32进制计数器

3)彩灯控制模块

彩灯控制模块用来直接控制彩灯的输出,使彩灯表现出不同的花样。 Rst:输入信号 使彩灯控制模块的输出为“00000000”,即让彩灯无输出。 Input[4..0]:输入信号 不同的输入使彩灯控制模块有不同的输出即彩灯显示出不同的花样。

Output[7..0]:输出信号 直接与彩灯相连来控制彩灯。

图3-2-3 彩灯控制模块

3 4) 4选1选择器模块

Rst:输入信号 复位信号 使选择器的输出为“0”。 In

1、in

2、in

3、in4:输入信号 接分频器的输出。

Inp[1..0]:输入信号 接4进制计数器的输出用来控制选择器的选择不同的输入选择不同的输出。

Output:输出信号 直接接扬声器即输出的是不同的频率来控制扬声器播放音乐。

图3-2-4 4选1选择器

5)4进制计数器模块

4进制计数器作为选择器的输入来控制选择器选择不同的频率作为输出控制扬声器工作。

Clk:输入信号 来为计数器提供工作频率。

Rst:输入信号 复位信号 使计数器的输出为“00”。

图3-2-5 4进制计数器

3.3 系统结构

整个系统就是各个分模块组成来实现最后的彩灯控制功能,系统又两个时钟来控制一个是控制32进制计数器即控制彩灯控制模块来实现彩灯的不同输出,另一个时钟为分频器的输入来进行分频处理,最后用来控制扬声器发出不同的音乐,具体分频处理的时钟的频率比实现彩灯控制的时钟频率要高。

图 3-3-1 系统功能模块

4.总结

这次的EDA课程设计有一周的时间,在这一周的时间里我们充分合理的安排了自己的时间来使本次的课程设计能够顺利的完成,当然我们在本次的设计中并不是一帆风顺的,我们遇到了一些的问题,例如我们开始时用的文本的方式用一个总的程序来完成,可以在设计的过程中我们发现程序编到后面变量越到很容易搞混淆同时各个进程间的联系也越来越模糊以至于后面我们自己都不知道程序的整体框图是什么,导致后面不能够继续下去,后面我们再一次对我们这次的设计题目进行了分析和整理,最后我和我的同伴决定采用分模块的方式来完成本次的课题设计,当然最重要的是分析各个模块间的关系。最后我们采用上面分析的结构框图。最后我们的设计很成功,仿真和硬件测试都是正确的,实现了我们的设计要求和目的。

在这次设计中我们收获了很多,首先最直接的收获就是我们巩固了这门课程所学过的知识,把它运用到了实践当中,并且学到了很多在书本撒和那个所没有学到的知识,通过查阅相关资料进一步加深了对EDA的了。总的来说,通过这次课程设计不仅锻炼了我们的动手和动脑能力,也使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,要把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。在我们的共同努力和指导老师的指引下我们圆满的完成了彩灯控制器的设计,实现了设计目的。

5

6附录一 程序:

---------------分频器模块---------- LIBRARY ieee; USE ieee.std_logic_1164.all;

ENTITY fenpinqi IS

PORT (

clk,rst : IN std_logic;

clk_10,clk_4,clk_6,clk_8 : OUT std_logic );

END fenpinqi;

ARCHITECTURE cd OF fenpinqi IS begin p1:proce(clk,rst)

variable a:integer range 0 to 20;

begin if rst=\'1\' then

clk_4

-----

复位信号控制部分 else if clk\'event and clk=\'1\'then

if a>=3 then

a:=0;

clk_4

else

a:=a+1;

clk_4

end if;

end if;

end if; end proce p1;

p2:proce(clk,rst)

variable b:integer range 0 to 20;

begin if rst=\'1\' then

clk_6

-----

复位信号控制部分

else if clk\'event and clk=\'1\'then

if b>=5 then

b:=0;

clk_6

else

b:=b+1;

clk_6

end if;

end if;

end if; end proce p2;

p3:proce(clk,rst)

variable c:integer range 0 to 20;

begin if rst=\'1\' then

clk_8

----- else if clk\'event and clk=\'1\'then

if c>=7 then

c:=0;

clk_8

else

c:=c+1;

clk_8

end if;

end if;

end if; end proce p3;

p4:proce(clk,rst)

variable d:integer range 0 to 20;

begin if rst=\'1\' then

clk_10

----- else if clk\'event and clk=\'1\'then

if d>=9 then

d:=0;

clk_10

else

复位信号控制部分7

复位信号控制部分

d:=d+1;

clk_10

end if;

end if;

end if; end proce p4; end cd;

---------------4选1选择器-------- LIBRARY ieee; USE ieee.std_logic_1164.all;

ENTITY xzq4_1 IS

PORT (

rst:in std_logic;

inp:in integer range 0 to 3;

in1,in2,in3,in4 : In std_logic;

output : OUT std_logic );

END xzq4_1;

ARCHITECTURE a OF xzq4_1 IS

BEGIN

PROCESS (rst,inp) BEGIN

if(rst=\'1\') then output

else

case inp is

when 0=>output

when 1=>output

when 2=>output

when 3=>output

when others=>null;

end case;

end if;

END PROCESS;

8 END a;

------------彩灯控制模块--------- LIBRARY ieee; USE ieee.std_logic_1164.all;

ENTITY caideng IS

PORT (

input : IN INTEGER 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) BEGIN

if rst=\'1\' then output

else

case input is

when 0=>output

when 1=>output

when 2=>output

when 3=>output

when 4=>output

when 5=>output

when 6=>output

when 7=>output

when 8=>output

when 9=>output

when 10=>output

when 11=>output

when 12=>output

when 13=>output

when 14=>output

when 15=>output

when 16=>output

when 17=>output

when 18=>output

when 19=>output

when 20=>output

when 21=>output

when 22=>output

when 23=>output

when 24=>output

when 25=>output

when 26=>output

when 27=>output

when 28=>output

when 29=>output

when 30=>output

when 31=>output

when others=>null;

end case;

end if;

end proce; end a;

-------------32进制计数器模块----

LIBRARY ieee; USE ieee.std_logic_1164.all;

ENTITY counter_32 IS

PORT (

clk,rst : IN std_logic;

count_out : OUT integer range 0 to 31 );

END counter_32;

ARCHITECTURE a OF counter_32 IS BEGIN

10 PROCESS (rst,clk)

variable temp:integer range 0 to 32; BEGIN

IF rst=\'1\' THEN

temp:=0;

ELSIF (clk\'event and clk=\'1\') THEN

temp:=temp+1;

if(temp=32) then

temp:=0;

end if;

END IF;

count_out

END a;

------------4进制计数器模块--- LIBRARY ieee; USE ieee.std_logic_1164.all;

ENTITY counter_4 IS

PORT (

clk,rst : IN std_logic;

count_out : OUT integer range 0 to 3 );

END counter_4;

ARCHITECTURE a OF counter_4 IS BEGIN

PROCESS (rst,clk)

variable temp:integer range 0 to 32; BEGIN

IF rst=\'1\' THEN

temp:=0;

ELSIF (clk\'event and clk=\'1\') THEN

temp:=temp+1;

if(temp=4) then

temp:=0;

end if;

END IF;

count_out

7附录二 编译

7附录三 时序仿真

EDA课程设计彩灯控制器

EDA课程设计:八路彩灯控制器

彩灯控制器eda课程设计(定稿)

EDA课程设计 多路彩灯设计

数电课程设计循环彩灯控制器

彩灯控制器设计

EDA课程设计

EDA 课程设计

《EDA课程设计》

eda课程设计

eda课程设计彩灯控制器
《eda课程设计彩灯控制器.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档