彩灯控制器.docx

上传人:b****2 文档编号:590430 上传时间:2023-04-29 格式:DOCX 页数:19 大小:237.98KB
下载 相关 举报
彩灯控制器.docx_第1页
第1页 / 共19页
彩灯控制器.docx_第2页
第2页 / 共19页
彩灯控制器.docx_第3页
第3页 / 共19页
彩灯控制器.docx_第4页
第4页 / 共19页
彩灯控制器.docx_第5页
第5页 / 共19页
彩灯控制器.docx_第6页
第6页 / 共19页
彩灯控制器.docx_第7页
第7页 / 共19页
彩灯控制器.docx_第8页
第8页 / 共19页
彩灯控制器.docx_第9页
第9页 / 共19页
彩灯控制器.docx_第10页
第10页 / 共19页
彩灯控制器.docx_第11页
第11页 / 共19页
彩灯控制器.docx_第12页
第12页 / 共19页
彩灯控制器.docx_第13页
第13页 / 共19页
彩灯控制器.docx_第14页
第14页 / 共19页
彩灯控制器.docx_第15页
第15页 / 共19页
彩灯控制器.docx_第16页
第16页 / 共19页
彩灯控制器.docx_第17页
第17页 / 共19页
彩灯控制器.docx_第18页
第18页 / 共19页
彩灯控制器.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

彩灯控制器.docx

《彩灯控制器.docx》由会员分享,可在线阅读,更多相关《彩灯控制器.docx(19页珍藏版)》请在冰点文库上搜索。

彩灯控制器.docx

彩灯控制器

北华航天工业学院

 

《EDA技术与实验》

 

综合课程设计报告

报告题目:

彩灯控制器

作者系部:

 

前言

随着科技发展,在现代生活中,彩灯作为一种景观应用越来越广泛。

EDA技术的应用引起电子产品即系统开发的革命性变革,先介绍以VHDL为基础的16路彩灯控制系统。

本文介绍了基于EDA的多路彩灯控制器的设计与分析。

要求该控制器可靠性高、调节灵活、多功能、多花案、使用灵活方便,并且彩灯图案能定时切换。

在Quartus环境下采用VHDL语言实现,论述了基于VHDL语言在FPGA芯片的数字设计思想与实现过程。

电子设计自动化技术EDA的发展给电子系统的设计带来了革命性变化,EDA软件设计工具,硬件描述语言,可编程逻辑器件(PLD)使得EDA技术的应用走向普及。

VHDL语言是EDA的关键技术之一,它采用自顶向下的设计方法,完成系统的整体设计。

目录

一、设计要求……………………………………………………4

二、十六路彩灯控制系统的实现………………………………4

1功能描述

2设计原理

3、模块设计及功能……………………………………………6

1分频器

2状态机

3三选一数据选择器

四程序下载与实现………………………………………………13

1下载

2硬件测试

五、心得体会………………………………………………………13

 

课程设计任务书

任务:

同组两个人共同完成《彩灯控制器》的设计要求

合作人:

一设计要求

1系统设计要求

(1)要有2种花型

(2)两种花型可以自动变换,循环往复

(3)具有清零开关

用给定IC设计、安装与调试彩灯控制器,具体要求如下:

(1)控制器有四组输出,每组至少能驱动四只LED。

(2)设计用十六只LED组成的彩灯图案。

图案的状态变换至少有三种,并且能定时自动切换。

(3)彩灯图案状态变换的速度至少有快、慢两种。

(4)安装并调试彩灯控制器。

二八路彩灯控制系统的实现

1功能描述

在电路中以1代表灯亮,0代表灯灭。

由0,1按不同的规律组合代表不同的彩灯图案,同时使其选择不同的频率,从而实现多种图案快慢的花样功能显示。

此16路彩灯控制系统设定三种花样变化,三种花样可以进行自动切换,每种花样都有快慢两种显示方法。

2设计原理

用VHDL进行设计16路彩灯控制器,应充分利用VHDL“自顶向下”的设计优点以及层次化的设计对于设计复杂的数字系统是非常有用的,它使得我们可以从简单的单元入手,逐渐构成复杂而庞大的系统。

首先应进行系统模块的划分,规定每一模块的功能以及各模块之间的接口。

最终设计方案为:

以一个分频器,三个状态机,一个三选一数字选择器构成。

整个16路彩灯控制系统设计的模块图如下图所示。

顶层文件

libraryieee;

useieee.std_logic_1164.all;

entityzongis

port(

clk:

instd_logic;

clr:

instd_logic;

opt:

instd_logic;

sel:

outstd_logic_vector(1downto0);

y:

outstd_logic_vector(15downto0)

);

endzong;

architectureoneofzongis

componentsxkz

port(clk:

instd_logic;

clr:

instd_logic;

opt:

instd_logic;

clkout,clkout1:

outstd_logic);

endcomponent;

componentflo1

port(

clk:

instd_logic;

clr:

instd_logic;

led:

outstd_logic_vector(15downto0)

);

endcomponent;

componentflo2

port(

clk:

instd_logic;

clr:

instd_logic;

led:

outstd_logic_vector(15downto0)

);

endcomponent;

componentflo3

port(

clk:

instd_logic;

clr:

instd_logic;

led:

outstd_logic_vector(15downto0)

);

endcomponent;

componentseltime

port(

clk:

instd_logic;

clr:

instd_logic;

d0:

instd_logic_vector(15downto0);

d1:

instd_logic_vector(15downto0);

d2:

instd_logic_vector(15downto0);

sel:

outstd_logic_vector(1downto0);

y:

outstd_logic_vector(15downto0));

endcomponent;

signalt1,t2,t3:

std_logic;

signalt4,t5,t6:

std_logic_vector(15downto0);

begin

y0:

sxkzportmap(clk=>clk,

clr=>clr,

opt=>opt,

clkout=>t1,

clkout1=>t2);

y1:

flo1portmap(clk=>t1,

clr=>t3,

led=>t4);

y2:

flo2portmap(clk=>t1,

clr=>t3,

led=>t5);

y3:

flo3portmap(clk=>t1,

clr=>t3,

led=>t6);

y4:

seltimeportmap(clk=>t2,

clr=>t3,

d0=>t6,

d1=>t5,

d2=>t4);

endone;

三模块设计及功能

本次设计分为三个模块,即一个分频器,三个状态机,一个三选一数字选择器。

个自模块功能即程序如下:

1分频器

本次设计中,彩灯图案状态变换的速度有快、慢两种,而只有一个输入时钟信号,所以对输入时钟信号要进行2分频,4分频,对应彩灯图案变换的快慢。

而彩灯图案之间要能定时切换,就还要对输入信号进行65分频,使彩灯图案实现定时切换。

SXKZ模块实现此功能,程序如下:

libraryieee;------IEEE库使用说明

useieee.std_logic_1164.all;------定义元件库

useieee.std_logic_unsigned.all;------定义元件库

entitysxkzis------定义一个名sxkz为的实体

port(clk:

instd_logic;------描述输入输出

clr:

instd_logic;

opt:

instd_logic;

clkout,clkout1:

outstd_logic);

endsxkz;------结束实体

architectureartofsxkzis------结构体说明,定义了一个名为art的结构体

signalcllk:

std_logic;------定义信号

signalcllk1:

std_logic;

begin

ab:

process(clk,clr,opt)

variabletemp:

std_logic_vector(3downto0);--------------定义变量

begin

ifclr='1'then--------清零-信号

cllk<='0';temp:

="0000";

elsifclk'eventandclk='1'then----------上升沿有效

ifopt='1'then

iftemp="0001"then

temp:

="0000";

cllk<=notcllk;

else

temp:

=temp+'1';

endif;---------2分频

else

iftemp="0011"then

temp:

="0000";

cllk<=notcllk;

else

temp:

=temp+'1';

endif;---------4分频

endif;

endif;

endprocessab;

ac:

process(clk,clr)

variabletemp:

std_logic_vector(6downto0);

begin

ifclr='1'then

cllk1<='0';temp:

="0000000";

elsifclk'eventandclk='0'then

iftemp="1000000"then

temp:

="0000000";

cllk1<=notcllk1;

else

temp:

=temp+'1';

endif;---------65分频

endif;

endprocessac;

clkout<=cllk;

clkout1<=cllk1;

endart;

2状态机

状态机设计的就是彩灯的图案,三个状态机分别对应三个不同的图案,三种图案分别为奇数位灯上下两排交替亮,偶数位灯上下两排交替亮,上排下排两排交替亮,flo1,flo2,flo3模块实现此功能。

下面只列写其中一种花型。

三种花型内容大同小异而已。

程序段如下:

(1)第一种花型

libraryieee;------IEEE库使用说明

useieee.std_logic_1164.all;------定义元件库

entityflo1is------定义一个名为flo1的实体

port(------描述输入输出

clk:

instd_logic;

clr:

instd_logic;

led:

outstd_logic_vector(15downto0)

);

endflo1;------结束实体

architectureGYXofflo1is------结构体说明,定义了一个名为GYX的结构体

typestatesis

(s0,s1);

signalstate:

states;------定义信号

begin

process(clk,clr)

begin

ifclr='1'then-----clr为高电平,定义初态为0000000001010101

state<=s0;

led<="0000000001010101";

elsifrising_edge(clk)then------上升沿有效

casestateis

whens0=>

state<=s1;------当state=s0时,state=s1,小灯状态

led<="0101010100000000";为1010101000000000

whens1=>

state<=s0;-----------当state=s1时,state=s0,小灯状态

led<="0000000001010101";为0000000001010101

endcase;

endif;

endprocess;

endGYX;

(2)第二种花型

libraryieee;------IEEE库使用说明

useieee.std_logic_1164.all;------定义元件库

entityflo2is------定义一个名为flo2的实体

port(

clk:

instd_logic;

clr:

instd_logic;

led:

outstd_logic_vector(15downto0)

);

endflo2;

architectureGYXofflo2istypestatesis

(s0,s1);

signalstate:

states;

begin

process(clk,clr)

begin

ifclr='1'then

state<=s0;

led<="0000000010101010";

elsifrising_edge(clk)then

casestateis

whens0=>

state<=s1;

led<="1010101000000000";

whens1=>

state<=s0;

led<="0000000010101010";

endcase;

endif;

endprocess;

end

GYX;

(3)第三种花型

libraryieee;

useieee.std_logic_1164.all;

entityflo3is

port(

clk:

instd_logic;

clr:

instd_logic;

led:

outstd_logic_vector(15downto0)

);

endflo3;

architectureGYXofflo3is

typestatesis

(s0,s1);

signalstate:

states;

begin

process(clk,clr)

begin

ifclr='1'then

state<=s0;

led<="0000000011111111";

elsifclk'eventandclk='1'then

casestateis

whens0=>

state<=s1;

led<="1111111100000000";

whens1=>

state<=s0;

led<="0000000011111111";

endcase;

endif;

endprocess;

endGYX;

3三选一数字选择器

三选一数字选择器由定时信号控制,从三个状态机里面选出要显示的图案,由SEITIME1模块实现。

程序如下:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityseltimeis

port(

clk:

instd_logic;

clr:

instd_logic;

d0:

instd_logic_vector(15downto0);

d1:

instd_logic_vector(15downto0);

d2:

instd_logic_vector(15downto0);

sel:

outstd_logic_vector(1downto0);

y:

outstd_logic_vector(15downto0));

endseltime;

architecturethreeofseltimeis

signalm:

std_logic_vector(1downto0);

signaln:

std_logic_vector(15downto0);

begin

n<="0000000000000000"whenclr='1'

elsed0whenm="00"

elsed1whenm="01"

elsed2;

ab:

process(clr,clk,d0,d1,d2)

begin

ifclk'eventandclk='1'then

ifm="10"thenm<="00";

elsem<=m+1;

endif;

endif;

endprocessab;

sel<=m;

y<=n;

endthree;

四程序下载与实现

1下载

以上的仿真正确无误,则可以将设计编程下载到选定的目标器件中做进一步的硬件测试,以便最终了解设计的正确性。

2硬件测试

经检查没有错误后下载成功在实验箱中连线成功后室验箱中的彩灯按照程序依次亮灭。

五心得体会

1通过这次课程设计我有以下几点收获:

2同组合作分工很重要,每个人都有不同的重点,最后组合在一起

3先分析课设要求,划分出各个模块进行编程,仿真等

4仿真过程,要理解透彻,与元件图或程序对应。

5下载前硬件插线要连接好,别虚接,漏接

评语

 

 

课程设计成绩:

指导教师:

日期:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2