- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验六
8路彩灯控制实验
实验报告
实验6 彩灯控制实验
1.设计8路彩灯控制电路,并用MAXPLUS进行仿真,将结果下载到实验箱中,测试电路的正确性。
要求:设计一个8路彩灯控制电路,实现8位LED每隔1秒全亮、全灭、逐个点亮,延时间隔可由外部增和减按键进行调节,同时将延时间隔显示在数码管上。
注:其中彩灯的样式可以自己进行定义
注意:外部时钟信号由实验箱的信号源提供,需要设计相应的分频电路进行分频,以获得1Hz的时钟信号
2.应包含VHDL源程序,详细的设计报告,对程序,仿真结果,实验箱运行结果(图片贴到报告中)进行详尽的分析
一、实验分析
1、彩灯动作:逐个点亮(自左向右)——至全亮——全灭——全亮——全灭——逐个点亮,时间间隔1S,可通过按键进行调节。
2、本实验由四个模块组成:四频率输出 分频器,四选一频率选择器,彩灯控制器和数字频率计。四选一频率选择器从分频器中选择不同频率的时钟信号输送到彩灯控制器,从而达到控制彩灯闪烁速度的快慢的变换。
控制过程如下图:
灯1
灯1
灯2
灯3
灯4
灯5
灯6
灯7
灯8
频率选择器
彩灯控制
高电平脉冲
分频器
时钟信号
数字频率计
rst为低电平复位信号,为低电平时,8盏灯保持全灭的状态;输入信号为一个时钟信号,经过分频器分频之后产生频率不同的四个时钟信号。
频率选择器可以通过按键输入高电平脉冲来实现四种频率的循环选择。
彩灯控制模块实现多彩灯花样循环的控制,时间间隔有频率选择器的输出频率决定。
VHDL源程序
1、四频率输出分频器
根据要求有4种速度的变化,而只有一个输入的时钟信号,所以要对输入的时钟信号进行分频,本次设计采用了二分频、四分频、八分频和16分频得到4种频率信号。二分频VHDL代码如下。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY fen2 IS
PORT(clk,rst: IN std_logic;
clk1:OUT std_logic);
END fen2;
ARCHITECTURE behav OF fen2 IS
BEGIN
PROCESS(clk,rst)
VARIABLE q1:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
IF rst=0THEN
q1:=(OTHERS=0);
ELSIF clkevent AND clk=1THEN
IF q10001 THEN q1:=q1+1;
ELSE q1:=(OTHERS=0);
END IF;
END IF;
IF q1=0001 THEN clk1=1;
ELSE clk1=0;
END IF;
END PROCESS;
END behav;
四频率输出分频器如下图:
模块元件符号如下图:
时序仿真图:
2、四选一频率选择器
四选一频率选择器控的功能是从分频器中选择不同的时钟信号送给彩灯控制器,实现彩灯闪烁频率的变化,VHDL代码如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity sixuanyi is
port(f_choose,rst,clk1,clk2,clk3,clk4:in std_logic;
z:out std_logic);
end sixuanyi;
architecture behave of sixuanyi is
signal s:std_logic_vector( 1 downto 0);
begin
one:process(f_choose)
begin
if rst=0 then s=00;
elsif f_chooseevent and f_choose=1then
s=s+1;
end if;
end process one;
two:process(s,clk1,clk2,clk3,clk4)
begin
case s is
when00=z=clk1;
when01=z=clk2;
when10=z=clk3;
when11=z=clk4;
when others =z=null;
end case;
end process two;
end behave;
模块元件符号如下图:
f_choose为频率选择端,每输入一次高脉冲,频率便改变一次,可以通过按键输入高脉冲来实现四种频率的循环选择。时序仿真图如下:
彩灯控制器
彩灯动作:逐个点亮(自左向右)——至全亮——全灭——全亮——全灭——逐个点亮,时间间隔1S,可通过
文档评论(0)