8路炫光彩灯控制器
- 格式:docx
- 大小:530.38 KB
- 文档页数:9
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路彩灯控制器一、实验目的: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为输入,是机器时钟。
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)总体方案的设计; 在方案一的基础上将整体电路分为四块。
炫光彩灯控制器(做一份课设不容易,我就收点文库币,小小慰问一下自己)学院:信息工程学院班级:测控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.完成电路布局和连线:根据电路设计图,完成电路的布局和连线。
绪论数字电子技术已经广泛地应用于计算机,自动控制,电子测量仪表,电视,雷达,通信等各个领域。
例如在现代测量技术中,数字测量仪表不仅比模拟测量仪表精度高,功能高,而且容易实现测量的自动化和智能化。
随着集成技术的发展,尤其是中,大规模和超大规模集成电路的发展,数字电子技术的应用范围将会更广泛地渗透到国民经济的各个部门,并将产生越来越深刻的影响。
随着现代社会的电子科技的迅速发展,要求我们要理论联系实际,数字电子逻辑课程设计的进行使我们有了这个非常关键的机会。
随着科学的发展,人们生活水平的提高,人们不满足于吃饱穿暖,而要有更高的精神享受。
不论是思想,还是视觉,人们都在追求更高的美。
特别使在视觉方面,人们不满足于一种光,彩灯的诞生让人们是视觉对美有了更深的认识。
本设计是一个彩灯控制器,使其实用于家庭、商场、橱窗、舞厅、咖啡厅、公共广场等场所的摆设、装饰、广告、环境净化与美化。
本次课程设计在编写时参考了大量优秀教材,并得到太原科技大学机械电子工程学院测控技术与仪器教研室刘畅老师的大力支持,他提出来许多的意见和建议,在此表示衷心的感谢。
由于编者水平有限,本设计说明书难免出现不妥之处,恳请老师和广大读者给与批评并提出宝贵的意见,我将由衷地欢迎与感激。
编者2010年于太科大目录绪论 (1)一、课程设计题目 (3)二、课程设计目的 (4)三、课程设计基本要求: (4)四、课程设计任务和具体功能 (5)五、工作原理 (5)六、设计总框图 (6)七、电路元器件的说明 (6)八、总电路图 (27)九、调试与检测 (28)十、误差分析: (28)十一、设计心得体会。
(28)附录 (28)参考文献 (28)一、课程设计题目:8路输出的彩灯循环控制电路二、课程设计目的:1、巩固和加强“数字电子技术”、“模拟电子技术”课程的理论知识的理解和应用。
2、掌握电子电路的一般设计方法,了解电子产品研制开发的过程。
3、提高电子电路实验技能及Multisim10仿真软件的使用能力。
8路智能照明控制模块说明书
一、产品简介
8路智能照明控制模块是一款由8路继电器构成的智能控制模块,可以控制8路灯泡的开关。
它采用了智能控制系统,可以根据环境光线的强弱,自动调节灯泡的亮度,使灯光最大化,节省能源。
二、产品特点
1、具有自动调节灯光亮度的功能,可以根据环境光线的强弱自动调节灯泡的亮度,使灯光最
大化,节省能源。
2、支持远程控制,可以通过手机APP远程控制灯光的开关,方便实用。
3、具有定时开关功能,可以设定灯光的开关时间,自动实现定时开关,更加方便实用。
4、安装简单,无需额外的线路,只需将继电器模块安装在灯光控制盒上,即可实现控制。
三、使用方法
1、安装:将继电器模块安装在灯光控制盒上,接通电源,即可实现控制。
2、远程控制:打开手机APP,连接智能照明控制模块,即可远程控制灯光的开关。
3、定时控制:在手机APP上设定灯光的开关时间,模块会自动实现定时开关,更加方便实用。
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)总体方案的设计; 在方案一的基础上将整体电路分为四块。
课程设计报告书试验大致思路如下:3.器件管脚分配图:图1(4017管脚分配图)CD4017是十进制计数器,它包含译码器。
计数器在时钟禁止输入为低电平时,在时钟脉冲上升沿进位。
在时钟禁止输入为高电平时,时钟被禁止。
复位输入为高电平时,时钟输入独立运行。
该芯片是一个十进制分配器,只要在其脉冲信号输入端接入脉冲信号,每来一个脉冲信号时,该芯片就会从Q0~~Q9~~Q0循环发出高电平,并且能够保持这个脉冲信号没有结束时,一直是高电平。
由此可知,该芯片能够运用于控制端或者是用于循环彩灯等等方面的应用。
引出端功能符号CO:进位脉冲输渊CP:时钟输入端CR:清除端INH:禁止端Q0-Q9 计数脉冲输出端VDD:正电源VSS:地真值表输入输出CP INH CR Q0-Q9 CO× × H Q0↑L LH ↓L计数计数脉冲为Q0-Q4时:CO=HL × L× H L↓× L×↑L保持计数脉冲为Q5-Q9时:CO=L图2(4069管脚分配图)CD4069又称为六反向器,广泛运用于各种电路设计中。
当Vcc=5~10V时,C110uFU1A 4069BCL_5V U2B 4069BCL_5V R210kΩR1200kΩ1234图4图4为电路中的一部分,是用来产生时钟脉冲的多谐振荡器,它仿真图如下图5整个电路的仿真图如下;。
八路彩灯控制器数字逻辑内容摘要节日彩灯经常被用来增添节日气氛,是日常生活中不可缺少的一个节日装饰为了让彩灯自动的出现图案的变化,因此要设计彩灯控制电路来实现。
本课题要设计的是彩灯控制器电路,使彩灯能自动实现3种不同图案闪现的变化。
从来让彩灯更能使节日气氛活跃。
该控制电路控制器有8组输出,每组驱动4只LED;32只LED组成彩灯图案,图案的状态变换有三种;图案的状态变换能实现定时自动切换;图案的状态变换速度有快、慢2种;控制器具有清零的功能。
关键字:LED 自动控制清零目录一、概述 (1)二、方案设计与论证 (2)三、单元电路设计与分析 (3)1.初态产生电路的设计 (3)2.状态变换产生电路的设计 (4)四、总原理图及元器件清单 (5)五、结论 (7)六、心得体会 (8)七、参考文献 (9)一、概述“左后摆动”图案的状态变换由两种状态构成,即 01010101和10101010两种状态,由于每种状态中不相邻的2位轮流在高、低电平中转换,高电平为亮点,低电平为暗点两种状态相互转化就形成了“左右摆动”图案;“暗点移动”图案的状态变换由4种状态构成,即01111111、10111111 、11011111和11101111四种状态,由于每种状态中都有一位低电平(暗点),而且低电平逐位循环右移,所以这4位状态之间的转换就形成了“暗点移动”图案;“逐渐亮再逐渐暗”图案的状态变换由8种状态构成,即00000000、10000000、1……11111100、11111110、11111111、01111111、00111111、00011111……00000001和00000000这16种状态,在这16种状态中,从状态00000000到状态11111111,LED将从左到右逐次点亮,而从状态11111111到状态00000000,LED将又从左到右逐次点暗,以上8种状态就形成了“逐渐亮再逐渐暗”的图案。
通过74LS161十进制同步计数器,构成一个三进制计数器,产生三种图案的初态。
8路彩灯控制器课程设计1. 引言8路彩灯控制器是一种用于控制多个彩灯的设备,可以实现对彩灯的亮度、颜色、闪烁等功能进行调节。
本课程设计旨在通过设计和实现一个基于Arduino的8路彩灯控制器系统,让学生了解并掌握彩灯控制器的原理和应用。
本文将从以下几个方面进行详细介绍:系统设计概述、硬件设计、软件设计、系统测试与调试以及课程教学建议。
2. 系统设计概述本系统采用Arduino作为主控芯片,通过与8个彩灯模块的连接,实现对彩灯的控制。
系统具有以下特点:•支持多种亮度和颜色调节方式,如PWM调光和RGB颜色混合。
•支持闪烁效果的设置和控制。
•可以通过串口或无线通信进行远程控制。
3. 硬件设计3.1 硬件组成本系统的硬件组成如下:•Arduino UNO开发板:作为主控芯片,负责接收指令并控制彩灯。
•彩灯模块:共8个,每个模块包含一个彩灯和相应的控制电路。
•电源模块:用于为Arduino和彩灯模块提供电源。
3.2 连接方式将Arduino与彩灯模块连接如下:•将8个彩灯模块的控制引脚分别连接到Arduino的数字IO口。
•将彩灯模块的电源引脚连接到电源模块的输出端。
•将Arduino的GND引脚与电源模块的GND引脚相连。
4. 软件设计4.1 控制逻辑系统的控制逻辑如下:1.初始化系统,设置各个IO口的功能和初始化默认参数。
2.进入主循环,等待指令。
3.接收指令并解析,根据指令类型执行相应操作。
4.执行完毕后返回主循环。
4.2 主要功能实现本系统的主要功能包括:•彩灯亮度调节:通过PWM信号控制彩灯亮度,可以实现从全亮到全暗的无级调光效果。
•彩灯颜色调节:通过RGB三基色混合,可以实现多种颜色的选择和调节。
•彩灯闪烁效果:通过控制彩灯的开关状态和亮度,可以实现闪烁效果。
4.3 程序框架系统的程序框架如下:void setup() {// 初始化系统}void loop() {// 等待指令// 解析指令// 执行操作}5. 系统测试与调试在完成硬件和软件设计后,需要进行系统测试与调试,以确保系统功能正常。
8路彩灯移存型控制器的设计一、实验目的1.熟悉数字电路中时序逻辑电路与组合逻辑电路的设计。
2.熟悉并掌握用移位寄存器设计彩灯控制的方法。
二、设计任务与要求设计一个8路彩灯控制系统,要求:1.彩灯明暗变换的节拍为0.25和0.5s,两种节拍交替运行。
2.彩灯演示花型为8种(花型自拟)。
3.彩灯用发光二极管模拟。
三、设计过程设计包括三个模块:1.做出一个可以输出频率分别为2Hz(0.5s)和4Hz(0.25s)的时钟。
利用函数信号发生器,可以直接得到一个4Hz的方波,现在需要考虑设计出2Hz的输出,代码如下:library ieee;use ieee.std_logic_unsigned.all;use ieee.std_logic_1164.all;entity clock2 is %不同输出频率的时钟的实体port(-- Input portsclk : in std_logic;-- Output portsclk25:out std_logic;clk50:out std_logic);end clock2;architecture one of clock2 issignal clk50a:std_logic;signal divide_num:bit; %二进制beginprocess(clk)beginif(clk'event and clk='1')thenif (divide_num='1')thenclk50a<='0';divide_num<='0';elseclk50a<='1';divide_num<='1';end if;end if;end process;clk50<=clk50a;clk25<=clk;end one;编译通过后,将其原件例化,得到我们所需要的模块1器件:2.做出彩灯实现部分,参考书上例题,代码如下:library ieee;use ieee.std_logic_unsigned.all;use ieee.std_logic_1164.all;entity colorlight8 isport(-- Input portsclk0 : in std_logic;reset :in std_logic;-- out1:out std_logic;-- out2:out std_logic;-- out3:out std_logic;-- outnum:out integer;-- outnum1:out integer;cout : out std_logic_vector(7 downto 0));end colorlight8;architecture one of colorlight8 issignal lights:std_logic_vector(7 downto 0):="11111111"; signal conditon_num:integer range 0 to 36 ;begincout<=lights;process(clk0,reset)beginif (reset='0') thenconditon_num<=0;elsif(clk0'event and clk0='1')thenif(conditon_num<36) thenconditon_num<=conditon_num+1;elseconditon_num<=0;end if;end if;end process;process(conditon_num)begincase conditon_num iswhen 0 =>lights<="00000000";when 1=>lights<="10000000";when 2=>lights<="11000000";when 3=>lights<="11100000";when 4=>lights<="11110000";when 5=>lights<="11111000";when 6=>when 7=>lights<="11111110";when 8=>lights<="11111111"; when 9=>lights<="00000000";when 10=>lights<="11000000";when 11=>lights<="00110000";when 12=>lights<="00001100";when 13=>lights<="00000011"; when 14=>lights<="00000000";when 15=>lights<="11110000";when 16=>lights<="00001111"; when 17=>when 18=>lights<="10101010";when 19=>lights<="01010101"; when 20=>lights<="00000000";when 21=>lights<="00011000";when 22=>lights<="00111100";when 23=>lights<="01111110";when 24=>lights<="11111111"; when 25=>lights<="00000000";when 26=>lights<="10001000";when 27=>lights<="01000100";when 28=>lights<="00100010";when 29=>lights<="00010001"; when 30=>lights<="00000000";when 31=>lights<="11110000";when 32=>lights<="00111100";when 33=>lights<="00001111"; when 34=>lights<="00000000";when 35=>lights<="10011001";when 36=>lights<="01100110";end case;end process;end one;同理,将其例化:3.做出选择频率的装置:在模块2里,每两个花型之间,用‘00000000’分界,所以以这个为标志,做为选择频率的分界点——即当出现‘00000000’的时候,反馈给选频模块,使它可以变换频率,代码如下:library ieee;use ieee.std_logic_unsigned.all;use ieee.std_logic_1164.all;entity selclock isport(-- Input portsclk25:in std_logic;--clk50:in std_logic;cin:in std_logic_vector(7 downto 0);clock0:out std_logic);end selclock;architecture one of selclock issignal num:std_logic;signal temp:std_logic;begintemp<=cin(7) or cin(6) or cin(5) or cin(4) or cin(3) or cin(2) or cin(1) or cin(0);process(temp)beginif(temp'event and temp='0')thennum<=not num;end if;end process;with num selectclock0<=clk25 when '0',clk50 when '1','1' when others;end one;例化结果如下:现在连接电路:编译通过,进行仿真!四、仿真结果与预期效果一样,八种花型,每两种的频率发生一次改变。
炫光彩灯控制器
(做一份课设不容易,我就收点文库币,小小慰问一下自己)
学院:信息工程学院
班级:测控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
七、课设心得
此两周的课程设计实习,使我认识到扎实的理论知识室非常重要的,这一点在设计电路图时得到了充分的证明。
课程设计刚开始,拿着选定的题目不知如何入手。
毕竟课程设计不同于实验课,电路图
都要自己设计。
在设计过程中,既有用过的芯片,又有没用过的,只能自己查表,分析功能。
即学即用。
通过这次课程设计,收获很大。
对电子元器件的原理理解有了进一步提高,对电子技术知识融会贯通有了进一步提高。
在对实际问题的抽象处理问题上更有自信了。
在实验环节中,动手能力也得到了提高。
在布局,连线,焊接过程中需要细心和耐心。
在今后的设计中,思维应该更开放,要更大胆地去做。
通过查资料、分析资料及请教老师和同学等多种途径,独立解决问题。
同时,也培养了我认真,严谨的工作作风。