《八路彩灯控制器》.doc
文本预览下载声明
引言
现今生活中,市场上未能吸取顾客的注意,高出各式各样的方法,其中彩灯的装饰便是其中非常普遍的一种。使用彩灯即可起装饰宣传作用,又可以现场气氛,城市也因为众多的彩灯而变得灿烂辉煌。
VHDL语言作为可编程逻辑器件的标准语言描述能力强,覆盖面广,抽象能力强,在实际应用中越来越广泛。在这个阶段,人们开始追求贯彻整个系统设计的自动化,可以从繁重的设计工作中彻底解脱出来,把精力集中在创造性的方案与概念构思上,从而可以提高设计效率,缩短产品的研制周期。整个过程通过EDA工具自动完成,大大减轻了设计人员的工作强度,提高了设计质量,减少了出错的机会。
二、总体设计:
当选择花样一时状态图如下:
S0=”ZZZZZZZZ” S1 S2 S3 S4 S5 S6CLR
当选择花样二时状态图如下:
S0=”ZZZZZZZZ” S1 S2 S3S4 S5 S6 S7=
S8= S9 S10 S11S12 S13 S14 S15=
S16=
CLR
当选择花样三时状态图如下:
S0=”ZZZZZZZZ” S1 S2 S3S4 S5 S6 S7=
S8= S9 S10 S11S12=0001000 S13 S14 CLR
总体框图:
CLK
XUAN
三、模块设计:
分频器模块: --由于机器时钟周期太短,不能满足要求
--此模块实现分频,得到需要的时钟
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;
ENTITY fenpinqi IS
PORT(
CLK:IN STD_LOGIC; --原机器时钟
CLR:IN STD_LOGIC;
CLK1:OUT STD_LOGIC); --分频后的时钟
END fenpinqi;
ARCHITECTURE ART OF fenpinqi IS
SIGNAL CK:STD_LOGIC;
BEGIN
PROCESS(CLK,CLR)IS
VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
IF CLR=1 THEN
CK=0;
TEMP:=000;
ELSIF(CLKEVENT AND CLK=1)THEN
IF TEMP=111 THEN
TEMP:=000;
CK=NOT CK;
ELSE
TEMP:=TEMP+1;
END IF;
END IF;
END PROCESS;
CLK1=CK;
END ART;
花样一模块: --用分频器分频后的时钟来显示花样实现
--从两边向中间亮,再从中间向两边亮;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY hy1 IS
PORT(CLK1:IN STD_LOGIC;
CLR:IN STD_LOGIC;
XUAN:IN STD_LOGIC_VECTOR(1 DOWNTO 0);
LED1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END ENTITY hy1;
ARCHITECTURE ART OF hy1 I
显示全部