欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    EDA课程设计电梯控制的实现.doc

    • 资源ID:4144007       资源大小:1.14MB        全文页数:7页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    EDA课程设计电梯控制的实现.doc

    课程设计(综合实验)报告( 2010 - 2011 年度第 1 学期)名 称: EDA课程设计 题 目: 电梯控制的实现 院 系: 班 级: 学 号: 学生姓名: 指导教师: 设计周数: 1周 成 绩: 日期: 年 月 日一、课程设计的目的与要求用Mealy有限状态机设计二个楼层电梯控制程序。用VHDL语言写出Mealy有限状态机控制模块。Mealy有限状态机的输出受控于当前的状态和信号输入的变化,一旦这敏感信号被测,输出的信号就依赖于它们得到确定。电梯控制器的工作原理:当电梯空闲时,其状态等待着其他楼层的请求,一旦有请求输入信号,电梯移动到该请求信号的楼层,这时引起电梯门被关闭。引起电梯门关闭的条件有如下二个:必须在地面楼层状态StateGround;首层有请求输入信号ReqFirst。电梯开始移动到请求层,在移动过程中State从Ground转变为GoingFirst。当到达请求层后,电梯门被打开并且请求灯熄灭,此状态转换为First状态。这时如有其他楼层请求信号输入将引起电梯门的关闭(如地面层有楼层请求信号ReqGround)。当电梯门正在做关闭动作时,同时又要做重新打开电梯门的动作,其条件必须有当前楼层请求信号ReqFirst输入(其他请求信号均被忽略)。电梯门关闭以后,电梯可再次响应其他楼层请求,即这时电梯State状态为First状态,并且又从地面层来一个请求信号ReqGround,将会引起电梯State状态从First状态改变为GoingGround状态,电梯开始往下运行。在未到达目的地之前,其他请求信号均被忽略。二、设计正文本设计是基于VHDL语言开发的两层电梯控制器。以Quartus 为开发环境,最终在EDA实验箱上实现其演示的基本功能。其功能包括:显示电梯当前所在楼层,显示有请求发生的楼层,响应楼层请求,关门延时设置,电梯开关门显示。具体描述为:1、 电梯外部有请求开关,一楼一个,二楼一个;电梯内部有乘客到达层次的请求开关。2、 设有电梯所处位置指示装置和电梯运行模式(上升或下降)指示装置。3、 电梯到达请求楼层后,电梯门开启(电梯门指示灯亮),开门四秒后,电梯门关闭(电梯门指示灯灭),电梯继续响应请求或回到初始状态。4、 电梯初始状态为停在1楼,关门。5、 电梯上升或下降时,终止其他操作。6、 当电梯关门时,同层有请求,先响应同层请求(开门),再响应其他请求(上升或下降)。具体程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY dianti IS PORT(clk,reset,up1,down2,stop1,stop2:IN STD_LOGIC;-按键共有4个,其中电梯内部2个:stop1,stop2,电梯外部一楼一个up1,二楼一个down2 stoplight:buffer STD_LOGIC_VECTOR(2 DOWNTO 1);-stoplight对应stop按键 uplight,downlight:buffer STD_LOGIC;-uplight,downlight分别对应up1,down2按键 udsig:BUFFER STD_LOGIC; -电梯的状态,0代表(预)上升,1代表(预)下 POSITION:BUFFER INTEGER RANGE 1 TO 2;-电梯的位置 doorlight:buffer STD_LOGIC);-门灯,开门灯亮,关门灯灭 END dianti;ARCHITECTURE behav OF dianti ISTYPE state_type is(stopon1,dooropen,doorclose,wait1,wait2,wait3,wait4,up,down,stop);-十个状态,初始,开门,关门,延时14,上升,下降,停SIGNAL state:state_type:=stopon1;SIGNAL clearup,cleardn,anjianclk,dianticlk:STD_LOGIC;-上升清零,下降清零,按键时钟,电梯时钟 SIGNAL q:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(clk) -设定按键时钟和电梯时钟,外部时钟周期设为50ms BEGIN IF(reset='1') THEN q<="0000" ELSIF RISING_EDGE(clk) then q<=q+1; END IF; anjianclk<=q(0); -二分频 dianticlk<=q(3); -十六分频 END PROCESS; cont:PROCESS(reset,dianticlk) VARIABLE POS:INTEGER RANGE 3 DOWNTO 1; BEGIN IF reset='1' then state<=stopon1; clearup<='0' cleardn<='0' -复位 elsif rising_edge(dianticlk) THEN CASE state IS -设定状态机的各个状态 WHEN stopon1=>doorlight<='1' position<=1;pos:=1; state<=wait1; WHEN wait1=>state<=wait2; -延时 WHEN wait2=>clearup<='0' cleardn<='0' state<=wait3; WHEN wait3=>state<=wait4; WHEN wait4=>state<=doorclose; WHEN doorclose =>doorlight<='0' -从开门到关门经历5个电梯时钟周期 IF udsig='0' THEN -(预)上升状态时 IF position=2 THEN-电梯在二楼时 IF stoplight="00" and uplight='0' and downlight='0' THEN udsig<='1' state<=doorclose; ELSIF stoplight="10" THEN state<=dooropen; ELSIF downlight='1' THEN state<=dooropen; ELSE udsig<='1' state<=down; END IF; ELSIF position=1 THEN -电梯在一楼时 IF stoplight="00" and uplight='0' and downlight='0' THEN udsig<='0' state<=doorclose; ELSIF stoplight="01" THEN state<=dooropen; ELSIF uplight='1' THEN state<=dooropen; ELSE udsig<='0' state<=up; END IF; END IF; ELSIF udsig='1' THEN -(预)下降状态时 IF position=1 THEN -电梯在一楼 IF stoplight="00" and uplight='0' and downlight='0' THEN udsig<='0' state<=doorclose; ELSIF stoplight="01" THEN state<=dooropen; ELSIF uplight='1' THEN state<=dooropen; ELSE udsig<='0' state<=up; END IF; ELSIF position=2 THEN-电梯在二楼时 IF stoplight="00" and uplight='0' and downlight='0' THEN udsig<='1' state<=doorclose; ELSIF stoplight="10" THEN state<=dooropen; ELSIF downlight='1' THEN state<=dooropen; ELSE udsig<='1' state<=down; END IF; END IF; END IF;WHEN up=>position<=position+1; pos:=pos+1; IF (pos=2) THEN state<=stop; END IF;WHEN down=>position<=position-1; pos:=pos-1; IF (POS=1) THEN state<=stop; END IF;WHEN stop=>state<=dooropen;WHEN dooropen=>doorlight<='1' clearup<='1' cleardn<='1' state<=wait1;when others=>state<=stopon1; end case; end if;end process cont; butt:PROCESS(reset,anjianclk) -设定按键BEGIN if reset='1' then stoplight<="00" uplight<='0' downlight<='0' elsif rising_edge(anjianclk) then if clearup='1' then stoplight(position)<='0' uplight<='0' else if up1='1' then uplight<='1' END IF; END IF; if cleardn='1' then stoplight(position)<='0' downlight<='0' else if down2='1'then downlight<='1' end if; end if; if stop1='1' then stoplight(1)<='1' end if; if stop2='1' then stoplight(2)<='1' end if; END IF; END PROCESS butt; END behav; 功能分析:此程序一共有三个进程(process):时钟设定,状态机设定,按键设定。状态机进程的运行基于电梯时钟dianticlk,此时钟为外部时钟的周期是外部时钟周期的十六倍;按键设定进程基于按键时钟anjianclk,此时钟的周期为外部时钟周期的两倍。按键时钟周期比电梯时钟周期短,这就意味着按键设定进程比状态机进程快,这就保证了每一次按键都能扫描并保留而不会被状态机进程中的清零程序消除。一共有7个灯显示电梯的状况:stoplight12、uplight,downlight、udsig、POSITION12、doorlight。电梯的初始状态是停在一楼,门关。复位键reset可实现电梯的初始功能。电梯在一楼时,position1=1,其灯亮,并且电梯一直保持预上升状态,udsig=1,其灯亮。当接到一楼外部请求信号(up1)时,uplight亮,电梯门打开,doorlight亮。四秒后,电梯门关,doorlight灭。这时,只有收到去二楼的请求(stop2)时,才会上二楼,此时stoplight2亮,直到门开为止。若门关时接收到的是stop1的请求,则电梯不上二楼,门开,四秒后门再关闭。当电梯停在二楼是,情况类似。仿真结果如下图:电梯在一楼,乘客在外部按up1请求进入,进入电梯后按stop2请求上二楼电梯在一楼,乘客在外部按up1请求进入,进入电梯后按stop1请求出电梯电梯在二楼,乘客在外部按down2请求进入,进入电梯后按stop1请求下一楼三、课程设计总结本设计是基于VHDL语言开发的两层电梯控制器。以Quartus 为开发环境,最终在EDA实验箱上实现其演示的基本功能。其功能包括:显示电梯当前所在楼层,显示有请求发生的楼层,响应楼层请求,关门延时设置,电梯开关门显示。这个课程设计还有很多不足之处:1、电梯各个进程依赖于3个不同的时钟,这样做虽然比较精确但是显得有些多余,经老师的指导后发现其实除了开关门过程时需要时钟以外其他地方不用时钟也没有关系。2、没有考虑到消抖问题。3、电梯控制程序只实现了两层楼电梯的控制,这种电梯在现实生活中应用很少,而且此程序不方便向更多层电梯控制器程序扩展。本课程设计遇到了不少困难,主要原因是由于平时学习没有特别系统认真,所以对VHDL语言没有熟练掌握,很多语句的具体含义和应用都不是很了解,编程时遇到一定的困难。我是第一次接触这种EDA实验箱,第一次设计一个完整的程序然后连线运行,这个过程让我感受到了动手做实验的乐趣。很感谢老师的悉心教导和同学的热心帮助,让我比较顺利的做出了这个课程设计。通过这次课程设计,我深刻了解到光学会课本上的知识没有用,还要运用到实践中,考试100分不代表就能熟练掌握这项技术。四、参考文献侯伯亨,刘凯,顾新 . VHDL硬件描述语言与数字逻辑电路设计(第三版). 西安电子科技大学出版社 . 2009曾繁泰,陈美金 . VHDL数字系统设计 . 清华大学出版社 . 2001曾繁泰,陈美金 . VHDL程序设计 . 清华大学出版社 . 2001

    注意事项

    本文(EDA课程设计电梯控制的实现.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开