1、 1 EDAEDA 课程设计课程设计- -LEDLED 灯光灯光控制器控制器 一、一、 设计要求设计要求: 1、用 VHDL 语言设计一个 LED 灯光控制器,使 LED 灯管能连续发出四种以上 不同的显示形式。 2、LED 灯光变换的快慢节拍可以选择。 3、具有清零开关。 二、二、 设计方案设计方案 根据系统设计要求可知,整个系统共有三个输入信号:控制 LED 灯光变换 节奏快慢的基准时钟信号 CLK,系统清零信号 CLR,LED 灯光节奏变换快慢选择 开关 SPEED;共有 9 个输出信号 LED80,分别用于模拟 LED 灯。据此,我们 可将整个 LED 灯光控制器 CAIDENG 分为
2、两大部分:时序控制电路 SX 和显示控制 电路 XS,整个系统的组成原理图如图 1.1 所示 三、三、 主要主要 VHDLVHDL 源程序:源程序: (1) 时序控制电路的 VHDL 源程序 -SX.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SX IS PORT(SPEED:IN STD_LOGIC; CLK:IN STD_LOGIC; CLR:IN STD_LOGIC; CLK1:OUT STD_LOGIC); END ENTITY SX; ARCHITECTU
3、RE ART OF SX IS SIGNAL CK:STD_LOGIC; BEGIN PROCESS(CLK,CLR,SPEED) 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 SPEED=1THEN IF TEMP=“011“ THEN TEMP:=“000“; CK=NOT CK ; ELSE 2 TEMP:=TEMP+1; END IF; ELSE IF TEMP=“111“ THEN TEMP:=
4、“000“; CK=NOT CK ; ELSE TEMP:=TEMP+1; END IF; END IF; END IF; END PROCESS; CLK1=CK; END ARCHITECTURE ART; (2) 显示控制电路的 VHDL 源程序-XS.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY XS IS PORT(CLK1:IN STD_LOGIC; CLR:IN STD_LOGIC; LED:OUT STD_LOGIC_VECTOR(8 DOWNTO 0); END ENTITY XS; ARCHITECTURE ART OF XS IS TYPE STATE IS(S0,S1,S2,S3,S4,S5,S6); SIGNAL CURRENT_STATE:STATE; SIGNAL FLOWER:STD_LOGIC_VECTOR(8 DOWNTO 0); BEGIN PROCESS(CLR,CLK1) IS CONSTANT