8路炫光彩灯控制器
EDA课程设计:八路彩灯控制器

EDA课程设计:八路彩灯控制器第一篇:EDA课程设计:八路彩灯控制器EDA课程设计设计题目:基于VHDL的8路彩灯控制器设计一、课程设计的目的1.熟悉QuartusⅡ软件的使用方法,使用VHDL 文本输入设计法进行任务设计。
2.增强自己实际动手能力,独立解决问题的能力。
3.通过课程设计对所学的知识进行更新及巩固.二、课程设计的基本要求本次课程设计是设计一个8路彩灯控制器,能够控制8路彩灯按照两种节拍,三种花型循环变化。
设计完成后,通过仿真验证与设计要求进行对比,检验设计是否正确。
三、课程设计的内容编写硬件描述语言VHDL程序,设计一个两种节拍、三种花型循环变化的8路彩灯控制器,两种节拍分别为0.25s和0.5s。
三种花型分别是:(1)8路彩灯分成两半,从左至右顺次渐渐点亮,全亮后则全灭。
(2)从中间到两边对称地渐渐点亮,全亮后仍由中间向两边逐次熄灭。
(3)8路彩灯从左至右按次序依次点亮,全亮后逆次序依次熄灭。
四、实验环境PC机一台;软件Quartu sⅡ6.0五、课程设计具体步骤及仿真结果1、系统总体设计框架结构分频模块:把时钟脉冲二分频,得到另一个时钟脉冲,让这两种时钟脉冲来交替控制花型的速度。
二选一模块:选择两种频率中的一个控制彩灯的花型。
8路彩灯的三种花型控制模块:整个系统的枢纽,显示彩灯亮的情况。
2、系统硬件单元电路设计1.分频模块设计实验程序:library ieee;use ieee.std_logic_1164.all;entity fenpin2 isport(clk:in std_logic;clkk:out std_logic);end fenpin2;architecture behav of fenpin2 is beginprocess(clk)variable clkk1:std_logic:='0';beginif clk'event and clk='1' thenclkk1:= not clkk1;end if;clkk<=clkk1;end process;end behav;RTL电路图:波形图:2.二选一模块设计实验程序:library ieee;use ieee.std_logic_1164.all;entity mux21 is port(a,b,s:in std_logic;y:out std_logic);end mux21;architecture behave of mux21 is begin process(a,b,s)begin if s='0' then y<=a;else y<=b;end if;end process;end behave;RTL电路图:波形图:3.8路彩灯的三种花型控制模块设计程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity color8 is port(clk,rst :in std_logic;q:out std_logic_vector(7 downto 0));end;architecture a of color8 is signal s:std_logic_vector(4 downto 0);begin process(s,clk)begin if rst='1' then s<=“00000”;elsif clk'event and clk= '1' then if s=“11111” thens<=“00000”;else s<=s+1;end if;case s is when “00000”=>q<=“00000000”;when“00001”=>q<=“10001000”;when“00010”=>q<=“11001100”;when“00011”=>q<=“11101110”;when “00100”=>q<=“11111111”;when “00101”=>q<=“00000000”;when“00110”=>q<=“00011000”;when“00111”=>q<=“00111100”;when“01000”=>q<=“01111110”;when“01001”=>q<=“11111111”;when“01010”=>q<=“11100111”;when“01011”=>q<=“11000011”;when“01100”=>q<=“10000001”;when“01101”=>q<=“00000000”;when“01110”=>q<=“10000000”;when“01111”=>q<=“11000000”;when“10000”=>q<=“11100000”;when“10001”=>q<=“11110000”;when“10010”=>q<=“11111000”;when“10011”=>q<=“11111100”;when“10100”=>q<=“11111110”;when“10101”=>q<=“11111111”;when“10110”=>q<=“11111110”;when“10111”=>q<=“11111100”;w hen“11000”=>q<=“11111000”;when“11001”=>q<=“11110000”;when“11010”=>q<=“11100000”;when“11011”=>q<=“11000000”;when“11100”=>q<=“10000000”;when“11101”=>q<=“00000000”;when others=>null;end case;end if;end process;end;RTL电路图:波形图:4.综合程序library ieee;use ieee.std_logic_1164.all;entity fenpin2 isport(clk:in std_logic;clkk:out std_logic);end fenpin2;architecture behav of fenpin2 is beginprocess(clk)variable clkk1:std_logic:='0';beginif clk'event and clk='1' thenend if;clkk<=clkk1;end process;end behav;library ieee;use ieee.std_logic_1164.all;entity mux21 is port(a,b,s:in std_logic;y:out std_logic);end mux21;architecture behave of mux21 is begin process(a,b,s)begin if s='0' then y<=a;else y<=b;end if;end process;end behave;library ieee;clkk1:= not clkk1;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity color8 is port(clk,rst :in std_logic;q:out std_logic_vector(7 downto 0));end;architecture a of color8 is signal s:std_logic_vector(4 downto 0);begin process(s,clk)begin if rst='1' then s<=“00000”;elsif clk'event and clk= '1' then if s=“11111” thens<=“00000”;else s<=s+1;end if;case s is when “00000”=>q<=“00000000”;when“00001”=>q<=“10001000”;when“00010”=>q<=“11001100”;when“00011”=>q<=“11101110”;when“00100”=>q<=“11111111”;when“00101”=>q<=“00000000”;when“00110”=>q<=“00011000”;when“00111”=>q<=“00111100”;when“01000”=>q<=“01111110”;when“01001”=>q<=“11111111”;when“01010”=>q<=“11100111”;when“01011”=>q<=“11000011”;when “01100”=>q<=“10000001”;when “01101”=>q<=“00000000”;when“01110”=>q<=“10000000”;when“01111”=>q<=“11000000”;when“10000”=>q<=“11100000”;when“10001”=>q<=“11110000”;when“10010”=>q<=“11111000”;when“10011”=>q<=“11111100”;when“10100”=>q<=“11111110”;when“10101”=>q<=“11111111”;when“10110”=>q<=“11111110”;when“10111”=>q<=“11111100”;when“11000”=>q<=“11111000”;when“11001”=>q<=“11110000”;when“11010”=>q<=“11100000”;when“11011”=>q<=“11000000”;when“11100”=>q<=“10000000”;when“11101”=>q<=“00000000”;when others=>null;end case;end if;end process;end;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity balucaideng is port(clk,s,rst:in std_logic;q:out std_logic_vector(7 downto 0));end;architecture one of balucaideng issignal h0,h1:std_logic;component fenpin2port(clk:in std_logic;clkk:out std_logic);end component;component mux21 port(a,b,s:in std_logic;y:out std_logic);end component;component color8 port(clk,rst :in std_logic;q:out std_logic_vector(7 downto 0));end component;begin u1: fenpin2 port map(clk=>clk,clkk=>h0);u2: mux21 port map(a=>h0,b=>clk,s=>s;y=>h1);u3: color8 port map(clk=>h1,rst=>rst,q=>q);end;波形图:六、实验总结第二篇:eda课程设计-彩灯控制器1.设计目的学习EDA开发软件和MAX+plus Ⅱ的使用方法,熟悉可编程逻辑器件的使用,通过制作来了解彩灯控制系统。
8路彩灯控制器

8路彩灯控制器实验报告8路彩灯控制器一、实验目的:1、熟熟练掌握VHDL的用法2、了解8路彩灯的工作原理,电路结构。
二、实验要求:设计一个8路彩灯控制器,能控制8路彩灯按照两种节拍、三种花形循环变化。
两种节拍分别为0.25s和0.5s。
三种花型分别是:1、8路彩灯从左至右按次序见谅,全亮后逆次序渐灭。
2、从中间到两边对称渐亮,全亮后仍从中间到两边逐次渐灭。
3、8路彩灯分两半,从左至右顺次渐亮,全亮后则全灭。
三、实验原理:四、实验程序与步骤:程序:1、8路彩灯的三种花形控制模块CDlibrary ieee;use ieee.std_logic_arith.all;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cd isport(clk:in std_logic;jp:out std_logic;qq:out std_logic_vector(7 downto 0)); end cd; architecture behav of cd isconstant w:integer:=7;signal q:std_logic_vector(7 downto 0); beginprocess(clk)variable flag:bit_vector(2 downto 0):="000"; variable jp1:std_logic:='0';beginif clk'event and clk='1' thenif flag="000"thenq<='1'&q(w downto 1);if q(1)='1'thenflag:="001";end if;elsif flag="001" thenq<=q(w-1 downto 0)&'0';if q(6)='0'thenflag:="010";end if;elsif flag="010"thenq(w downto 4)<=q(w-1 downto 4)&'1';q(w-4 downto 0)<='1'&q(w-4 downto 1);if q(1)='1'thenflag:="011";end if;elsif flag="011"thenq(w downto 4)<=q(w-1 downto 4)&'0';q(w-4 downto 0)<='0'&q(w-4 downto 1);if q(1)='0'thenflag:="100";end if;elsif flag="100"thenq(w downto 4)<='1'&q(w downto 5);q(w-4 downto 0)<='1'&q(w-4 downto 1);if q(1)='1'thenflag:="101";end if;elsif flag="101"thenq<="00000000";jp1:=not jp1;flag:="000";end if;end if;qq<=q;jp<=jp1;end process;end behav;2、二选一多路选择器模块MUX21 library ieee; use ieee.std_logic_1164.all;entity mux21 isport(a,b,s:in std_logic;y:out std_logic);end mux21;architecture ar of mux21 isbeginprocess(a,b,s)beginif s='0'theny<=a;elsey<=b;end if;end process;end ar;3、二分频模块FEN2library ieee;use ieee.std_logic_1164.all;entity fen2 isport(clk:in std_logic;clkk:out std_logic);end fen2;architecture behav of fen2 isbeginprocess(clk)variable clkk1:std_logic:='0'; beginif clk'event and clk='1'thenclkk1:=not clkk1;end if;clkk<=clkk1;end process;end behav;步骤:1、输入程序CD、MUX21、FEN2。
八路彩灯控制器 课程设计

目录第一章总体设计 (5)1.1设计目的 (5)1.2设计任务与要求 (5)1.3基本工作原理 (5)1.4设计方案 (5)第二章单片机简介 (6)2.1单片机结构 (6)2.2单片机的封装形式、引脚定义及功能 (7)2.3单片机的工作原理 (8)2.4 CPU的工作原理 (8)2.5存储器结构 (9)2.6 CPU时序及时钟电路 (10)2.7复位操作 (12)第三章硬件设计 (14)3.1整体硬件接结构 (14)3.2功能模块电路 (14)3.3系统硬件原理电路图 (16)第四章软件设计 (17)4.1软件总体结构设计 (17)4.2各功能模块设计 (18)总结与心得 (25)参考文献: (26)第一章总体设计1.1设计目的1)了解单片机的基本原理及相关的简单应用。
2)掌握用单片机设计系统的一般步骤。
3)了解LED数码管的基本知识和驱动方法。
4)掌握单片机系统各个组成部分的作用以及分布位置。
5)学会运用单片机的硬件资源。
1.2设计任务与要求8个彩灯的控制电路的任务为:用AT89S51单片机设计设计一个8个彩灯控制电路。
要求:完成以下花形变化:1) 从左到右依次点亮,8个灯全亮;从右到左依次熄灭,8个灯全灭。
时间节拍为1秒。
2)从两边向中间依次点亮,8个灯全亮;从中间向两边依次熄灭,8个灯全灭。
时间节拍为1秒。
3)循环往复,用LED管模拟彩灯。
4)用汇编语言编程,用proteus仿真。
1.3基本工作原理此次使设计一个能控制八路彩灯的控制器,其中彩灯用发光二极管模拟。
由P1.6和P1.7口控制电路启动与停止,根据彩灯的亮灭要求,利用数据指针查表,将查到的内容送给P2口进行显示,然后调用1s延时程。
若查到的内容为跳出代码就重新开始循环。
1.4设计方案软件方面:通过汇编语言编程实现不同要求的状态,由延时程序实现1秒的延时时间。
硬件方面:彩灯启动与停止由P1.6和P1.7口进行控制,彩灯的显示状态由AT89C51的P2口输出显示。
八路彩灯控制器

一、引言现今生活中,市场上未能吸取顾客的注意,高出各式各样的方法,其中彩灯的装饰便是其中非常普遍的一种。
使用彩灯即可起装饰宣传作用,又可以现场气氛,城市也因为众多的彩灯而变得灿烂辉煌。
VHDL语言作为可编程逻辑器件的标准语言描述能力强,覆盖面广,抽象能力强,在实际应用中越来越广泛。
在这个阶段,人们开始追求贯彻整个系统设计的自动化,可以从繁重的设计工作中彻底解脱出来,把精力集中在创造性的方案与概念构思上,从而可以提高设计效率,缩短产品的研制周期。
整个过程通过EDA工具自动完成,大大减轻了设计人员的工作强度,提高了设计质量,减少了出错的机会。
本次设计八路彩灯控制器简略描述了彩灯的变换。
具体实现方法如下二、总体设计:当选择花样一时状态图如下:S0=”ZZZZZZZZ”S1="10000001"S2="01000010"S3="00100100"S4="00011000"S5="00100100"S6="01000010"当选择花样二时状态图如下:S0=”ZZZZZZZZ”S1="00000000"S2="10000000"S3="11000000"S4="11100000"S5="11110000"S6="11111000"S7=”11111100”S8=”11111110”S9="11111111"S10="01111111"S11="00111111"S12="00011111"S13="00001111"S14="00000111"S15=”00000011”S16=”00000001”当选择花样三时状态图如下:S0=”ZZZZZZZZ”S1="10000000"S2="01000000"S3="00100000"S4="00010000"S5="00001000"S6="00000100"S7=”00000010”S8=”00000001”S9="00000010"S10="00000100"S11="00001000"S12="0001000"S13="00100000"S14="01000000"总体框图:三、模块设计:分频器模块:--由于机器时钟周期太短,不能满足要求--此模块实现分频,得到需要的时钟LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;ENTITY fenpinqi ISPORT(CLK:IN STD_LOGIC;--原机器时钟CLR:IN STD_LOGIC;CLK1:OUT STD_LOGIC);--分频后的时钟END fenpinqi;ARCHITECTURE ART OF fenpinqi ISSIGNAL CK:STD_LOGIC;BEGINPROCESS(CLK,CLR)ISVARIABLE TEMP:STD_LOGIC_VECTOR(2DOWNTO0);BEGINIF CLR='1'THENCK<='0';TEMP:="000";ELSIF(CLK'EVENT AND CLK='1')THENIF TEMP="111"THENTEMP:="000";CK<=NOT CK;ELSETEMP:=TEMP+'1';END IF;END IF;END PROCESS;CLK1<=CK;END ART;花样一模块:--用分频器分频后的时钟来显示花样实现--从两边向中间亮,再从中间向两边亮;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY hy1ISPORT(CLK1:IN STD_LOGIC;CLR:IN STD_LOGIC;XUAN:IN STD_LOGIC_VECTOR(1DOWNTO0);LED1:OUT STD_LOGIC_VECTOR(7DOWNTO0));END ENTITY hy1;ARCHITECTURE ART OF hy1ISTYPE STATE IS(S0,S1,S2,S3,S4,S5,S6);--设计状态机,实现花样转换SIGNAL CURRENT_STATE:STATE;SIGNAL LIGHT:STD_LOGIC_VECTOR(7DOWNTO0);BEGINPROCESS(CLR,CLK1,XUAN)IS--定义花样(1为灯亮,0为灯灭) CONSTANT L1:STD_LOGIC_VECTOR(7DOWNTO0):="10000001";CONSTANT L2:STD_LOGIC_VECTOR(7DOWNTO0):="01000010";CONSTANT L3:STD_LOGIC_VECTOR(7DOWNTO0):="00100100";CONSTANT L4:STD_LOGIC_VECTOR(7DOWNTO0):="00011000";CONSTANT L5:STD_LOGIC_VECTOR(7DOWNTO0):="00100100";CONSTANT L6:STD_LOGIC_VECTOR(7DOWNTO0):="01000010";BEGINIF XUAN="01"THENIF CLR='1'THENCURRENT_STATE<=S0;ELSIF(CLK1'EVENT AND CLK1='1')THENCASE CURRENT_STATE IS--状态机转换WHEN S0=>LIGHT<="ZZZZZZZZ";CURRENT_STATE<=S1;WHEN S1=>LIGHT<=L1;CURRENT_STATE<=S2;WHEN S2=>LIGHT<=L2;CURRENT_STATE<=S3;WHEN S3=>LIGHT<=L3;CURRENT_STATE<=S4;WHEN S4=>LIGHT<=L4;CURRENT_STATE<=S5;WHEN S5=>LIGHT<=L5;CURRENT_STATE<=S6;WHEN S6=>LIGHT<=L6;CURRENT_STATE<=S1;END CASE;END IF;END IF;END PROCESS;LED1<=LIGHT;END ART;花样二模块:--用分频器分频后的时钟来显示花样实现--实现淡入淡出效果LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY hy2ISPORT(CLK1:IN STD_LOGIC;CLR:IN STD_LOGIC;XUAN:IN STD_LOGIC_VECTOR(1DOWNTO0);LED2:OUT STD_LOGIC_VECTOR(7DOWNTO0));END ENTITY hy2;ARCHITECTURE ART OF hy2IS--设计状态机,实现花样转换TYPE STATE IS(S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,S16); SIGNAL CURRENT_STATE:STATE;SIGNAL LIGHT:STD_LOGIC_VECTOR(7DOWNTO0);BEGINPROCESS(CLR,CLK1,XUAN)IS--定义花样(1为灯亮,0为灯灭)CONSTANT L1:STD_LOGIC_VECTOR(7DOWNTO0):="00000000";CONSTANT L2:STD_LOGIC_VECTOR(7DOWNTO0):="10000000";CONSTANT L3:STD_LOGIC_VECTOR(7DOWNTO0):="11000000";CONSTANT L4:STD_LOGIC_VECTOR(7DOWNTO0):="11100000";CONSTANT L5:STD_LOGIC_VECTOR(7DOWNTO0):="11110000";CONSTANT L6:STD_LOGIC_VECTOR(7DOWNTO0):="11111000";CONSTANT L7:STD_LOGIC_VECTOR(7DOWNTO0):="11111100";CONSTANT L8:STD_LOGIC_VECTOR(7DOWNTO0):="11111110";CONSTANT L9:STD_LOGIC_VECTOR(7DOWNTO0):="11111111";CONSTANT L10:STD_LOGIC_VECTOR(7DOWNTO0):="01111111";CONSTANT L11:STD_LOGIC_VECTOR(7DOWNTO0):="00111111";CONSTANT L12:STD_LOGIC_VECTOR(7DOWNTO0):="00011111";CONSTANT L13:STD_LOGIC_VECTOR(7DOWNTO0):="00001111";CONSTANT L14:STD_LOGIC_VECTOR(7DOWNTO0):="00000111";CONSTANT L15:STD_LOGIC_VECTOR(7DOWNTO0):="00000011";CONSTANT L16:STD_LOGIC_VECTOR(7DOWNTO0):="00000001";BEGINIF XUAN="10"THENIF CLR='1'THENCURRENT_STATE<=S0;ELSIF(CLK1'EVENT AND CLK1='1')THENCASE CURRENT_STATE IS--状态机转换WHEN S0=>LIGHT<="ZZZZZZZZ";CURRENT_STATE<=S1;WHEN S1=>LIGHT<=L1;CURRENT_STATE<=S2;WHEN S2=>LIGHT<=L2;CURRENT_STATE<=S3;WHEN S3=>LIGHT<=L3;CURRENT_STATE<=S4;WHEN S4=>LIGHT<=L4;CURRENT_STATE<=S5;WHEN S5=>LIGHT<=L5;CURRENT_STATE<=S6;WHEN S6=>LIGHT<=L6;CURRENT_STATE<=S7;WHEN S7=>LIGHT<=L7;CURRENT_STATE<=S8;WHEN S8=>LIGHT<=L8;CURRENT_STATE<=S9;WHEN S9=>LIGHT<=L9;CURRENT_STATE<=S10;WHEN S10=>LIGHT<=L10;CURRENT_STATE<=S11;WHEN S11=>LIGHT<=L11;CURRENT_STATE<=S12;WHEN S12=>LIGHT<=L12;CURRENT_STATE<=S13;WHEN S13=>LIGHT<=L13;CURRENT_STATE<=S14;WHEN S14=>LIGHT<=L14;CURRENT_STATE<=S15;WHEN S15=>LIGHT<=L15;CURRENT_STATE<=S16;WHEN S16=>LIGHT<=L16;CURRENT_STATE<=S1;END CASE;END IF;END IF;END PROCESS;LED2<=LIGHT;END ART;花样三模块:--用分频器分频后的时钟来显示花样实现--从左至右逐个亮,在从右到左逐个亮LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY hy3ISPORT(CLK1:IN STD_LOGIC;CLR:IN STD_LOGIC;XUAN:IN STD_LOGIC_VECTOR(1DOWNTO0);LED3:OUT STD_LOGIC_VECTOR(7DOWNTO0));END ENTITY hy3;ARCHITECTURE ART OF hy3IS--设计状态机,实现花样转换TYPE STATE IS(S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14);SIGNAL CURRENT_STATE:STATE;SIGNAL LIGHT:STD_LOGIC_VECTOR(7DOWNTO0);BEGINPROCESS(CLR,CLK1,XUAN)IS--定义花样(1为灯亮,0为灯灭)CONSTANT L1:STD_LOGIC_VECTOR(7DOWNTO0):="10000000";CONSTANT L2:STD_LOGIC_VECTOR(7DOWNTO0):="01000000";CONSTANT L3:STD_LOGIC_VECTOR(7DOWNTO0):="00100000";CONSTANT L4:STD_LOGIC_VECTOR(7DOWNTO0):="00010000";CONSTANT L5:STD_LOGIC_VECTOR(7DOWNTO0):="00001000";CONSTANT L6:STD_LOGIC_VECTOR(7DOWNTO0):="00000100";CONSTANT L7:STD_LOGIC_VECTOR(7DOWNTO0):="00000010";CONSTANT L8:STD_LOGIC_VECTOR(7DOWNTO0):="00000001";CONSTANT L9:STD_LOGIC_VECTOR(7DOWNTO0):="00000010";CONSTANT L10:STD_LOGIC_VECTOR(7DOWNTO0):="00000100";CONSTANT L11:STD_LOGIC_VECTOR(7DOWNTO0):="00001000";CONSTANT L12:STD_LOGIC_VECTOR(7DOWNTO0):="00010000";CONSTANT L13:STD_LOGIC_VECTOR(7DOWNTO0):="00100000";CONSTANT L14:STD_LOGIC_VECTOR(7DOWNTO0):="01000000";BEGINIF XUAN="11"THENIF CLR='1'THENCURRENT_STATE<=S0;ELSIF(CLK1'EVENT AND CLK1='1')THENCASE CURRENT_STATE IS--状态机转换WHEN S0=>LIGHT<="ZZZZZZZZ";CURRENT_STATE<=S1;WHEN S1=>LIGHT<=L1;CURRENT_STATE<=S2;WHEN S2=>LIGHT<=L2;CURRENT_STATE<=S3;WHEN S3=>LIGHT<=L3;CURRENT_STATE<=S4;WHEN S4=>LIGHT<=L4;CURRENT_STATE<=S5;WHEN S5=>LIGHT<=L5;CURRENT_STATE<=S6;WHEN S6=>LIGHT<=L6;CURRENT_STATE<=S7;WHEN S7=>LIGHT<=L7;CURRENT_STATE<=S8;WHEN S8=>LIGHT<=L8;CURRENT_STATE<=S9;WHEN S9=>LIGHT<=L9;CURRENT_STATE<=S10;WHEN S10=>LIGHT<=L10;CURRENT_STATE<=S11;WHEN S11=>LIGHT<=L11;CURRENT_STATE<=S12;WHEN S12=>LIGHT<=L12;CURRENT_STATE<=S13;WHEN S13=>LIGHT<=L13;CURRENT_STATE<=S14;WHEN S14=>LIGHT<=L14;CURRENT_STATE<=S1;END CASE;END IF;END IF;END PROCESS;LED3<=LIGHT;END ART;顶层设计--将以上几个模块整合起来,实现八路彩灯的花样控制LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY caideng ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;XUAN:IN STD_LOGIC_VECTOR(1DOWNTO0);LED:OUT STD_LOGIC_VECTOR(7DOWNTO0));END ENTITY caideng;ARCHITECTURE ART OF caideng ISCOMPONENT fenpinqi--对分频器模块进行定义PORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;CLK1:OUT STD_LOGIC);END COMPONENT fenpinqi;COMPONENT hy1--对花样一模块进行定义PORT(CLK1:IN STD_LOGIC;CLR:IN STD_LOGIC;XUAN:IN STD_LOGIC_VECTOR(1DOWNTO0);LED1:OUT STD_LOGIC_VECTOR(7DOWNTO0));END COMPONENT hy1;COMPONENT hy2--对花样二模块进行定义PORT(CLK1:IN STD_LOGIC;CLR:IN STD_LOGIC;XUAN:IN STD_LOGIC_VECTOR(1DOWNTO0);LED2:OUT STD_LOGIC_VECTOR(7DOWNTO0));END COMPONENT hy2;COMPONENT hy3--对花样三模块进行定义PORT(CLK1:IN STD_LOGIC;CLR:IN STD_LOGIC;XUAN:IN STD_LOGIC_VECTOR(1DOWNTO0);LED3:OUT STD_LOGIC_VECTOR(7DOWNTO0));END COMPONENT hy3;SIGNAL S:STD_LOGIC;--定义中间变量SIGNAL L1:STD_LOGIC_VECTOR(7DOWNTO0);SIGNAL L2:STD_LOGIC_VECTOR(7DOWNTO0);SIGNAL L3:STD_LOGIC_VECTOR(7DOWNTO0);BEGINU1:fenpinqi PORT MAP(CLK,CLR,S);--对分频器模块进行例化U2:hy1PORT MAP(S,CLR,XUAN,L1);--对花样一模块进行定义U3:hy2PORT MAP(S,CLR,XUAN,L2);--对花样二模块进行例化U4:hy3PORT MAP(S,CLR,XUAN,L3);--对花样三模块进行例化LED<=L1WHEN XUAN="01"ELSE--让LED显示选定的花样L2WHEN XUAN="10"ELSEL3;END ART;四、仿真图:分频器仿真波形:(CLK周期为100ms)CLK为输入,是机器时钟。
八路彩灯控制器实验

八路彩灯控制器
功能描述:首先点亮第一盏灯,在第一盏灯熄 灭之后,点亮第二盏灯,在第二盏灯熄灭之后,再 去点亮第三盏灯,依此类推,直到点亮第八盏灯, 看上去的效果就像亮点从第一盏灯依次流向第八盏 灯,然后全部熄灭,反复循环这一过程。 用中规模计数器设计该八路彩灯控制电路,要求: (1)每盏灯的点亮时间为100~120ms之间; (2)用555定时器设计时钟脉冲; (3)八路彩灯采用八个发光二极管代替。
A0 A1 A2 S1 S2 S3
P'0 P'1 P'2 P'3 P'4 P'5 P'6 P'7
P'0 P'1 P'2
74HC138
P'3
P'4 P'5
1
P'6
P'7
VCC(+5V) 1 R1 10kΩ
8 4 7 3
CLK
R2 10kΩ
C 22µ F
+
6 2 1 5
0.01µF
0
EP ET CLK D 0 Q0 D 1 Q1 D2 Q2 D3 Q3 C RD LD
74HC161 1
1
T≈ (R1+2R2)C×0.7, T≈462ms,
取R1=R2=10kΩ, C=22µ F
74HC138
1 0 1 0 1 0 1 0
A0 A1 A2 S1 S2 S3
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
8路彩灯控制器设计详细讲解(附图)

8路彩灯控制器设计详细讲解(附图)学校:北华大学班级:信息 11-2姓名:王杰学号:28号指导教师:曲萍萍实验日期:2013.5.20—5.24一、软件内容二、实习目的和任务三、设计原理过程四、最终设计方案五、实习心得六、参考文献一、软件内容MAX-Plus?开发软件是美国Altera公司自行设计的第三代课编程逻辑器件的EDA开发工具。
它是一种与器件结构无关的集成设计环境,提供了灵活和高效的界面,允许设计人员选择各种设计输入方法和工具,能够支持Altera公司的MAX、Classic、FLEX以及ACEX系列的PLD器件。
MAX-Plus?开发软件丰富的图形界面和完整的、可即时访问的在线帮助文档,使设计人员能够轻松愉快地学习和掌握MAX-Plus?开发软件,方便地实现设计目的。
MAX-Plus?的特点:1、支持多种操作平台;2、提公开发性的界面;3、提供与PLD 器件结构无关的设计环境;4、提供丰富设计库;5、支持多种输入方式;6、具有高度集成化的开发环境;7、具有模块化的设计工具;8、提供Megacore功能;9、具有Opencore特性MAX-Plus?的主要功能:1、支持PLD器件;2、支持的设计输入方式;3、提供设计编译;4、提供设计验证;5、提供器件的编程和配置MAX-Plus?的设计流程:1、设计输入;2、设计检查;3、设计便衣;4、设计仿真;5、器件编程;6、测试验证;7、修改设计。
二、实习目的和任务实习目的:1、进一步掌握数字电路课程所学的理论知识。
2、熟悉几种常用集成数字芯片的功能和应用,并掌握其工作原理,进一步学会使用其进行电路设计。
3、了解数字系统设计的基本思想和方法,学会科学分析和解决问题。
4、培养认真严谨的工作作风和实事求是的工作态度。
5、数点课程实验是大学中为我们提供的唯一一次动手实践的机会,增强动手实践的能力。
实习任务:设计一个能实现8路彩灯循环显示的彩灯控制器。
具体要求如下:1、8路彩灯的循环花型如下表所示;2、节拍变化的时间为0.5s和0.25s,两种节拍交替运行;3、三种花型要求自动循环显示移存器输出状态编码表节拍序号花型1 花型2 花型3 1 00000000 00000000 00000000 2 10000000 00011000 10001000 3 11000000 00111100 11001100 4 11100000 01111110 11101110 5 11110000 11111111 11111111 6 11111000 11100111 01110111 7 11111100 11000011 00110011 8 11111110 10000001 00010001 9 11111111 10 11111110 11 11111100 12 1111100013 1111000014 1110000015 1100000016 10000000三、设计原理过程(1)总体方案的设计; 在方案一的基础上将整体电路分为四块。
8路炫光彩灯控制器

炫光彩灯控制器(做一份课设不容易,我就收点文库币,小小慰问一下自己)学院:信息工程学院班级:测控0901班姓名:严海俊学号:200901420同组人:王滨指导老师:2012年11月30日炫光彩灯控制器课程设计一、设计目的1.熟悉常用芯片的性能及用途。
2.进一步掌握数字电路课程所学的理论知识,对所学理论的巩固及验,进一步的学习。
3.了解数字电路设计的基本思想和方法,学会科学分析和解决问题。
4.熟悉几种常用集成数字芯片,并掌握其工作原理,进一步学会使用其进行电路设计。
5.培养认真严谨的工作作风和实事求是的工作态度,检验自己实践的能力,解决问题的能力及现有知识基础上的创新, 为日后走上工作摸索经验。
二、设计原理设计一个电路控制彩灯的循环显示,要求八个二极管排成一行,二极管依次亮。
8路炫光彩灯控制电路功能描述:首先点亮第一盏灯,在第一盏灯熄灭之后,点亮第二盏灯,在第二盏灯熄灭之后,再去点亮第三盏灯,依次类推,直到点亮第八盏灯,看上去的效果就像亮点从第一盏。
即依次流向第八盏灯,然后全部熄灭,反复循环这一过程。
三、方案论证:方案一:原理框图如图1所示。
其中8进制计数电路是利用74LS161N十进制计数器改变而成,通过产生1000的输出信号的状态进行异步置零,完成8进制循环,由一片74LS138芯片进行译码,来输出信号控制彩灯。
其中8进制计数电路是利用74LS161N十进制计数器改变而成,通过产生1000的输出信号的状态进行异步置零,完成8进制循环,由一片74LS138芯片进行译码,来输出信号控制彩灯。
方案二:基本实际思路不变,采用74LS160芯片,但是其输出信号由两片74LS138芯片进行控制,其中一片进行3-8进制译码,另一片控制循环。
本设计采用方案一,只用两片主要芯片74LS161和74LS138,节省资源。
四、电路设计1.多谐振荡器电路采用555定时器,输出一个周期的脉冲。
由多谐振荡器的周期公式T=(R1+2*R2)*Ln2*C可知。
八路循环彩灯控制电路设计

八路循环彩灯控制电路设计八路循环彩灯控制电路设计是一种常见的电子电路设计,用于控制多个彩灯按照一定的循环模式进行亮灭。
在本文中,我们将一步一步回答相关问题,帮助读者了解八路循环彩灯控制电路的设计原理及其实现方式。
第一部分:八路循环彩灯控制电路设计原理介绍八路循环彩灯控制电路是一种利用计时器和逻辑门等元件实现的电子电路,可以实现多个彩灯按照一定的循环模式进行亮灭。
其设计原理主要包括以下几个方面:1.计时器的应用:计时器是八路循环彩灯控制电路中的核心元件之一。
通过计时器的设置,可以控制彩灯的亮灭时间,并实现循环模式。
常见的计时器有555定时器、NE555定时器等。
2.逻辑门的应用:逻辑门是八路循环彩灯控制电路中的另一个重要元件。
逻辑门用于判断彩灯亮灭的逻辑关系,并通过逻辑门的输出来控制彩灯的状态。
常见的逻辑门有与门、或门、非门等。
3.多路控制信号的生成:八路循环彩灯控制电路需要产生多路控制信号,用于控制多个彩灯的亮灭。
这些控制信号可以通过组合逻辑电路、编码器等实现。
第二部分:八路循环彩灯控制电路设计步骤在了解了八路循环彩灯控制电路的设计原理后,我们可以按照以下步骤进行具体的电路设计:1.确定彩灯的数量:首先需要确定需要控制的彩灯数量,以便选择合适的计时器和逻辑门。
2.选择计时器:根据彩灯的控制需求和电路设计的复杂度,选择合适的计时器。
在本设计中,我们选择使用555定时器。
3.设计计时器电路:根据彩灯的亮灭时间和循环模式要求,设计计时器电路。
通过调整计时器的参数,如电容、电阻值,可以控制彩灯的亮灭时间。
4.生成控制信号:根据彩灯的数量,设计多路控制信号的生成电路。
可以使用组合逻辑电路、编码器等进行设计。
5.选择逻辑门:根据彩灯的亮灭逻辑关系,选择合适的逻辑门。
在本设计中,我们选择使用与门。
6.设计逻辑门电路:根据彩灯的亮灭逻辑关系,设计逻辑门电路。
通过逻辑门的输出,控制彩灯的状态。
7.完成电路布局和连线:根据电路设计图,完成电路的布局和连线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
炫光彩灯控制器
(做一份课设不容易,我就收点文库币,小小慰问一下自己)
学院:信息工程学院
班级:测控0901班
姓名:严海俊
学号:200901420
同组人:王滨
指导老师:
2012年11月30日
炫光彩灯控制器课程设计
一、设计目的
1.熟悉常用芯片的性能及用途。
2.进一步掌握数字电路课程所学的理论知识,对所学理论的巩固及验,进一步的学习。
3.了解数字电路设计的基本思想和方法,学会科学分析和解决问题。
4.熟悉几种常用集成数字芯片,并掌握其工作原理,进一步学会使用其进行电路设计。
5.培养认真严谨的工作作风和实事求是的工作态度,检验自己实践的能力,解决问题的能力及现有知识基础上的创新, 为日后走上工作摸索经验。
二、设计原理
设计一个电路控制彩灯的循环显示,要求八个二极管排成一行,二极管依次亮。
8路炫光彩灯控制电路功能描述:首先点亮第一盏灯,在第一盏灯熄灭之后,点亮第二盏灯,在第二盏灯熄灭之后,再去点亮第三盏灯,依次类推,直到点亮第八盏灯,看上去的效果就像亮点从第一盏。
即依次流向第八盏灯,然后全部熄灭,反复循环这一过程。
三、方案论证:
方案一:原理框图如图1所示。
其中8进制计数电路是利用74LS161N十进制计数器改变而成,通过产生1000的输出信号的状态进行异步置零,完成8进制循环,由一片74LS138芯片进行译码,来输出信号控制彩灯。
其中8进制计数电路是利用74LS161N十进制计数器改变而成,通过产生1000的输出信号的状态进行异步置零,完成8进制循环,由一片74LS138芯片进行译码,来输出信号控制彩灯。
方案二:基本实际思路不变,采用74LS160芯片,但是其输出信
号由两片74LS138芯片进行控制,其中一片进行3-8进制译码,另一片控制循环。
本设计采用方案一,只用两片主要芯片74LS161和74LS138,节省资源。
四、电路设计
1.多谐振荡器电路
采用555定时器,输出一个周期的脉冲。
由多谐振荡器的周期公式T=(R1+2*R2)*Ln2*C可知。
要求灯亮的时间为100ms-120ms,所以输出脉冲的周期也为100ms-120ms之间。
本实验选取的6欧的R1,5欧的R2,10uF的电容,所以输出周期为111.7ms的脉冲。
多谐振荡器电路图如图2。
图2 多谐振荡器示意图
图3 多谐振荡器电路输出信号调试图
2.8进制计数电路
本设计采用74LS16110进制计数器,输出端口为QA,QB,QC,QD(QD 为高位)。
产生0000至1111十六个信号,由于实验内容要求8盏流水灯点亮与熄灭,所以只需利用0000到0111八个信号即可,由于74LS161芯片是异步置数,所以在输出信号为1000时利用反向器74LS04把QD端口的信号反馈到LD`端,把初始信号重新置为0000,完成八进制循环输出。
ENT,ENP端口均接在高电平VCC端,使芯片处于工作状态。
CLR 端接在高电平VCC端,不产生置零作用。
QD端经过74LS04反相器输入到LOAD(LD)端,完成八进制循环作用,CLK端接受多谐振荡器输出的脉冲。
74LS161芯片电路图如图4。
图4 74LS161芯片连接示意图
3.译码器电路
本设计译码器电路采用74LS138芯片,有芯片使能控制端G1,G2A,G2B3个端口,A、B、C三个信号输入端口以及Y0-Y7八个输出端口。
G1口接74LS161芯片QD端经过反相器输出的信号,当74LS161芯片输出信号为0000-0111是,G1口均为高电平,74LS138芯片开启;当74LS161芯片输出信号为1000时,QD端输出高电平,G1口接受低电平,74LS138芯片关闭达到一轮流水灯亮过之后全部熄灭的效果。
G2A,G2B口均接地。
A、B、C三个端口分别接受从161芯片QA、QB、QC三个端口输出的信号,译为0-7八个数字信号,分别从Y0-Y7八
个端口输出。
译码器电路图如图5所示。
图5 译码器电路连接示意图
4.二极管电路
驱动电路是接受74LS138芯片8个输出口的信号经过74LS04芯片反向输出分别连接在8个发光二极管上,每个二极管都串联上一个100欧的电阻,八个输出共同接地。
电路图如图6所示。
图6 二极管电路连接示意图
设计要求灯管点亮的时间为100ms-120ms,二极管发光时间电路调试图如图7。
图7 二极管发光时间调试电路
由图可以看出,发光二级管的发光时间为109.848ms,符合设计要求
图8 总电路图
五、PCB制板
图9 PCB循环彩灯原理图
图10 ERC电气检查无误
图11 PCB封装制板后的图
六、元件的封装表
10个电阻封装都是:AXIAL0.3
8个发光二极管封装都是:SIP-2
2个电容封装都是:RAD0.2
555定时器封装:DIP8
74LS04N封装:DIP16
74LS138封装:DIP-16
74LS160封装:DIP-16
74LS04封装:DIP-14
七、课设心得
此两周的课程设计实习,使我认识到扎实的理论知识室非常重要的,这一点在设计电路图时得到了充分的证明。
课程设计刚开始,拿着选定的题目不知如何入手。
毕竟课程设计不同于实验课,电路图
都要自己设计。
在设计过程中,既有用过的芯片,又有没用过的,只能自己查表,分析功能。
即学即用。
通过这次课程设计,收获很大。
对电子元器件的原理理解有了进一步提高,对电子技术知识融会贯通有了进一步提高。
在对实际问题的抽象处理问题上更有自信了。
在实验环节中,动手能力也得到了提高。
在布局,连线,焊接过程中需要细心和耐心。
在今后的设计中,思维应该更开放,要更大胆地去做。
通过查资料、分析资料及请教老师和同学等多种途径,独立解决问题。
同时,也培养了我认真,严谨的工作作风。