ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:204.92KB ,
资源ID:3037569      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3037569.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(3层电梯VHDL报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

3层电梯VHDL报告.docx

1、3层电梯VHDL报告1实验题目 简易二层电梯控制器 模拟真实电梯的运行情况,设计制作一个简易电梯控制器控制二层电梯的运行。 基本要求:1、 电梯设有一层、二层外部呼叫按钮和内部一层、二层指定按钮(BTN)。2、 利用数码管显示电梯所在楼层,用LED显示电梯运行状态如上行、下行、开门、关门等。提高要求:1、 点阵显示楼层;2、 用点阵显示楼层的上下滚动移出移入表示电梯的上行或下行运行方向3、 增加为三层电梯控制器2设计方案及思路设计思路:根据题目要求,我在程序中设计了需要用到的8个外部按钮:f1up,f2up ,f2dn,f3dn,warning,stop1,stop2,stop3,reset,

2、另外还有相应的显示信号,程序利用状态机实现总体的控制,状态中用到了7个状态:(stopon1,dooropen,doorclose,doorwait,up1,down1,stop),状态的主要转换如下:设定复位后初始状态是stopon1,然后状态跳转到doorclose,在接收到相应的请求信号时,做出判断,若请求信号的楼层大于当前所在的楼层,则程序跳转到up1状态,小于则跳转到down1状态,如果请求信号的楼层与当前楼层相同时,则开门进入dooropen 状态,然后到开门延迟状态doorwait,然后再到doorclose状态,上升和下降的过程中判断电梯是否到达指定的楼层,若到达,则程序进入s

3、top状态,然后到开门-延时-关门,进而做判断。状态转移图如下:各个状态线表示的内容如下:1初始化2 初始化后电梯进入工作状态,起始是关门状态3 没有任何信号输入时,电梯始终工作在关门状态4 电梯接收到信号,且请求信号大于当前楼层5 电梯上升后到达指定楼层时停止6 电梯停止后便开门7 延时等待乘客搭乘电梯或者走出电梯8 等待时间结束后电梯关门9 电梯接收到信号,且请求信号小于当前楼层10 电梯下降到指定楼层后停止11 电梯接受的信号与当前楼层相同则开门控制原理图:分块设计:程序中主要分了3个模块:分频模块,状态控制,状态显示,其中状态显示分成了信号灯显示部分和点阵显示部分,因为一开始对点阵的显

4、示比较生疏,所以点阵显示模块是后来才在总的程序中加入的。分频模块的作用是将板子提供的时钟信号分频作为电梯运行状态转换的时钟信号;状态控制模块是最核心的一部分,它要分析输入信号并作出相应的状态转换;状态显示的信号灯模块主要控制对于外部输入做出的反应,而点阵显示部分则主要是利用点阵来显示当前的楼层信号和运行的电梯上升或下降模式。3时序仿真图(1)如图从图中可以看出,当复位键reset高电平时,所有信号都不显示,当reset低电平,有警报信号时,电梯门打开,并产生警报输出,当警报与复位信号都是低电平时,一楼有上升请求,显示上升信号,电梯开门后一楼外部请求上升信号熄灭,内部要求停在2楼和3楼,电梯显示

5、内部请求信号,图中stoplight=”110”时,表示有2、3层内部停站请求,电梯经过4个电梯时钟信号到达2层,然后开门,2层上升请求信号清零,然后再关门,上升到3层,之后开门,关门,此时,没有然后任何外部信号,就停止在3层。(2)如图,电梯在3层,接收到2层外部下降请求信号,电梯显示该信号,并从3楼下降,同时接收到2层上升请求信号,电梯显示该信号,下降到2层时,电梯开门,然后从接受到的1楼停站请求信号,电梯继续下降并在一楼开门,然后电梯上升到2层开门,然后执行上升任务,到达3层开门。4源程序分析(见附件)5功能说明 如图,clk 接的是开发板的晶振输入信号,作为时钟信号,reset是复位输

6、入,高电平有效,复位后状态转换为stopon1,f1up电梯外部1楼上升请求信号,f2up电梯外部2楼请求上升信号,f2dn电梯外部2楼请求下降信号,电梯外部3楼请求下降信号,stop1 内部一层停站请求端口, stop2内部二层停站请求端口,stop3 内部三层停站请求端口都是高电平有效,选择相应的端口时会有相应的LED灯点亮,warning:内部紧急状况请求,高电平有效,此时电梯门打开,蜂鸣器鸣叫报警,fuplight外部上升请求显示灯,fdnlight外部下降请求显示灯,stoplight内部请求显示灯,doorlight开关门信号灯,用来显示相应的请求信号,row点阵显示行,col点阵

7、显示列,用来显示楼层信息与上升下降信息的,warning_out紧急状况报警,接到蜂鸣器6元器件清单及资源利用实验中用到的是MAXII EPM1270T144C5的板子,其中主要用到的是按键开关和点阵,另外还用到了2个拨码开关用来表示复位键和警报键,还用到了蜂鸣器用来显示警报信号。引脚图如下:附件:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity dianti is port( clk:in std_logic; -时钟信号 reset:in std_logic; -异步复位端口

8、1-复位 f1up :in std_logic; -外部一层上升请求端口 1-有请求 0-无请求 以下类似 f2up :in std_logic; -外部二层上升请求端口 f2dn :in std_logic; -外部二层下降请求端口 f3dn :in std_logic; -外部三层下降请求端口 stop1 :in std_logic; -内部一层停站请求端口 stop2 :in std_logic; -内部二层停站请求端口 stop3 :in std_logic; -内部三层停站请求端口 warning:in std_logic; -内部紧急状况请求端口 fuplight:buffer s

9、td_logic_vector(2 downto 1); -外部上升请求显示灯 0- 灭灯 1-亮灯 以下类似 fdnlight:buffer std_logic_vector(3 downto 2); -外部下降请求显示灯 stoplight:buffer std_logic_vector(3 downto 1); -内部请求显示灯 doorlight:out std_logic; -开关门信号灯 layer:out std_logic_vector(1 downto 0); -当前楼层信息 -在开发板上应用的时候 -显示在点阵上,不需要此信号 row:out std_logic_vecto

10、r(7 downto 0); -点阵显示行 col:out std_logic_vector(7 downto 0); -点阵显示列 warning_out:out std_logic -紧急状况报警,接到蜂鸣器 ); end entity dianti;architecture behave of dianti is -结构体type state is -定义14个状态(stopon1,dooropen,doorclose,doorwait,up1,down1,stop);signal lift_state:state;signal clearup:std_logic; -上升和停站请求清除

11、信号signal cleardn:std_logic; -下降和停站请求清除信号signal up_down:std_logic;signal run_model:std_logic_vector(2 downto 0); -电梯模式(上升或下降)信号signal pos:integer range 1 to 3; -电梯位置信号signal i:integer range 0 to 7;signal num:integer range 0 to 99999;signal liftclk:std_logic; -电梯时钟信号begin-分频模块-功能:对时钟信号分频,产生电梯运行的时钟信号-f

12、enpin:process(clk,reset)variable count:integer range 0 to 1; -在开发板上应用的时候 需要将分频倍数改 -大一些 1变成24999;begin if reset=1 then liftclk=0; else if clkevent and clk=1 then if count=1 then count:=0; liftclk=1; else count:=count+1; liftclk=0; end if; end if; end if;end process fenpin;-状态转换-功能:电梯的主要控制模块-ctrlift:p

13、rocess(reset,liftclk,warning) -状态机进程variable cnt:integer range 0 to 4;begin if reset=1 then -异步复位,电梯的初始状态为一层开门状态 lift_state=stopon1; clearup=0; cleardn=0; else if liftclkevent and liftclk=1 then if warning=1 then run_model=000; doorlight=1; -有警报时开门 else doorlight -1楼停止,初始状态 doorlight=0; run_model=00

14、0; pos=1; up_down=1; lift_state -关门状态 doorlight=0; run_model=000; -电梯处于关门停止模式 if up_down=1 then if pos=3 then -电梯在3层 if fuplight=00 and fdnlight=00 and stoplight=000 then -没有任何请求信号,电梯停在当前层 up_down=0; lift_state=doorclose; elsif fdnlight(3)=1 or stoplight(3)=1 then -3层有请求信号时,电梯开门 up_down=0; lift_state=dooropen; else -否则其它层有信号时,下降 u

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

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