1、目录一、设计要求-二、设计方案-三、设计程序-四、管脚分配-五、硬件下载实现现象描述-六、体会与收获- 一、 设计要求假设汽车尾部左右两侧各有3盏指示灯,其控制功能应包括:(1) 汽车正常行驶时指示灯都不亮。(2) 汽车右转弯时,右侧的一盏指示灯亮。(3) 汽车左转弯时,左侧的一盏指示灯亮。(4) 汽车刹车时,左右两侧的一盏指示灯同时亮。汽车在夜间行驶时,左右两侧的一盏指示灯同时一直亮,供照明使用二、设计方案 从功能上来分析,设置三个按键开关。一个用来控制汽车右转弯时,右侧的一盏指示灯亮。一个用来控制汽车左转弯时,左侧的一盏指示灯亮区。一个用来控制汽车刹车时,左右两侧的一盏指示灯同时亮。再设置
2、一个拨码开关来控制汽车在夜间行驶时,左右两侧的一盏指示灯同时一直亮,供照明使用。汽车尾部的指示灯用彩灯来显示。三、设计程序-库-library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;-实体-entity catcounter isport(a,b,c,d,clk:in std_logic; m:out std_logic_vector(2 downto 0); n:out std_logic_vector(3 downto 0);end;-结构体
3、-architecture one of catcounter isbeginprocess(a,b,c,d)begin if a=0 then-低电平有效,当按键开关a按下的时候, 东面的绿灯亮代表汽车右转弯时,右侧的一盏指示灯亮 m=100; n=1110; elsif b=0 then-低电平有效,当按键开关b按下的时候,西面的绿灯亮,代表汽车左转弯时,左侧的一盏指示灯亮 m=100; n=1011; elsif c=0 then-低电平有效,当按键开关c按下的时候,东西两面的黄灯亮,代表汽车刹车时,左右两侧的一盏指示灯同时亮 m=010; n=1010; elsif d=1 then-
4、当拨码开关d打下的时候,东西两面的红灯亮,代表汽车在夜间行驶时,左右两侧的一盏指示灯同时一直亮,供照明使用m=001; n=1010; else m=000; n=0000; end if;end process;end one; 四、管脚分配五、硬件下载实现现象描述当开关a为低电平时,东面的绿灯亮。代表汽车右转弯时,右侧的一盏指示灯亮。当开关b为低电平时,西面的绿灯亮,代表汽车左转弯时,左侧的一盏指示灯亮。当开关c为低电平时,东西两面的黄灯亮,代表汽车刹车时,左右两侧的一盏指示灯同时亮。当开关d为高电平时,东西两面的红灯亮,代表汽车在夜间行驶时,左右两侧的一盏指示灯同时一直亮,供照明使用六、体会与收获 在本次实验中,刚开始看的时候,要实现的要求仿佛不少,但是仔细一看,其实,要实现的功能都很简单,需要设计的程序也很短。在对待某些问题上,许多时候我们都应该先去分析问题,不要一看到问题就自己给自己打退堂鼓,直面迎接,或许会发现更多的惊喜。 .