基于VHDL语言的汽车尾灯控制电路的设计.doc_第1页
基于VHDL语言的汽车尾灯控制电路的设计.doc_第2页
基于VHDL语言的汽车尾灯控制电路的设计.doc_第3页
基于VHDL语言的汽车尾灯控制电路的设计.doc_第4页
基于VHDL语言的汽车尾灯控制电路的设计.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于VHDL语言的汽车尾灯控制电路的设计XXXXX班 XXX 学号:XXXXXXX摘要:本课题主要是基于可编程逻辑器件,使用硬件描述语言VHDL,采用“自顶向下”的设计方法编写程序实现汽车尾灯的控制,并对控制器进行编程下载,它的体积小,功耗低,成本低,安全可靠,能实现控制器的在系统编程,其升级与改进极为方便。关键词: VHDL 汽车尾灯控制 时钟信号 1. 尾灯控制电路总框图,根据电路总框图的描述,我们大概可以了解到整个汽车控制尾灯的工作原理,从中我们可以发现当左右转信号同时有效时,6盏灯的闪烁是通过一个与非门实现的。并且可以获知本次设计的汽车尾灯控制电路主要分为三个模块,即控制模块,左转LFTA模块和右转RITA模块。了解到这几点,就可以对本次设计作较为详尽的解释。2模块KONG。模块KONG如图所示,此为整个程序的控制模块。程序如下:Library ieee;Use ieee.std_logic_1164.all;Entity kong is Port(left,right:in std_logic; Lft,rit,lr:out std_logic); End kong;Architecture kong_logic of kong isBeginProcess(left,right)Variable a:std_logic_vector(1 downto 0);BeginA:=left & right;Case a isWhen”00”=lft=0; Rit=0; Lr lft=1; Rit=0; Lr rit=1;Lft=0; Lr rit=1;lft=1;lr=1;end case;end process;end kong_arc;控制模块首先使用了库说明语句:library ieee; Use ieee.std_logic_1164.all使用ieee库中的std_logic_1164程序包的全部资源。此控制模块定义的实体名为kong。在程序中要求实体名与存储的文件名一致。实体名为kong,则存储的文件名为kong.vhd。且此段程序包有5个端口,其名称分别为left. Right. Lft. Rit. Lr 。left 和right的端口方式是输入,lft, rit, lr 是输出,他们的端口类型都是std_logic的数据类型。实体说明部分结束以后,就是结构体的说明部分。结构体是整个VHDL语言中至关重要的一个组成部分,这个部分给出模块的具体说明,指定输入与输出之间的行为。结构体对实体的输入输出关系可以用三种关进行描述,即行为描述,寄存器传输描述和结构描述。只不过结构体的框架是完全一样的。本结构体中包含有一个进程语句,进程语句中又包含有两个敏感量process(left ,right),从begin开始到end process结束是一组顺序执行语句,ieee标准数据类型“std_logic_vector”定义了两位位矢量1downto 0,变量为a。程序往下把left和right的与赋值给a,下面便执行case语句了 ,case语句是无序的,所以所有条件表达式的值都是并行处理的。当条件表达式的值为”00”时则把lft ,rit ,lr,都变为0,所有信号都无效。当条件表达式为”10”时,左转信号lft有效,其它信号都无效,当条件表达式的值为”01”时右转信号rit有效,其余的无效。若条件表达式为其它的情况的话,那么就将rit ,lft ,lr 全部置1,即全部有效。最后结束case语句 end case .结束进程和结构体语句。3. 模块LFTA源程序:Library ieee;Use ieee.std_logic_1164.all;Entity lfta is Port(en,clk,lr:in std_logic;L2,l1,l0:out std_logic);End lfta;Architecture lft_arc of lfta is BeginProcess(clk,en,lr)Variable tmp:std_logic_vector(2 downto 0);BeginIf lr=1 thenTmp:=”111”;Elsif en=0 thenTmp:=”000”;Elsif clkevent and clk=1 thenIf tmp=”000” thenTmp:=”001”;ElseTmp:=tmp(1 downto 0) & 0;End if ;End if;L2=tmp(2);L1=tmp(1);L0=tmp(0);End process;End lft_arc;模块LFTA同样使用了ieee库语句,定义的实体名为lfta,其共分为六个端口即en,clk,lr,l2,l1,l0,其中en,clk,lr为输入,l2,l1,l0的端口方式为输出,而它的端口类型同样也为std_logic数据类型。LFTA程序中结构体名为lft_arc,实体名为lfta 。结构体中包含有一个进程,共定义了三个敏感量clk,en,lr,设变量名tmp为2 downto 0 的三位位矢量。当左右开关同时接通时lr有效,即lr=1,此时tmp:=”111”右边的三盏灯全亮起来,当tr=1时但en=0则左边三盏灯全灭不亮。而如果这两种情况都不是的话,那么lr=0时当时钟上升沿脉冲到来时,如果tmp=”000”则左边第一盏灯亮,否则就将tmp(1 downto 0)和0的与赋值给tmp,那么依次左边的三盏灯就能实现从左到右按次序亮灭了。最后将tmp(2)送到l2,tmp(1)送到l1,tmp(0)送到lo,结束程序和结构体。这就是在实现左转弯的时候执行的程序的全过程。通过对左转的理解,右转弯就很容易了,其执行的过程和左转弯的时候非常相似的 。我们也可发现LFTA模块的功能是当左转时控制左边的三盏灯,当左右转信号都有效时,输出为全1。下面来看一下右转弯控制模块。4.模块RITA源程序:Library ieee;Use ieee.std_logic_1164.all;Entity rita isPort(en,clk,lr:in std_logic;R2,r1,r0:out std_logic);End rita;Architecture rit_arc of rita isBeginProcess(clk,en,lr)Variable tmp:std_logic_vector(2 downto 0);BeginIf lr=1 thenTmp:=”111”;Elsif en=0 thenTmp:=”000”;Elsif clkevent and clk=1 thenIf tmp=”000” thenTmp:=”100”;ElseTmp:=0 & tmp(2 downto 1);End if;End if ;R2=tmp(2);R1=tmp(1);R0=tmp(0);End process;End rit_arc;和左转弯时候的相同,右转弯时再次使用了ieee的库说明,这样我们可以很清楚的理解了右转弯的原理,此时库定义的实体名为rita,对于实体名前面已经讲过了不再重复了,同样的程序包中还是使用了6个端口en ,clk,lr,r2,r1,r0. en ,clk, lr的端口方式是输入,r2,r1,r0的端口方式是输出。结构体中和左转时相同引入一个进程同时和三个敏感量:clk,en,lr。变量tmp为2downto 0的三位位矢量。当左右开关同时接通时lr=1,那么此时变量tmp=111,即右面的三盏灯都有信号,三盏灯全亮。否则lr=0,当en=0时,tmp=000,即三盏灯全灭掉。Elsif clkevent and clk=1即当时钟脉冲上升沿到来时,en=1,如果tmp=”000”,就把”100”送到tmp 此时右边的第一盏灯亮。否则就把0和tmp(2 downto 1)的与送到tmp,则依次为右边第一盏灯,第二盏,第三盏亮。然后结束if语句。这个之后就和左转的程序是一样的了,将tmp(2)中的数值送到r2,将tmp(1)中的数值送到r1,将tmp(0)中的数据送到r0,然后结束进程语句和整个结构体语句。那么到这里整个汽车尾灯的VHDL程序控制就结束了。5.结论:本次设计用到了硬件描述语言VHDL实现了对汽车尾灯的控制,总结整个设计程序我们可以发现一些问题;设计中的优点:基本实现了汽车在运行时候尾灯点亮方式的各种情况。设计中的不足:由于在行车的时候都是用开关控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论