基于FPGA三层电梯控制器程序—VHDL.docx

基于FPGA三层电梯控制器程序—VHDL.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
library ieee;--库的说明use ieee.std_logic_1164.all;--程序包的说明use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity threelift is --实体port(buttonclk:in std_logic;--按键时钟信号liftclk:in std_logic;--reset:in std_logic;--电梯时钟信号异步复位端口f1upbutton:in std_logic;-- f2upbutton:in std_logic;-- f2dnbutton:in std_logic;--f3dnbutton:in std_logic;--一层上升恳求端口二层上升恳求端口二层下降恳求端口三层下降恳求端口fuplight:buffer std_logic_vector(3 downto 1);--fdnlight:buffer std_logic_vector(3 downto 1);--上升恳求寄存信号下降恳求寄存信号 library ieee;-- 库的说明 use ieee.std_logic_1164.all;-- 程序包的说明 use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity threelift is -- 实体 port(buttonclk:in std_logic;-- 按键时钟信号 liftclk:in std_logic;-- reset:in std_logic;-- 电梯时钟信号 异步复位端口 f1upbutton:in std_logic;-- f2upbutton:in std_logic;-- f2dnbutton:in std_logic;-- f3dnbutton:in std_logic;-- 一层上升恳求端口 二层上升恳求端口二层下降恳求端口 三层下降恳求端口 fuplight:buffer std_logic_vector(3 downto 1);-- fdnlight:buffer std_logic_vector(3 downto 1);-- 上升恳求寄存信号 下降恳求寄存信号 stop1button,stop2button,stop3button:in std_logic;-- stoplight:buffer std_logic_vector(3 downto 1);-- 停站恳求端口 停站恳求寄存信号 position:buffer integer range 1 to 3;-- 电梯位置信号 doorlight:out std_logic;-- udsig:buffer std_logic);-- end threelift; 开关门信号 电梯模式(上升或下降)信号 architecture art of threelift is-- 结构体 type lift_state is-- 定义十个状态 (stopon1,dooropen,doorclose,doorwait1,doorwait2,doorwait3,doorwait4,up,down,stop); signal mylift:lift_state; signal clearup:std_logic;-- signal cleardn:std_logic;-- begin 上升和停站恳求清除信号 下降和停站恳求清除信号 controlift:process(reset,liftclk)-- 状态机进程 variable pos:integer range 3 downto 1; begin if reset=1 then mylift = stopon1;-- clearup = 0; cleardn = 0; pos:=1; position=1; 异步复位,电梯的初始状态为一层开门状态 else if liftclkevent and liftclk=1 then case mylift is when stopon1 = doorlight = 0; position = 1; pos:=1;mylift = doorwait1;--电梯等待 4swhen doorwait1 = mylift =doorwait2; when doorwait2 =clearup=0; cleardn=0;mylift =doorwait3;when doorwait3 = mylift =doorwait4;when doorwait4 = mylift = doorclose; when doorclose

文档评论(0)

徐老师资料铺 + 关注
实名认证
内容提供者

资料杂货铺

1亿VIP精品文档

相关文档