• 回答数

    3

  • 浏览数

    237

susyweswes
首页 > 毕业论文 > 逻辑电路表决器毕业论文

3个回答 默认排序
  • 默认排序
  • 按时间排序

甜蜜到腻

已采纳

基于VHDL语言的汽车尾灯控制电路的设计摘要:本课题主要是基于可编程逻辑器件,使用硬件描述语言VHDL,采用“自顶向下”的设计方法编写程序实现汽车尾灯的控制,并对控制器进行编程下载,它的体积小,功耗低,成本低,安全可靠,能实现控制器的在系统编程,其升级与改进极为方便。关键词: VHDL 汽车尾灯控制 时钟信号1. 尾灯控制电路总框图,根据电路总框图的描述,我们大概可以了解到整个汽车控制尾灯的工作原理,从中我们可以发现当左右转信号同时有效时,6盏灯的闪烁是通过一个与非门实现的。并且可以获知本次设计的汽车尾灯控制电路主要分为三个模块,即控制模块,左转LFTA模块和右转RITA模块。了解到这几点,就可以对本次设计作较为详尽的解释。2.模块KONG。模块KONG如图所示,此为整个程序的控制模块。程序如下:Library ieee;Use ;Entity kong isPort(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 <=’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程序包的全部资源。此控制模块定义的实体名为kong。在程序中要求实体名与存储的文件名一致。实体名为kong,则存储的文件名为。且此段程序包有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 ;Entity lfta isPort(en,clk,lr:in std_logic;L2,l1,l0:out std_logic);End lfta;Architecture lft_arc of lfta isBeginProcess(clk,en,lr)Variable tmp:std_logic_vector(2 downto 0);BeginIf lr=’1’ thenTmp:=”111”;Elsif en=’0’ thenTmp:=”000”;Elsif clk’event 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 ;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 clk’event 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 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月 ieee;use ;entity ZHUKONG isPort(left,right:in std_logic;Lft,rit,lr:out std_logic);end;architecture kong_arc of ZHUKONG isbeginProcess(left,right)Variable a:std_logic_vector(1 downto 0);BeginA:=left & right;Case a isWhen"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 ;entity LFTA isPort(en,clk,lr:in std_logic;L2,l1,l0:out std_logic);end;architecture lft_arc of LFTA isbeginProcess(clk,en,lr)Variable tmp:std_logic_vector(2 downto 0);BeginIf lr='1' thenTmp:="111";Elsif en='0' thenTmp:="000";Elsif clk'event 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;library ieee;use ;entity RITA isPort(en,clk,lr:in std_logic;R2,r1,r0:out std_logic);end;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 clk'event 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;

338 评论

sy四叶草

1)

A,B,C三输入,1赞成,0反对;,输出F,小数服从多数,1通过,0不通过;

用两输入或非门实现F就需要多个74ls02!

2)

与非门实现异或门(=1)如上图,将上图代入原图上两个异或门就可以。

200 评论

xuzhenying

“三人表决器” “三人表决器”的逻辑功能是:表决结果与多数人意见相同. 设X0、X1、X2为三个人(输入逻辑变量),赞成为1,不赞成为0; Y0为表决结果(输出逻辑变量),多数赞成Y0为1,否则,Y0为0.其真值表如表1所示. 表1 “三人表决器”真值表 输入逻辑变量 输出逻辑变量 X0 X1 X2 Y0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 由真值表写出逻辑表达式并化简得:Y0=X0*X1+X0*X2+X1*X2 (1) 要实现这个逻辑功能,如果用“集成逻辑门”,则可选用三个两输入“与门”和一个三输入“或门”来实现.但是,这里我们不是用“集成逻辑门”,而是用PLC“程序”来实现. 程序语句如下: 0 LD X0 1 AND X1 2 LD X0 3 AND X2 4 ORB 5 LD X1 6 AND X2 7 ORB 8 OUT Y0 9 END 将这个程序语句写入到PLC中,再进行接线:用三个开关分别控制X0、X1、X2,用一盏指示灯来显示表决结果,并将COM1连接到24V直流电源的正极.接线完毕就可以进行演示实验的操作了.如果赞成,则合上开关;如果不赞成,则断开开关.指示灯的亮灭,显示的是表决的结果.灯亮表示多数赞成,灯不亮,则表示多数不赞成.表决结果与多数人意见相同. 下面探讨一下由“逻辑表达式”来编写PLC程序的规律.一般书上用A、B、C表示输入逻辑变量,用Y表示输出逻辑变量.在这里为了编程的方便,我们有意把PLC的输入继电器(X)的触点作为输入逻辑变量,把输出继电器的线圈作为输出逻辑变量.例如,在表达式(1)中,X0、X1、X2为三个输入逻辑变量,代表三个人,Y0为输出逻辑变量,代表表决结果.同时在PLC中,X0、X1、X2又是三个输入继电器,都是输入继电器的常开触点; Y0是一个输出继电器,是输出继电器的一个线圈. 式(1)是一个“与或式”,在第一项X0*X1中,“X0”在项首,用[LD]指令,即LD X0,“*”是“与”逻辑,用[AND]指令,即AND X1.第二项、第三项也是这个规律,三项相加, “+”是“或”逻辑,用[ORB]指令,[ORB]指令是“块或”指令.因为每一个“与项”都是两个触点相串联的“串联电路块”,而“相加”就是作并联连接,即“串联电路块”作并联连接,所以要用“块或”指令.Y0是输出,用线圈输出指令[OUT],即OUT Y0.程序结束用 [END]指令.认真总结由“逻辑表达式”来编写PLC程序的规律,这对于快速编程很有好处.但是,一般的初学者,往往都是由“逻辑表达式”到“梯形图”,再到“程序语句”.为了帮助初学者,我们将这个程序的梯形图一并给出,如下图所示.

178 评论

相关问答

  • 毕业论文逻辑思路有问题

    如果论文的论点、定理没有严密的逻辑论证,只依赖于个别事例,那么它们就没有上升到理论的高度,难以令人彻底信服。论证缺乏包括论据欠缺、论证不畅、理据相悖、逻辑性不强

    大V呀大V 4人参与回答 2023-12-12
  • 毕业论文的逻辑怎么表述

    WOSCI沃斯编辑:要知道论文不只是看表面的字词表达和词藻华丽,对于一个论文首要的是其表现的思维能力,论文看质量,质量中最主要的因素就是论文的逻辑性,写作本就是

    雪莉小姐的 3人参与回答 2023-12-10
  • 毕业论文逻辑表述错误怎么改

    逻辑不够好你可以通过各种工具去调控你的思维。比如在写作论文时,你可以通过分类的知识梳理,建造一个树状图的东西来帮助你进行梳理思绪。

    与口水长流 5人参与回答 2023-12-10
  • 无线表决器毕业论文

    学术堂整理了一篇3000字的计算机论文范文,供大家参考: 范文题目:关于新工程教育计算机专业离散数学实验教学研究 摘要: 立足新工科对计算机类专业应用实践能力培

    阿籽猫77 4人参与回答 2023-12-06
  • 铁路区间逻辑检查毕业论文

    市场经济的直接影响是物价的时涨时落,近两年来,我们又面临着新的一轮物价上涨,特别是钢材、水泥、燃油料、当地料、火工品等主要材料的价格上涨对基建行业产生巨大的冲击

    迷糊喵星人 3人参与回答 2023-12-05