基于VHDL语言的汽车尾灯控制电路的设计
摘要:本课题主要是基于可编程逻辑器件,使用硬件描述语言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 is
Begin
Process(left,right)
Variable a:std_logic_vector(1 downto 0);
Begin
A:=left & right;
Case a is
When”00”=>lft<=’0’;
Rit<=’0’;
Lr <=’0’;
When”10”=>lft<=’1’;
Rit<=’0’;
Lr <=’0’;
When”01”=>rit<=’1’;
Lft<=’0’;
Lr <=’0’;
When other=>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
Begin
Process(clk,en,lr)
Variable tmp:std_logic_vector(2 downto 0);
Begin
If lr=’1’ then
Tmp:=”111”;
Elsif en=’0’ then
Tmp:=”000”;
Elsif clk’event and clk=’1’ then
If tmp=”000” then
Tmp:=”001”;
Else
Tmp:=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 is
Port(en,clk,lr:in std_logic;
R2,r1,r0:out std_logic);
End rita;
Architecture rit_arc of rita is
Begin
Process(clk,en,lr)
Variable tmp:std_logic_vector(2 downto 0);
Begin
If lr=’1’ then
Tmp:=”111”;
Elsif en=’0’ then
Tmp:=”000”;
Elsif clk’event and clk=’1’ then
If tmp=”000” then
Tmp:=”100”;
Else
Tmp:=’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 clk’event 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实现了对汽车尾灯的控制,总结整个设计程序我们可以发现一些问题;
设计中的优点:基本实现了汽车在运行时候尾灯点亮方式的各种情况。
设计中的不足:由于在行车的时候都是用开关控制的,所以每一个开关应该有一个消除机械振动的装置,可以利用基本RS触发器来实现,所以在条件允许的情况下可以对整个设计进行进一步的改进。
6.参考资料:
王振红 《VHDL数字电路设计与应用实践教程》 机械工业出版社 2006年1月
彭容修 《数字电子技术基础》 武汉理工大学出版社 2005年9月
潘松 黄继业 《EDA技术与VHDL》 清华大学出版社 2006年11月
2009.12.27
library ieee;
use ieee.std_logic_1164.all;
entity ZHUKONG is
Port(left,right:in std_logic;
Lft,rit,lr:out std_logic);
end;
architecture kong_arc of ZHUKONG is
begin
Process(left,right)
Variable a:std_logic_vector(1 downto 0);
Begin
A:=left & right;
Case a is
When"00"=>lft<='0';
Rit<='0';
Lr <='0';
When"10"=>lft<='1';
Rit<='0';
Lr <='0';
When"01"=>rit<='1';
Lft<='0';
Lr <='0';
When others=>rit<='1';
lft<='1';
lr<='1';
end case;
end process;
end kong_arc;
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;
architecture lft_arc of LFTA is
begin
Process(clk,en,lr)
Variable tmp:std_logic_vector(2 downto 0);
Begin
If lr='1' then
Tmp:="111";
Elsif en='0' then
Tmp:="000";
Elsif clk'event and clk='1' then
If tmp="000" then
Tmp:="001";
Else
Tmp:=tmp(1 downto 0) & '0';
End if;
End if;
L2<=tmp(2);
L1<=tmp(1);
L0<=tmp(0);
End process;
end lft_arc;
library ieee;
use ieee.std_logic_1164.all;
entity RITA is
Port(en,clk,lr:in std_logic;
R2,r1,r0:out std_logic);
end;
architecture rit_arc of RITA is
begin
Process(clk,en,lr)
Variable tmp:std_logic_vector(2 downto 0);
Begin
If lr='1' then
Tmp:="111";
Elsif en='0' then
Tmp:="000";
Elsif clk'event and clk='1' then
If tmp="000" then
Tmp:="100";
Else
Tmp:='0' & tmp(2 downto 1);
End if;
End if ;
R2<=tmp(2);
R1<=tmp(1);
R0<=tmp(0);
End process;
end rit_arc;
智能水位控制系统毕业设计
一、水位智能检测系统设计原理�
实验证明,纯净水几乎是不导电的,但自然界存在的以及人们日常使用的水都会含有一定的Mg2+、Ca2+等离子,它们的存在使水导电。本控制装置就是利用水的导电性完成的。�
如图1所示,虚线表示允许水位变化的上下限。在正常情况下,应保持水位在虚线范围之内。为此,在水塔的不同高度安装了3根金属棒,以感知水位变化情况。
图1 水位检测原理图
其中B棒处于下限水位,C棒处于上限水位,A棒接+5V电源,B棒、C棒各通过一个电阻与地相连。�
水塔由电机带动水泵供水,单片机控制电机转动以达到对水位控制之目的。供水时,水位上升。当达到上限时,由于水的导电作用,B、C棒连通+5V。因此,b、c两端均为1状态,这时应停止电机和水泵工作,不再给水塔供水。
当水位降到下限时,B、C棒都不能与A棒导电,因此,b、c两端均为0状态。这时应启动电机,带动水泵工作,给水塔供水。
当水位处于上下限之间时,B棒与A棒导通,b端为1状态。C端为0状态。这时,无论是电机已在带动水泵给水塔加水,水位在不断上升;或者是电机没有工作,用水使水位在不断下降。都应继续维持原有的工作状态。�
二、基于单片机控制的水塔水位控制系统�
1�单片机控制电路�
水塔水位控制的电路如图2所示。�
2�前向通道设计
图2 水塔水位控制电路
由于所采用的信号是频率随水位变化而变的脉冲信号(开关量),因此电路设计中省去了A/D�转换部分,这不仅降低了硬件电路的成本,而且由于采用数字脉冲信号通信,提高了系统的抗干扰能力、稳定性和精度。�
输入的可变脉冲信号送到8031的P10和P11脚电平,当接收到信号时,输入脉冲使其输出高电平,而无信号输入时,无触发脉冲,此时翻转为低电平。程序控制8031周期性地对P11和P10脚电平进行采样,达到控制的目的。�
3.微机控制数据处理部分�
在电路设计中,充分利用8031已有端口的作用,同时也考虑扩展,做到尽可能节省元件,不仅可降低成本,而且提高可靠性。
(1)使用8031单片机。水塔水位控制的电路如图3—1。接受电路得到的是频率随水位变化的调频脉冲,它反映了贮水池水位的高度,对其进行信号处理,便能实现对水位的控制及故障报警等功能。要完成此一工作,
最佳的选择是采用微机控制,实验中是以MCS—51系列弹片机8031作CPU。对接受的信号进行数据处理,完成相应的水位控制、故障报警等功能。8031芯片的内部结构框图见图3所示。�
由图3可大致看到:它含运算器、控制器、片内存储器、4个I/O接口、串行接口定时器/计数器、中断系统、振荡器等功能部件。图中SP是堆栈指针寄存器,栈区占用了片内RAM的部分单元;未见通用寄存器(工作寄存器),因单片机片内有存储器,与访问工作寄存器一样方便,所以就把一定数量的片内RAM
字节划作工作寄存器区;PSW
是程序状态字寄存器,简称程序状态字,相当于其他计算机的标志寄存器;DPTR是数据指针寄存器,在访问片外ROM、片外RAM、甚至扩展I/O接口时特别有用;B寄存器又称乘法寄存器,它与累加器A协同
工作,可进行乘法操作和除法操作。实验中8031时钟频率为6MHz。由于8031没有内部ROM,因此需外扩展程序存储器。本系统采用2732EPROM扩展4K程序存储器,对应地址空间为0000H~0FFFH。
(2)74LS373作为地址锁存器。74LS373片内是8个输出带三态门的D锁存器,其结构示意图见图4所示。当使能端G呈高点平时锁存器中的内容可更新,而在返回低电平瞬间实现锁存。如此时芯片的输出控制端为低,也即输出三态门打开,锁存器中的地址信息便可经由三态门输出。除74LS373外,84LS273、8282、8212等芯片也可用作地址锁存器,但使用时接法稍有不同,由于接线稍繁、多用硬件和价格稍贵,故不如74LS373用的普遍。
图3 8031芯片内部结构框图
(3)两个水位信号由P10和P11输入,这两个信号共有四种组合状态。如表3—1所示。其中第三种组合(b=1、c=0)正常情况下是不能发生的,但在设计中还是应该考虑到,并作为一种故障状态。�
表3-1 水位信号状态表
C(P11) B(P10) 操作
0 0 电机运转
0 1 维持原状
1 0 故障报警
1 1 电机停转
(4)控制信号由P12端输出,去控制电机。为了提高控制的可靠性,使用了光电耦合。
4.报警电路�
本系统采用发光二极管,当控制电路出现故障状态时,P13置零,发光二极管导通,发光报警。�
5.软件设计�
一个应用系统,要完成各项功能,首先必须有较完善的硬件作保证。同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单,如数字滤波,信号处理等。因此充分利用其内部丰富的硬件资源和软件资源,采用MCS—51汇编语言和结构化程序设计方法进行软件编程。这个系统程序由主控程序、延时子程序组成。其中主控程序是核心。由它控制着整个系统程序的运行和跳转。流程图如图5所示。包括系统初始化,数据处理,故障报警等。�
电路具体工作情况如下:�
① 当水位低于B时,由于极棒A和C、A和B之间被空气绝缘,P10和P11得到低电平,全置0,单片机控制电路使P12置零,继电器吸合,启动水泵向水塔灌水;�
② 当水位高于B低于C时,P10置1,P11置0,继电器常开触电自保,因此升到B以上时,继电器并不立即释放,电极仍然供水;
③ 当水位达到C时,P10 、P11均置1,单片机控制电路使P12置1,继电器释放,水泵停止工作;�
④ 用水过程中,水位降到C以下,P11置0,P10置1,维持原状,电机不工作,直到降到B以下,如此循环往复。�
系统出现故障时,由P13置零,输出报警信号,驱动一支发光二极管进行光报警。
三、结束语�
现代传感技术、电子技术、计算机技术、自动控制技术、信息处理技术和新工艺、新材料的发展为智能检测系统的发展带来了前所未有的奇迹。在工业、国防、科研等许多应用领域,智能检测系统正发挥着越来越大的作用。检测设备就像神经和感官,源源不断地向人类提供宏观与微观世界的种种信息,成为人们认识自然、改造自然的有力工具。
现代的广义智能检测系统应包括一切以计算机(单片机、PC机、工控机、系统机)为信息处
理核心的检测设备。因此,智能检测系统包括了信息获取、信息传送、信息处理和信息输出等多个硬、软件环节。从某种程度上来说,智能检测系统的发展水平表现了一个国家的科技和设计水平。�
本课题研究的内容是“智能水位控制系统”。水位控制在日常生活及工业领域中应用相当广泛,比如水塔、地下水、水电站等情况下的水位控制。而以往水位的检测是由人工完成的,值班人员全天候地对水位的变化进行监测,用有线电话及时把水位变化情况报知主控室。然后主控室再开动电机进行给排水。很显然上述重复性的工作无论从人员、时间和资金上都将造成很大的浪费。同时也容易出差错。因此急需一种能自动检测水位,并根据水位变化的情况自动调节的自动控制系统,我所研究的就是这方面的课题。�
水位检测可以有多种实现方法,如机械控制、逻辑电路控制、机电控制等。本实验采用两种方法(单片机和时基集成电路)进行主控制,在水池上安装一个自动测水位装置。利用水的导电性连续地全天候地测量水位的变化,把测量到的水位变化转换成相应的电信号,主控台应用单片微机或时基集成电路对接收到的信号进行数据处理,完成相应的水位显示、控制及故障报警等功能。�
参考文献�
1.丁元杰 单片微机原理及应用 机械工业出版社 2000�
2.腾召胜 罗隆福 智能检测系统与数据融合 机械工业出版社 2000
3.孙虎章 自动控制原理 中央广播电视大学出版社 1999
这个东西说白了不是很复杂,首先了解pwm原理就百度百科好了,写论文的时候直接粘贴就行,单片机实验pwm更简单,只要你学过嵌入式应该就会的,拿51单片机来说就是i/o端口作为pwm输出,注意下单片机的总输入/输出电流不要超过设计范围就行,这方面查说明书就行,最后制作电路并实现没啥说的,一个单片机,i/o口上接个限流电阻再接个led,这就是最简单的,如果不明白建议你找导师问问,只要知道要做成什么样就一切ok。
1. 乘客电梯的PLC控制(字数:20386,页数:49 价格:¥90.00)
2. 西门子S7-300PLC在六层变频调速电梯控制中的应用(字数:24198,页数:68 价格:¥98.00)
3. 七层建筑电梯PLC控制系统设计(字数:36753,页数:73 价格:¥168.00)
4. 交流变频五层电梯控制系统的设计(字数:32540,页数:57 价格:¥168.00)
5. 基于西门子PLC的变频调速电梯控制系统的设计(字数:22309,页数:44 价格:¥128.00)
6. 基于MCGS电梯控制系统设计(字数:25318,页数:57 价格:¥168.00)
7. 交流变频调速PLC控制电梯系统设计毕业论文(字数:20697,页数:68 价格:¥108.00)
8. PLC控制变频调速五层电梯系统设计(字数:17380,页数:51 价格:¥68.00)
9. 三菱PLC在五层电梯控制中的应用(字数:12900,页数:43 价格:¥98.00)
10. PLC在交流双速电梯控制系统中的应用(字数:24527,页数:47 价格:¥68.00)
11. 松下系列PCL五层电梯控制系统(字数:23094,页数:31 价格:¥79.00)
12. 松下PLC控制的五层电梯设计(字数:10429,页数:28 价格:¥60.00)
13. 基于三菱PLC设计的四层电梯控制系统(字数:14291,页数:35 价格:¥79.00)
14. 三菱PLC控制的四层电梯毕业设计论文(字数:13240,页数:42 价格:¥88.00)
15. 基于plc的五层电梯控制(字数:20509,页数:59 价格:¥88.00)
16. PLC电梯控制毕业论文(字数:15029,页数:44 价格:¥98.00)
17. 西门子PLC控制的四层电梯毕业设计论文(字数:9622,页数:34 价格:¥90.00)
18. 基于三菱PLC的三层电梯控制系统设计(字数:9596,页数:30 价格:¥98.00)
19. PLC在电梯自动化控制中的应用(字数:22033,页数:61 价格:¥108.00)
20. 基于FPGA控制的电梯设计与实现(字数:15083,页数:44 价格:¥118.00)
21. 基于PLC的三层电梯控制系统毕业设计(字数:10221.页数:31 价格:¥98.00)
22. 基于PLC的电梯系统设计(字数:9419,页数:27 价格:¥60.00)
23. 基于FXON系列PLC的六层电梯控制设计(字数:15677,页数:33 价格:¥118.00)
24. 多层住宅楼电梯的PLC控制系统的设计(字数:21346,页数:62 价格:¥118.00)
25. 三层楼电梯的PLC自控系统的设计(字数:19310,页数:45 价格:¥118.00)
26. 三层楼交流双速电梯的PLC电气控制系统的设计(字数:23317,页数:54 价格:¥118.00)
27. 液压电梯设计(字数:14364.页数:32 价格:¥98.00)
28. 西门子PLC控制的四层电梯设计(字数:17725,页数:58 价格:¥118.00)
29. PLC电梯控制系统(字数:23085,页数:32 价格:¥60.00)
30. 基于单片机的电梯控制系统(字数:13302,页数:45 价格:¥118.00)
31. 基于PLC控制的调压调速电梯拖动系统设计(字数:17562,页数:43 价格:¥118.00)
32. 高层建筑电梯控制系统设计(字数:20079,页数:47 价格:¥148.00)
33. 模拟电梯的制作(字数:18703,页数:49 价格:¥148.00)
34. 三层电梯的单片机控制电路(字数:10430,页数:35 价格:¥98.00)
35. 单片机控制电梯系统的设计(字数:11302,页数:27 价格:¥90.00)
36. S7-300 PLC在电梯控制中的应用(字数:19613,页数:46 价格:¥108.00)
37. 基于PLC的七层交流变频电梯控制系统设计(字数:17233,页数:57 价格:¥118.00)
38. 五层交流双速电梯PLC电气控制系统的设计(字数:20556,页数:36 价格:¥118.00)
39. 四层交流双速电梯的PLC电气控制系统的设计(字数:20750,页数:42 价格:¥118.00)
40. 基于PLC控制的交流变频电梯设计(字数:15930,页数:57 价格:¥90.00)
41. 基于三菱PLC的四层电梯控制系统的设计(字数:9688,页数:23 价格:¥79.00)
42. 基于PLC的双速六层电梯控制系统设计(字数:18705,页数:75 价格:¥118.00)
43. 基于PLC和变频器实现电梯的精确控制(字数:20804,页数:45 价格:¥118.00)
44. PLC三层楼电梯系统设计与调试(字数:7645,页数:19 价格:¥60.00)
45. 电梯控制系统的设计(字数:12486,页数:31 价格:¥79.00)
46. 四层电梯的PLC控制及组态(字数:15445,页数:43 价格:¥88.00)
47. 单台电梯PLC控制系统的总体设计(字数:19287,页数:49 价格:¥90.00)
48. 电梯控制系统设计(字数:15163,页数:69 价格:¥128.00)
49. 五层单台电梯PLC控制系统的总体设计方案(字数:15457,页数:43 价格:¥90.00)
50. 交流变频电梯控制系统的设计(字数:25520,页数:53 价格:¥148.00)
可联&>系Q+.Q:8.9.....后面输入....3..6
........接着输入2..8....136
Q+Q空间.里有所&有内容。