基于fpga的电梯控制器设计(编辑修改稿)内容摘要:

到达二层( position=2)后停止并开门,待二层使用者进入后再完成第一个使用者的请求到达三层。 当有超载信号时警报指示等亮起,即 q 置 1,电梯将一直在一楼。 当警告信号结束时电梯才正常运行。 图 4 3 一楼到三楼在二楼时接另 一人 图 4 4 有警告信号存在时 课程设计说 明书 10 5 总结 这次 EDA 课程设计虽然时间较短但是收获普丰,使得我对 VHDL 语言的理解与应用能力得到了较大的提升,让我认识到只要深入学习,提升的空间永远是存在的。 在本次课程设计中凸显了我的不足之处,比如软件运用不太熟练,对VHDL 语 言语法有诸多不清楚的认识,使在课程设计中遇到诸多困难。 但是好在通过查阅资料和老师同学的帮助得以解决,使课程设计顺利完成。 用 VHDL硬件描述语言的形式进行数字系统的设计方便灵活,利用 EDA 软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误。 降低了开发成本,这中设计方法必将在未来的数字系统设计中发挥越来越重的作用。 动手实践是理论知识得以灵活运用的必要前提,也是今后走上工作岗位之后能够很好的完成设计工作的技术保证。 只有遇到实际问题并根据自己对课堂上获得的专业知识的理解来解决才能真正的提高自己的能力。 这 也提醒我在平时的学习生活中不能一味埋头于课本知识,当今社会竞争越来越激烈,社会对人才的要求越来越全面,只有理论知识是远远不够的,必须靠实践作支撑。 时间是检验真理的唯一标准这句话在这里同样适用。 想要更加了解 EDA 技术这一领域必然还要经过更多的实践与努力,了解更多的这方面的知识,与时代共同进步,达到学以致用的效果。 再次感谢在本次课程设计中帮助我完成设计的老师与同学们,没有你们的帮助我不能顺利的完成此次课程设计,在这里提前祝老师与同学新年快乐。 课程设计说 明书 11 参考文献 [1].Voknei .《 VHDL 数字电路设计教程》 [M].电子工业出版社, [2].潘松,黄继业 .《 EDA 技术实用教程》(第二版) [M].科学出版社, [3].焦素敏 .《 EDA 应用技术》 [M].清华大学出版社, [4]梁延东主编。 电梯控制技术 [M]。 中国建筑工业出版社, 1997 [5]李鼎培,当前电梯研制开发技术动态 [J],中国电梯, 1995 课程设计说 明书 12 附录 程序代码 LIBRARY IEEE。 USE。 USE。 ENTITY li IS PORT( CLK: IN STD_LOGIC。 reset,warm: IN STD_LOGIC。 Button : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 button(0)为一层外上升请求, button(1)为二层外上升请求 button(2)为二楼外下降请求, Button(3)为三层外下降请求; floor : IN STD_LOGIC_VECTOR(2 DOWNTO 0)。 floor(0)为电梯内一层请求按钮, floor(1)为电梯内二层请求按钮, floor(2)为电梯内三层请求按钮; position : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 position表示电梯当前位置信息。 door : OUT STD_LOGIC。 39。 139。 为开门, 39。 039。 为关门; up_down,q: OUT STD_LOGIC 39。 139。 为上楼, 39。 039。 为下楼; )。 END li。 ARCHITECTURE happen OF li IS TYPE State IS (S0,S1U,S1D,S2)。 S1U为二楼上状态, S1D为二楼下状态; SIGNAL current_state : State。 中间变量:当前状态 SIGNAL next_state : State。 中间变量:下一状态 SIGNAL up : STD_LOGIC。 中间变量:上升下降状态 SIGNAL dor : STD_LOGIC。 中间变量:开门关门状态 BEGIN P1:PROCESS(CLK) 状态转换进程; 课程设计说 明书 13 BEGIN IF CLK39。 EVENT AND CLK=39。 139。 THEN 检测时钟上升沿 if warm=39。 039。 then current_state = next_state。 END IF。 end if。 END PROCESS。 P2:PROCESS(reset,clk,current_state,up,button,floor) VARIABLE button_var: STD_LOGIC_VECTOR( 3 DOWNTO 0)。 VARIABLE floor_var : STD_LOGIC_VECTOR( 2 DOWNTO 0)。 VARIABLE cat : STD_LOGIC。 VARIABLE ca_time : STD_LOGIC_VECTOR(3 DOWNTO 0)。 BEGIN IF reset = 39。 139。 THEN 复位处理,初始状态为一层 next_state = S0。 position = 0001。 cat:=39。 039。 ca_time:=0000。 up=39。 Z39。 dor=39。 039。 button_var( 3 DOWNTO 0):=0000。 floor_var(2 DOWNTO 0):=000。 ELSIF clk39。 event and clk=39。 139。 THEN 若无复位信号,则将外部按钮信号存储到 7个变量之中; IF button(0) =39。 139。 THEN button_var(0):=39。 139。 ELSE NULL。 END IF。 IF button(1) =39。 139。 THEN button_var(1):=39。 139。 ELSE NULL。 END IF。 IF button(2) =39。 139。 THEN button_var(2):=39。 139。 ELSE NULL。 END IF。 IF button(3) =39。 139。 THEN button_var(3):=39。 139。 ELSE NULL。 END IF。 IF floor(0)=39。 139。 THEN floor_var(0):=39。 139。 ELSE NULL。 END IF。 IF floor(1)=39。 139。 THEN floor_var(1):=39。 139。 ELSE NULL。 END IF。 课程设计说 明书 14 IF floor(2)=39。 139。 THEN floor_var(2):=39。 139。 ELSE NULL。 END IF。 IF cat=39。 039。 THEN ca_time:=ca_time+1。 END IF。 开门,关门计时; CASE current_state IS WHEN S0 = 一楼状态处理。 position = 0001。 cat:=39。 039。 IF (button_var(0) or floor_var(0))=39。 139。 THEN CASE ca_time IS WHEN 0011 = dor=39。 139。 WHEN 1101 = dor=39。 039。 button_var(0):=39。 039。 floor_var(0):=39。 039。 IF (floor_var(1) or floor_var(2))=39。 139。 THEN next_state=S1U。 ca_time:=0000。 up=39。 139。 ELSE next。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。