资源描述:
《有关汽车尾灯的完整数字逻辑课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、石家庄经济学院信息工程学院数字逻辑课程设计报告题目汽车尾灯控制器的设计成绩2010年6月目录1.功能描述022.开发工具选择023.设计方案02144.模块描述045.VHDL实现076.调试仿真127.课程设计回顾总结13参考文献14附录1414一、功能描述设计功能描述:存在6盏汽车尾灯(汽车尾部左、右各3盏),用两个开关作为转弯和刹车控制信号(一个开关控制右转弯,另一个开关控制左转弯),用一个开关作为汽车车锁开启控制,打开汽车时车灯闪烁3秒钟,才能行驶。当汽车往前行驶时(此时两个开关都未接通),6盏灯全灭。当汽车转弯时,若右转
2、弯(即右转开关接通),右边的3盏尾灯从左至右顺序亮灭,左边3盏灯全灭;若左转弯(即左转开关接通),左边的3盏尾灯从右至左顺序亮灭,右边3盏灯全灭。当左、右两个开关同时接通时,6盏尾灯同时明、暗闪烁。二、开发工具选择采用硬件描述语言VHDL进行描述,依靠计算机,借助EDA开发工具,实现系统功能。三、设计方案(1)、以Opencarcar作为总控制开关,当Opencarcar为1时,汽车解锁,汽车启动,此时车灯闪烁以两个开关L、R为控制信号,分别控制汽车的行驶、刹车、左转以及右转。如下图:当总控制开关Opencarcar为1,汽车启动
3、,车灯闪烁3秒。车灯脉冲L[0]L[1]L[2]R[0]R[1]R[2]10000002111111(2)、当总控制开关Opencarcar为1,汽车向前行驶,LR=00,6盏灯全灭,即L[0]L[1]L[2]=000,R[0]R[1]R[2]=000;如下图:当总控制开关Opencarcar为0,汽车向前行驶时,车灯全灭。车灯脉冲L[0]L[1]L[2]R[0]R[1]R[2]1000000200000014(3)、当总控制开关Opencar为1,汽车刹车,LR=11,6盏灯闪烁,即L[0]L[1]L[2]=000ß->111,
4、R[0]R[1]R[2]=000ß->111;如下图:当总控制开关Opencarcar为0,汽车刹车时,车灯闪烁。车灯脉冲L[0]L[1]L[2]R[0]R[1]R[2]10000002111111(4)、当总控制开关Opencarcar为1,汽车左转,LR=10,左边的3盏尾灯从右至左顺序亮灭,右边3盏灯全灭;如下图:当总控制开关Opencarcar为1,汽车左转时左边的3盏尾灯从右至左顺序亮灭,右边3盏灯全灭。车灯脉冲L[0]L[1]L[2]R[0]R[1]R[2]1000000200100030100004100000(5)
5、、当总控制开关Opencarcar为1,汽车右转,LR=01,右边的3盏尾灯从左至右顺序亮灭,左边3盏灯全灭;如下图:当总控制开关Opencarcar为1,汽车右转时右边的3盏尾灯从左至右顺序亮灭,左边3盏灯全灭。车灯脉冲L[0]L[1]L[2]R[0]R[1]R[2]141000000200010030000104000001(6)、底层文件描述闪烁过程用单独的实体实现计时模块,实现车灯闪烁和亮灭要求亮0.5秒灭1秒。四、模块描述总模块1:顶层文件设计,实现汽车开启时解锁,车灯闪烁3秒;汽车向前行驶,车灯全灭,汽车刹车时车灯闪烁
6、,汽车转弯时相应车灯闪烁.总模块2:底层文件设计,实现汽车开启时,解锁,车灯闪烁3秒.用模6计数原理.IF(CP'EVENTANDCP='0')THEN--下降沿出触发IFOpencarcar='1'THEN--汽车解锁,车灯闪烁。IFQ<5THENcaseQiswhen"000"=>L<="111";R<="111";when"001"=>L<="000";R<="000";when"010"=>L<="000";R<="000";when"011"=>L<="111";R<="111";when"100"=>L<="000";
7、14R<="000";when"101"=>L<="000";R<="000";whenOTHERS=>Q<="101";endcase;Q<=Q+1;ELSEQ<="000";ENDIF;ENDIF;ENDIF;总模块3:底层文件设计,实现汽车锁定,汽车行驶,车灯全灭,汽车刹车,车灯闪烁,汽车转弯车灯相应闪烁.模块1:当总控制开关Opencarcar为1,汽车向前行驶,LR=00,6盏灯全灭。IFadder=”00”THENL<=”000”;R<=”000”;模块2:总开关Opencarcar为1时,汽车刹车,LR=11,6盏灯
8、闪烁。ELSIFOpencarcar='0'ANDadder="11"THEN--汽车刹车IFQ<5THENcaseQiswhen"000"=>L<="111";R<="111";when"001"=>L<="000";R<="000";when"