当前位置:首页 > EDA > 电子设计自动化
[导读]一、多路彩灯控制器设计原理设计一个彩灯控制程序器。可以实现四种花型循环变化,有复位开关。整个系统共有三个输入信号CLK,RST,SelMode,八个输出信号控制八个彩灯。时钟信号CLK脉冲由系统的晶振产生。各种不同花

一、多路彩灯控制器设计原理

设计一个彩灯控制程序器。可以实现四种花型循环变化,有复位开关。整个系统共有三个输入信号CLK,RST,SelMode,八个输出信号控制八个彩灯。时钟信号CLK脉冲由系统的晶振产生。各种不同花样彩灯的变换由SelMode控制.硬件电路的设计要求在彩灯的前端加74373锁存器。用来对彩灯进行锁存控制。此彩灯控制系统设定有四种花样变化,这四种花样可以进行切换,四种花样分别为:

(1)彩灯从左到右逐次闪亮。然后从右到左逐次熄灭。

(2)彩灯两边同时亮两个,然后逐次向中间点亮。

(3)彩灯从左到右两个两个点亮,然后从右到左两个两个逐次点亮。

(4)彩灯中间两个点亮。然后同时向两边散开。

二、多路彩灯控制器的VHDL的实现

本控制电路采用VHDL语言设计。运用自顶而下的设计思想,按功能逐层分割实现层次化设计。根据多路彩灯控制器的设计原理,将整个控制器分为四个部分,分别对应彩灯的四种变化模式、利用VHDL语言实现该功能程序如下:

LIBRARY IEEE;

USE IEEE.std_logic_1164.ALL;

USE IEEE.std_loglc_ARITH.ALL;

USE IEEE.std_logic_UNSIGNED.ALL;

ENTITY CaiDeng IS

port(CLK:IN std_logic;

RST:in std_logic;

SelMode:in std_logic_vector(1 downto 0);--彩灯花样控制

Light:out std_logic_vector(7 downto 0));

END CaiDeng;

ARCHIteCTURE control OF CaiDeng IS

SIGNAL clk1ms:std_logic:='0';

SIGNAL cnt1:std_logic_vector(3 downto 0):="0000";

SIGNAL ent2:std_logic_vector(1 downto 0):="00";

SIGNAL cnt3:std_logic_vector(3 downto 0):="0000";

SIGNAL cnt4:std_logic_vector(1 downto 0):="00";

BEGIN

P1:PR0CESS(clk1ms)

BEGIN

if(clk1ms'EVENT AND clk1ms='1')then

if selmode="00" then --第一种彩灯花样的程序

if cnt1="1111" then

cnt1<="0000";

else cnt1<= cnt1+1;

end if;

case cnt1 is

when "0000"=>light<="10000000";

when "0001"=>light<="11000000";

when "0010"=>light<="11100000";

when "0011"=>light<="11110000";

when "0100"=>light<="11111000";

when "0101"=>light<="11111100";

when "0110"=>light<="11111110";

when "0111"=>light<="11111111";

when "1000"=>light<="11111110";

when "1001"=>light<="11111100";

when "1010"=>light<="11111000";

when "1011"=>light<="11110000";

when "1100"=>light<="11100000";

when "1101"=>light<="11000000";

when "1110"=>light<="10000000";

when others=>light<="00000000";

end case;

eLSIf selmode="01" then -- 第二种彩灯花样的程序

if cnt2="11" then

cnt2<="00";

else cnt2<= cnt2+1;

end if;

case cnt2 is

when "00"=>light<="10000001";

when "01"=>light<="11000011";

when "10"=>light<="11100111";

when "11"=>light<="11111111";

when others=>light<="00000000";

end ease;

elsif selmode="10" then --第三种彩灯花样的程序

if cnt3="1111" then

cnt3<="0000";

else cnt3<=cnt3+1;

end if;

case cnt3 is

when "0000"=>light<="11000000";

when "0001"=>light<="01100000";

when "0010"=>light<="00110000";

when "0011"=>light<="00011000";

when "0100"=>light<="00001100";

when "0101"=>light<="00000110";

when "0110"=>light<="00000011";

when "0111"=>light<="00000110";

when "1000"=>light<="00001100";

when "1001"=>light<="00011000";

when "1010"=>light<="00110000";

when "1011"=>light<="01100000";

when "1100"=>light<="11000000";

when others=>light<="00000000";

end case;

elsif selmode="11" then -- 第四种彩灯花样的程序

if cnt4="11" then

cnt4<="00";

else cnt4<= cnt4+1;

end if;

case cnt4 is

when "00"=>light<="00011000";

when "01"=>light<="00111100";

when "10"=>light<="01111110";

when "11"=>light<="11111111";

when others=>light<="00000000";

end ease;

end if;

end if;

END PROCESS P1;

P2:PROCESS(clk) --分频进程

variable cnt:integer range 0 to 1000;

BEGIN

IF(RST='0')then

cnt:=0:

ELSIF(clk'EVENT AND clk='1')then

if cnt<999 then

cnt:=cnt+1;

clk1ms<='0';

else

cnt:=0;

clk1ms<='1';

end if;

end if;

end PROCESS P2;

end cONtrol;

三、功能仿真及下载验证

各模块VHDL程序经过编译优化后,选择合适的目标芯片进行综合、管脚配置。本电路选用ALTERA公司的可编程逻辑芯片EPM7128SLC84-6,由MAX+Plus II进行仿真,从仿真波形可以看出,此程序可以实现四种不同花样彩灯的相互变换,每种花样彩灯可以循环变化。但是如果系统的固有频率很大,彩灯的闪烁速度非常快,看到的现象是每个花样的八个彩灯同时被点亮,为了实现绚丽多彩的景象,必须要在程序中加一个分频进程如上述程序的进程P2。

四、结束语

本次设计的程序已经在硬件系统上得到了验证,实验表明。此设计方法能够满足四种不同花样彩灯的变化要求,并且该方法便于扩展不同变化模式的彩灯花样,各个不同花样的相互转变是手动切换实现的。自动切换的方法笔者不再累述。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭