edavhdl程序设计 汽车灯设计1文档格式.docx

上传人:b****7 文档编号:21944242 上传时间:2023-02-01 格式:DOCX 页数:15 大小:85.76KB
下载 相关 举报
edavhdl程序设计 汽车灯设计1文档格式.docx_第1页
第1页 / 共15页
edavhdl程序设计 汽车灯设计1文档格式.docx_第2页
第2页 / 共15页
edavhdl程序设计 汽车灯设计1文档格式.docx_第3页
第3页 / 共15页
edavhdl程序设计 汽车灯设计1文档格式.docx_第4页
第4页 / 共15页
edavhdl程序设计 汽车灯设计1文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

edavhdl程序设计 汽车灯设计1文档格式.docx

《edavhdl程序设计 汽车灯设计1文档格式.docx》由会员分享,可在线阅读,更多相关《edavhdl程序设计 汽车灯设计1文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

edavhdl程序设计 汽车灯设计1文档格式.docx

设计过程:

后灯的循环移位,因为有三盏灯,所以用有三个状态的状态机,每个状态对应一组3位的输出,控制3盏灯循环地亮。

灯的闪烁,用到T触发器的原理,设计一个中间变量,当来第一个时钟脉冲的时候,将这个中间变量取反,再来一个时钟脉冲的时候,再取反一次,有回到原来的初值,从而两个时钟脉冲实现两次翻转,发光二极管闪烁一下。

整个设计基本上由循环电路和控制电路组成。

为了避免汽车从一个状态切换到另一个状态是灯控制组合出现不稳定现象,所以每一个状态都必须对中间变量初始化。

三、设计源程序模块说明:

车灯控制器模块:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYcar_controlIS

PORT(

turn_fro_big_light:

INstd_logic;

--前大灯控制开关

turn_left:

--左转

turn_right:

--右转

bake:

--刹车或减速

fro_big_light_con:

OUTstd_logic;

--前大灯

fro_L_light_con:

--前左灯

fro_R_light_con:

--前右灯

back_L_lights_con:

OUTstd_logic_vector(2downto0);

--后左灯

back_R_lights_con:

OUTstd_logic_vector(2downto0);

--后右灯

);

ENDcar_control;

ARCHITECTUREarch_car_controlofcar_controlIS

BEGIN

process(turn_left,turn_right,bake,turn_fro_big_light)

BEGIN

if(turn_fro_big_light='

1'

)then

fro_big_light_con<

='

;

else

0'

endif;

--如果前灯控制为1,则前灯亮;

否则不亮

--whennothingtodo在匀速直线行驶的情况下,前左右灯不亮,后左右转向灯不亮

if(turn_left='

andturn_right='

andbake='

)then

fro_L_light_con<

fro_R_light_con<

back_L_lights_con<

="

000"

back_R_lights_con<

--在只是减速刹车的情况下,前转向灯不亮,后左右转向灯闪烁

elsif(turn_left='

010"

--在只是右转的情况下,前右转向灯闪烁,同时右后灯的3盏灯有左往右闪烁;

其他左右灯不亮

)then

001"

--当汽车在右转弯的同时减速,则前右转向灯闪烁,右后灯的3盏灯有左往右闪烁,同时左后灯都点亮。

100"

--当汽车左转弯的时候,前左转向灯闪烁,同时左后灯的3盏灯由右往左闪烁;

--当汽车在左转弯的同时减速,则前左转向灯闪烁,左后灯的3盏灯由右往左闪烁,同时右后灯都点亮。

--指令错误,即左转又右转,不刹车,前后左右灯不亮

--指令错误,即左转又右转,刹车,前后左右灯不亮

endif;

ENDprocess;

ENDarch_car_control;

2.后转向灯控制器模块

ENTITYback_lightIS

clk:

INSTD_LOGIC;

lights_control:

INSTD_LOGIC_VECTOR(2DOWNTO0);

lights:

OUTSTD_LOGIC_VECTOR(2DOWNTO0)

endback_light;

ARCHITECTUREarch_back_lightOFback_lightIS

TYPEstate1IS(s0,s1,s2,s3);

TYPEstate2IS(t0,t1);

SIGNALpresentstate1:

state1;

SIGNALpresentstate2:

state2;

PROCESS(clk,presentstate1)

BEGIN

if(clk'

eventandclk='

if(lights_control="

)THEN--灯不亮

lights<

elsif(lights_control="

)THEN--灯的循环闪烁

casepresentstate1IS

WHENs0=>

presentstate1<

=s1;

WHENs1=>

011"

=s2;

WHENs2=>

111"

=s3;

WHENs3=>

=s0;

endcase;

)THEN

casepresentstate2IS

WHENt0=>

presentstate2<

=t1;

WHENt1=>

=t0;

--后灯是否全都闪烁一下

)THEN

--灯一直亮

endarch_back_light;

3.前灯模块

ENTITYfro_lightIS

PORT(

glistenab:

glisten:

OUTSTD_LOGIC

endfro_light;

ARCHITECTUREarch_fro_lightOFfro_lightIS

process(clk,glistenab)--实现的功能是前灯的亮灭

if(glistenab='

)THEN

glisten<

=clk;

endprocess;

endarch_fro_light;

仿真结果

仿真图如下所示:

以防上面的错误以下是从ise上copy的能够仿真的文件:

1车灯控制器模块

libraryIEEE;

useIEEE.STD_LOGIC_1164.ALL;

useIEEE.STD_LOGIC_ARITH.ALL;

useIEEE.STD_LOGIC_UNSIGNED.ALL;

OUTstd_logic_vector(2downto0)

if(turn_left='

2后灯模块

3前灯模块

ENTITYfro_lightIS

process(clk,glistenab)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1