- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
50层电梯的VHDL程序设计方案.doc
50层电梯的VHDL程序设计方案
第一部分 设计任务
电梯程序设计
设计一个50层的电梯程序,实现以下功能:
功能:
用LED显示电梯的行进过程,即用数码管显示电梯当前所在楼层的位置。
在每层电梯的入口处有两个按钮上升请求(up)和下降请求(down),按钮按下时则对应的LED亮。
电梯到达了有请求的楼层之后,把门打开。停留15秒之后,把门关闭。
电梯的运行遵循方向优先原则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下面上逐个执行,直到最后一个上楼请求执行完毕,如更高层有下楼请求则直接上升到有下楼请求的最高层,然后进入下降模式;当电梯处于下降模式时,运行规则与上升模式刚好相反。
第二部分 设计方案
本次设计采用FPGA来实现对电梯程序的控制的,并采用VHDL语言输入的方式实现。整个系统分为两大组成模块:电梯控制器主体模块,完成各项控制进程,输出电路运行状态;显示模块,实现电梯控制器显示输出。
电梯控制器主体模块
图1
如图所示,clk是分频后1Hz的时钟信号,作为FPGA的时钟输入信号,电梯的模块输入的信号有:电梯外请求信号(包括上升请求和下降请求信号)、电梯内请求信号(即选定电梯停止的楼层的位置)。电梯模块的输出包括:楼层显示(posidisplay1为十位显示,posidisplay0)、上升请求信号显示(uplight)、下降请求信号显示(downlight)、电梯内请求信号显示(stoplight)以及电梯门打开信号(doorlight)。其中,请求信号高电平有效,doorlight=’1’时表示电梯门打开,反之则表示门关闭。
本次设计设置了电梯运行的几种状态,它们分别是:stopon1(电梯停在一楼),dooropen(电梯门打开)、doorclose(电梯门关闭)、up(电梯上升)、down(电梯下降)、stop(停止)。能过在不同的情况下对电梯状态的转换来实现电梯的升降、停止以及开门的动作。
程序运行时,先对电梯进行初始化,让电梯停在第一层,门打开,电梯运行方向的标志udsig=’0’(上升),即令
doorlight=’1’,position=1,pos:=1,udsig=’0’,cdisplay=”0001”。 15秒钟后电梯门关闭,对电梯内外的请求信号进行判断。无请求信号时,电梯一直处于初始状态(即电梯门关闭,停在第一层);若有上升或下降请求信号时,电梯上升到请求信号所在的楼层,然后电梯门打开同时清除所在楼层相应的请求信号,在停留15秒钟之后,电梯门关闭,电梯根据电梯内信号的请求上升或下降,最后停留在请求停止的楼层。
在电梯上升的进程中,电梯首先对所在楼层以上的上升请求信号发生响应,而忽略下降请求信号,只有在上升过程停止后,电梯才开始对下降请求信号做出相应的处理。电梯在处于下降时也一样,首先对下降请求信号作出响应,在下降过程停止后,才开始对上升请求信号作出相应的响应,电梯在对请求信号作出响应后都会清除相应的请求信号。若无请求信号时,电梯会停在最后停止时所在的楼层并且保持门关闭的状态,直至有请求信号产生时为止。
对电梯进行复位时,电梯回到stopon1状态。
电梯运行的流程图如图2所示。
显示模块
引脚介绍:
Ledin[3..0]: 数据输入
Ledout[3..0]: 数码管译码输出
顶层模块设计
图3
引脚介绍:
clk: 时钟输入
reset: 复位键输入
up_button[49..1]: 楼层上升请求信号输入
down_button[50..2]:楼层下降请求信号输入
stop_button[50..1]: 停止楼层选择信号输入
uplight[50..1]: 跟up_button对应的指示灯信号输出
downlight[50..0]: 跟down_button对应的指示灯信号输出
stoplight[50..1]: 跟stop_button对应的指示灯信号输出
posdis1[6..0]: 楼层位置显示(十位)输出
posdis0[6..0]: 楼层位置显示(个位)输出
tdis[6..0]: 倒计时显示输出
doorlight: 开门信号输出
第三部分 仿真分析
电梯控制器主体模块仿真
令up_button[5]=’1’,up_button[9]=’1’,stop_button[12]=’1’,stop_button[17]=’1’, stop_button[41]=’1’, stop_button[50]=’1’;down_button[44]=’1’,则出现上图所示的仿真波形
从中我们可以看出
文档评论(0)