数电课设多路彩灯控制器Word下载.docx
- 文档编号:22447022
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:12
- 大小:78.60KB
数电课设多路彩灯控制器Word下载.docx
《数电课设多路彩灯控制器Word下载.docx》由会员分享,可在线阅读,更多相关《数电课设多路彩灯控制器Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
2.1问题基本描述5
2.2系统问题分解及功能基本要求5
2.3设计原理6
2.4分解设计6
第三章:
多路彩灯控制器拓展11
3.1拓展内容11
3.2拓展模块11
3.3拓展仿真12
第四章:
结论13
心得体会13
参考文献13
设计任务
设计多路彩灯控制器
项目的主要内容是设计并实现多路彩灯控制器。
该电路将所学的数字电路与系统大部分知识和VHDL语言结合。
1.2项目设计说明
本项目主要用来实现设计多路彩灯控制器。
1.2.1设计任务和要求
1、整个系统共有三个输入信号:
CLK(时钟脉冲信号),Rst(复位信号),Mode(模式设置);
八个输出信号控制八个LED彩灯;
时钟脉冲信号由数字电路实验仪提供。
2、多路彩灯控制器可以实现四种花型循环变化,有复位信号Rst,各种不同花样彩灯的变换由Mode控制。
3、循环变化的四种花型自行设计。
4、可以变换频率。
1.2.2进度安排
第1周:
根据题目去寻找相关的材料。
第2周:
分析任务和要求,进行控制电路的绘画。
第3周:
编写程序,将程序输入计算机,进行编译,仿真,确认程序实现了所需的功能。
第4周:
将各个部分进行连接,在Quartus中绘画出总数字电路图。
第5周:
进行总电路图的编译,仿真,调试,进行各种修改,观察该电路图是否能实现任务的要求。
第6周:
进行该实验的拓展。
第7周:
进行实验报告。
第8周:
进行该课程的答辩。
1.3项目总体功能图
需求分析
2.1问题基本描述
多路彩灯控制器可以实现四种花型循环变化
2.2系统问题分解及功能基本要求
如总体功能图所示,caideng模块为整体的核心模块,通过Mode可以实现四种花型循环变化,复位按钮实现花型的复位。
2.3设计原理
Caideng彩灯花色选择模块,三个输入信号clk,ret,selmode。
clk提供时钟信号,ret复位按钮,跳变沿有效,selmode是花型选择信号,通过给selmode赋值改变花色,输出信号为light八位发光二极管。
2.4分解设计
(一)彩灯模块
Caideng彩灯花色选择模块,是该多路彩灯控制器的核心部分,三个输入信号clk,ret,selmode.clk提供时钟信号,ret复位按钮,跳变沿有效,selmode是花型选择信号,输出信号为light八位发光二极管。
该模块的源程序如下:
LIBRARYIEEE;
USEIEEE.std_logic_1164.ALL;
USEIEEE.std_logic_ARITH.ALL;
USEIEEE.std_logic_UNSIGNED.ALL;
ENTITYcaidengIS
port(clk:
INstd_logic;
rst:
instd_logic;
selmode:
instd_logic_vector(1downto0);
--彩灯花样控制
light:
outstd_logic_vector(7downto0));
ENDcaideng;
ARCHITECTUREcontrolOFcaidengIS
SIGNALclk1ms:
std_logic:
='
0'
;
SIGNALcnt1:
std_logic_vector(3downto0):
="
0000"
SIGNALcnt2:
std_logic_vector(1downto0):
00"
SIGNALcnt3:
SIGNALcnt4:
BEGIN
P1:
PRoCESS(clk)
if(clk'
EVENTANDclk='
1'
)then
ifselmode="
then--第一种彩灯花样的程序
if(cnt1="
1111"
orrst='
)then
cnt1<
elsecnt1<
=cnt1+1;
endif;
casecnt1is
when"
=>
light<
10000000"
0001"
11000000"
0010"
11100000"
0011"
11110000"
0100"
11111000"
0101"
11111100"
0110"
11111110"
0111"
11111111"
1000"
1001"
1010"
1011"
1100"
1101"
1110"
whenothers=>
00000000"
endcase;
elsifselmode="
01"
then--第二种彩灯花样的程序
ifcnt2="
11"
then
cnt2<
elsecnt2<
=cnt2+1;
casecnt2is
10000001"
11000011"
10"
11100111"
then--第三种彩灯花样的程序
ifcnt3="
cnt3<
elsecnt3<
=cnt3+1;
casecnt3is
01100000"
00110000"
00011000"
00001100"
00000110"
00000011"
then--第四种彩灯花样的程序
ifcnt4="
cnt4<
elsecnt4<
=cnt4+1;
casecnt4is
00111100"
01111110"
ENDPROCESSP1;
endcontrol;
caideng模块
caideng模块波形仿真图
当selmode=“00”时,八盏灯依次来回点亮;
当selmode=“01”时,同时从两边开始往中间依次点亮;
当selmode=“10”时,两盏灯同时流动点亮;
当selmode=“11”时,同时从中间往两边依次点亮;
(二)分频模块
分频器是对大的频率进行转变是其更适合使用,其源程序如下:
libraryieee;
useieee.std_logic_1164.all;
entityfenis
port(clk:
q:
outstd_logic);
endfen;
architecturefen_arcoffenis
begin
process(clk)
variablecnt:
integerrange0to24999999;
variablex:
std_logic;
begin
ifclk'
eventandclk='
ifcnt<
24999999then
cnt:
=cnt+1;
else
=0;
x:
=notx;
endif;
endif;
q<
=x;
endprocess;
endfen_arc;
fen模块
多路彩灯控制器拓展
3.1拓展内容
增加一个输入信号CHOOSE可以选择彩灯变换的速度快慢。
3.2拓展模块
增加fenpin程序,使之实现频率变化功能,fenpin程序如下:
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYfenpinIS
PORT(CHOOSE:
INSTD_LOGIC;
CLK:
CLKOUT:
OUTSTD_LOGIC);
ENDfenpin;
ARCHITECTUREBEHAVOFfenpinIS
SIGNALCLLK:
STD_LOGIC;
signalRESET:
BEGIN
PROCESS(CLK,CHOOSE)IS
VARIABLECOUNT:
STD_LOGIC_VECTOR(2DOWNTO0);
IFRESET='
THENCLLK<
COUNT:
000"
ELSIFRISING_EDGE(CLK)THEN
IFCHOOSE='
THEN
IFCOUNT="
011"
THENCOUNT:
CLLK<
=NOTCLLK;
ELSE
=COUNT+'
ENDIF;
111"
ENDPROCESS;
CLKOUT<
=CLLK;
ENDARCHITECTUREBEHAV;
拓展模块
3.3拓展仿真
当分频选择信号CHOOSE为低电平时,分频比例为1:
3;
当分频选择信号CHOOSE为高电平时,分频比例为1:
6;
结论
通过此课程设计,我们实现了多路彩灯控制器功能,不论是实现四种花型循环变化,复位信号,各种不同花样彩灯的变换控制还是改变花色的速度,从所有方面都已完成课程设计的要求。
而且还把所有的过程全部实现在了开发板的LED灯上。
心得体会
在完成此次课程设计的过程中,我们遇到了很多问题。
刚开始拿到题目觉得很简单,但到了编程的时候,就发现不简单,如何在程序里实现改变花色,如何选择花色,到如何让花色的速度变化,一个一个难题叠加过来,让人无从下手。
后来通过仔细的分析资料带来的灵感,把堆叠到一起的问题分解开来,一步一步做,首先实现变换花色,然后再实现花色的选择,再把两端程序结合到一起,那样就有整个多路彩灯控制器的轮廓了,然后再考虑如何复位,如何变换选择频率。
慢慢的,所有问题全都解开了。
通过这次学习,不仅对个人专业知识有了更深的理解,而且还对小组合作来解决问题的方法有了更深的体会,面对问题,一起商议,一点一点解决问题,有人找资料有人研究有人改善,所有的一切都将迎刃而解。
参考文献
王振红《VHDL数字电路设计与应用实践教程》第二版机械工业出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数电课设多路 彩灯 控制器