1、11 设计内容及其分析1.1 设计的内容用 8 个发光二极管模拟 8 个汽车尾灯(左、右各 4 个,高电平点亮) ,用四个开关作为左转弯、右转弯、刹车、双闪控制信号(高电平有效) 。当汽车往前行驶时,8 灯全灭。当汽车转弯时(左、右转弯开关不会同时有效) ,若右转弯,右边 4 个尾灯从左至右循环点亮,左边 4 个灯全灭。若左转弯,左边 4 个尾灯从右至左循环点亮,右边 4 个灯全灭。汽车刹车时(第 2 优先级) ,8 个灯全亮。双闪信号有效时(优先级最高)时,8 个灯明、暗闪烁。1.2 设计内容分析当汽车转弯时(左、右转弯开关不会同时有效) ,若右转弯,右边 4 个尾灯从左至右循环点亮,左边
2、4 个灯全灭。若左转弯,左边 4 个尾灯从右至左循环点亮,右边 4 个灯全灭。汽车刹车时(第 2 优先级) ,8 个灯全亮。双闪信号有效时(优先级最高)时,8个灯明、暗闪烁。根据以上分析可以画出尾灯和汽车运行关系表如下所示:开关控制 左边灯 右边灯LEFTL0L1L2L3分频电路图 3.1 汽车尾灯控制电路设计总体框图32 功能表根据设计项目要求和电路原理框图可以画出汽车尾灯控制功能表如下所示:表 3.1 汽车尾灯控制功能表开关控制 左边灯 右边灯LEFTUSE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fp
3、ISPORT ( clk :IN STD_LOGIC;q1:OUT STD_LOGIC);END ENTITY fp;ARCHITECTURE zero OF fp ISSIGNAL temp1: STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNAL temp2: STD_LOGIC;BEGINPROCESS(clk)BEGINIF(clkEVENT AND clk = 1) THEN IF temp1=“100110“ THEN temp2lplprprplp=0;rp=0;sc=0;ss=1;end case;end process;end bh;3.3.4 左边灯控制模
4、块 左边灯控制模块的工作框图如图 3.4 所示。7图 3.4 左边灯控制模块的工作框图左边灯控制模块由 VHDL 程序来实现,下面是其中的一段 VHDL 代码:library ieee;use ieee.std_logic_1164.all;entity lc isport(lp,clk,ss,sc:in std_logic;l3,l2,l1,l0:out std_logic);end lc;architecture one of lc isbeginprocess(clk,ss,sc)variable tmp:std_logic_vector(3 downto 0);beginIF clkE
5、VENT AND clk=1 THENIF ss=1 THEN tmp:=not tmp;ELSIF sc=1 THEN tmp:=“1111“;-ELSIF clkEVENT AND clk=1 THENELSIF lp=1 THEN IF tmp =“0000“ THEN tmp:=“0001“;ELSE tmp:= tmp (2 DOWNTO 0)END IF;ELSIF lp=0 THEN tmp:=“0000“;END IF;END IF;l3= tmp(3)l2= tmp(2);l1= tmp(1);l0= tmp(0);end process;end one;3.3.5 右边灯控
6、制模块右边灯控制模块的工作框图如图 3.5 所示。8图 3.5 右边灯控制模块的工作框图右边灯控制模块由 VHDL 程序来实现,下面是其中的一段 VHDL 代码:library ieee;use ieee.std_logic_1164.all;entity rc isport(rp,clk,sc,ss:in std_logic;r3, r2,r1,r0:out std_logic);end rc;architecture two of rc isbeginprocess(clk,sc,ss)variable tmp:std_logic_vector(3 downto 0);beginIF cl
7、kEVENT AND clk=1 THENIF ss=1 THEN tmp:=not tmp;ELSIF sc=1 THEN tmp:=“1111“;-ELSIF clkEVENT AND clk=1 THENELSIF rp=1 THEN IF tmp=“0000“ THEN tmp:=“1000“;ELSE tmp:=0 END IF;ELSIF rp=0 THEN tmp:=“0000“;END IF;END IF;r3= tmp(3)r2= tmp(2);r1= tmp(1);r0= tmp(0); end process;end two;4 系统仿真与调试94.1 分频模块仿真及分析
8、分频模块仿真图如图 4.1 所示。图 4.1 分频模块仿真图对其仿真图进行仿真分析:如图所示,首先生成一个 0.8us 的时钟脉冲,通过时钟分频把 0.8us 的脉冲分成一个 3.2us 的脉冲,实现了信号同步。4.2 汽车尾灯主控模块仿真及分析汽车尾灯主控模块由 VHDL 程序实现后,其仿真图如图 4.2 所示。图 4.2 主控模块时序仿真图对时序仿真图进行分析:right,left,flash,brake 为输入信号,right 为 1 表示右转,left 为 1 表示左转,flash 为 1 表示双闪,brake 为 1 表示刹车。ss,sc,lp,clk 为输出信号。如图所示:当 ri
9、ght 为 1 时,产生一个 rp 为 1 的信号脉冲输出,当 left 为 1 时,产生一个 lp 为 1 的信号脉冲输出,当 flash 为 1 时,产生一个 ss 为 1 的信号脉冲输出。当 brake 为 1 时,产生一个 sc 为 1 的信号脉冲输出。4.3 左边灯控制模块仿真及分析左边灯控制模块由 VHDL 程序实现后,其仿真图如下图 4.3 所示。10图 4.3 左边灯控制模块时序仿真图对时序仿真图进行分析:ss,sc,lp,clk 为输入信号,l3,l2,l1,l0 为输出信号,表示汽车左侧的四盏灯。如图所示:当 lp 为 1 时,左侧四盏灯从右到左顺序点亮。当 ss 为 1 时,左侧四盏灯同时明暗闪烁。当 sc 为 1 时,左侧四盏灯同时点亮。4.4 右边灯控制模块仿真及分析右边灯控制模块由 VHDL 程序实现后,其仿真图如图 4.4 所示。图 4.4 右边灯控制模块时序仿真图对时序仿真图进行分析:ss,sc,rp,clk 为输入信号,r3,r2,r1,r0 为输出信号,表示汽车右侧的四盏灯。如图所示:当 rp 为 1 时,右侧四盏灯从左到右顺序点亮。当 ss 为 1 时,右侧四盏灯同时明暗闪烁。当 sc 为 1 时,右侧四盏灯同时点亮。4.5 整个系统仿真及分析按图 2.3 组装系统后的仿真图如下图 4.5 所示。