VIVADO三层电梯控制器VHDL代码ego1开发板

这篇具有很好参考价值的文章主要介绍了VIVADO三层电梯控制器VHDL代码ego1开发板。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

名称:VIVADO三层电梯控制器VHDL代码ego1开发板

软件:VIVADO

语言:VHDL

代码功能:

3层电梯控制

(1)电梯运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接升到由下楼请求的最高层,然后进入下降模式。当电梯处于下降模式时则与上升模式相反;

(2)电梯初始状态为一层状态。

(3)每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关;

(4)设有电梯入口处设有位置指示装置及电梯运行模式(上升或下降)指示装置;

(5)电梯到达有停站请求的楼层,电梯门打开,开门指示灯亮,开门3秒后,电梯门关闭(开门指示灯灭)。若按下电梯内开门按钮,则电梯一直处于开门状态,若按下电梯内关门按钮,则电梯立即关门。电梯继续进行,直至执行完最后一个请求信号后停留在当前层;

(6)能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在ego1开发板验证,开发板如下,其他开发板可以修改管脚适配:

vhdl电梯控制系统源代码,fpga开发,电梯,ego1,vivado,VHDL

代码下载:

VIVADO三层电梯控制器VHDL代码ego1开发板名称:VIVADO三层电梯控制器VHDL代码ego1开发板(代码在文末下载)软件:VIVADO语言:VHDL代码功能:3层电梯控制(1)电梯运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接升到由下楼请求的最高层,然后进入下降模式。当电梯处于下降模式时则与上升模式相反;(2)电梯初始状态为一层状态。(3)http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=317

1. 工程文件

vhdl电梯控制系统源代码,fpga开发,电梯,ego1,vivado,VHDL

2. 程序文件

vhdl电梯控制系统源代码,fpga开发,电梯,ego1,vivado,VHDL

vhdl电梯控制系统源代码,fpga开发,电梯,ego1,vivado,VHDL

3. 程序编译

vhdl电梯控制系统源代码,fpga开发,电梯,ego1,vivado,VHDL

4. 管脚分配

vhdl电梯控制系统源代码,fpga开发,电梯,ego1,vivado,VHDL

5. testbench文件

vhdl电梯控制系统源代码,fpga开发,电梯,ego1,vivado,VHDL

6. 仿真图

vhdl电梯控制系统源代码,fpga开发,电梯,ego1,vivado,VHDL

vhdl电梯控制系统源代码,fpga开发,电梯,ego1,vivado,VHDL

vhdl电梯控制系统源代码,fpga开发,电梯,ego1,vivado,VHDL

部分代码展示:文章来源地址https://www.toymoban.com/news/detail-766366.html

-- 三层电梯控制模块 
library ieee;
use ieee.std_logic_1164.all;
entity lift_ctrl is
port(
 clk:in std_logic;--1KHz
 up1,up2,down2,down3:in std_logic;--梯外按键,
 floor1,floor2,floor3:in std_logic;--梯内按键,
     led1,led2,led3:out std_logic;--梯内目的楼层,高电平有效
     door:out std_logic;--开门
 floor_num: out std_logic_vector(2 downto 0)--楼层
 );
end entity lift_ctrl;
architecture behave of lift_ctrl is
type stateTYPE is(c1,c2,c3,open_door);
begin
--电梯控制进程
  process(clk)
  variable up,down,goal:std_logic_vector(3 downto 1):="000";
  variable storey:std_logic_vector(2 downto 0):="000";
  variable mo,x,y,z:std_logic:='0';--mo控制方向,低电平表示上
  variable clk_cnt,time_cnt:integer:=0;
  variable state:stateTYPE:=c1;
  begin
    if clk'event and clk='1' then
      if up1='1' then up(1):='1';--按键低电平有效,信号存入up
      end if;
      if up2='1' then up(2):='1';--按键低电平有效,信号存入up
      end if;
      if down3='1' then down(3):='1';--按键低电平有效,信号存入down
      end if;
      if down2='1' then down(2):='1';--按键低电平有效,信号存入down
      end if;
      if floor1='1' then goal(1):='1';--按键低电平有效,信号存入goal
      end if;
      if floor2='1' then goal(2):='1';--按键低电平有效,信号存入goal
      end if;
      if floor3='1' then goal(3):='1';--按键低电平有效,信号存入goal
      end if;
      if clk_cnt<1000 then clk_cnt:=clk_cnt+1;--计数
      else
case state is
when c1=>--1楼
  storey:="001";
  if up="000" or down="000" or goal="000" then storey:="001";--没有输入,保持1楼
  end if;
              if goal(1)='1' or up(1)='1' then--1楼按键按下
                state:=open_door;--开门
                goal(1):='0';up(1):='0';--清信号
              elsif up(2)='1' or goal(2)='1' then--2楼上按键按下
                state:=c2;--2楼
              elsif down(3)='1' or goal(3)='1' then--3楼按键按下
                state:=c2;--先上2楼
                x:='1';--标志位
              elsif down(2)='1' then---2楼下按键按下
                state:=c2;--上2楼
                mo:='1';--目的是下
              end if;
--    end if;
when c2=>
  storey:="010";--2楼
  if mo='0' then--目的是上
if goal(2)='1' or up(2)='1' then--目的地是2楼
state:=open_door;goal(2):='0';up(2):='0';--开门,清数据
elsif down(3)='1' or goal(3)='1' or x='1' then--目的是3楼
state:=c3;x:='0';--上三楼,清标志
elsif down(2)='1' or up(1)='1' or goal(1)='1' then--目的是1楼
mo:='1';--目的是下
end if;
  else--目的是下
if goal(2)='1' or down(2)='1' then--目的地是2楼
state:=open_door;goal(2):='0';down(2):='0';--开门,清数据
elsif up(1)='1' or goal(1)='1' or y='1' then--目的是1楼
state:=c1;y:='0';--去1楼,清标志
elsif up(2)='1' or down(3)='1' or goal(3)='1' then--目的是3楼
mo:='0';--目的是上
end if;
  end if;
when c3=>--3楼

到了这里,关于VIVADO三层电梯控制器VHDL代码ego1开发板的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DDR3 控制器 MIG IP 详解完整版 (VIVADO&Verilog)

    DDR系列文章分类地址: (1)DDR3 基础知识分享 (2)DDR3 控制器 MIG IP 详解完整版 (AXI4VivadoVerilog) (3)DDR3 控制器 MIG IP 详解完整版 (nativeVivadoVerilog) (4)基于 DDR3 的串口传图帧缓存系统设计实现 (5)基于 DDR3 的native接口串口局部传图缓存系统设计实现 (6)基于 DDR3 的

    2024年02月06日
    浏览(80)
  • 【FPGA】十三、Vivado MIG IP核实现DDR3控制器(1)

    文章目录 前言 一、DDR3基础知识 二、MIG  IP核的配置 三、DDR3 IP核用户端接口时序 1、DDR3 IP核接口说明 2、DDR3 IP核读写时序 ① 写命令时序:  ② 写数据时序:  ③ 读数据时序: 总结         我们在进行FPGA开发应用当中,经常会用到存储器来保存数据,常用的存储器有RO

    2024年02月16日
    浏览(77)
  • DDR3 控制器 MIG IP 详解完整版 (native&VIVADO&Verilog)

    DDR系列文章分类地址: (1)DDR3 基础知识分享 (2)DDR3 控制器 MIG IP 详解完整版 (AXI4VivadoVerilog) (3)DDR3 控制器 MIG IP 详解完整版 (nativeVivadoVerilog) (4)基于 DDR3 的串口传图帧缓存系统设计实现 (5)基于 DDR3 的native接口串口局部传图缓存系统设计实现 (6)基于 DDR3 的

    2024年02月13日
    浏览(70)
  • DDR3 控制器 MIG IP 详解完整版 (AXI4&VIVADO&Verilog)

    DDR系列文章分类地址: (1)DDR3 基础知识分享 (2)DDR3 控制器 MIG IP 详解完整版 (AXI4VivadoVerilog) (3)DDR3 控制器 MIG IP 详解完整版 (nativeVivadoVerilog) (4)基于 DDR3 的串口传图帧缓存系统设计实现 (5)基于 DDR3 的native接口串口局部传图缓存系统设计实现 (6)基于 DDR3 的

    2024年02月11日
    浏览(48)
  • 【抗扰PID控制】干扰抑制PID控制器研究(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码、Simulink、文

    2024年02月11日
    浏览(59)
  • 微波炉控制器Verilog代码Quartus仿真

    名称:微波炉控制器Verilog代码Quartus仿真(文末获取) 软件:Quartus 语言:Verilog 代码功能: 微波炉控制器 用芯片Altera Cyclone IV FPGA作为控制芯片,实现时间设置、温度设定、火力选择、声音提示,在硬件组成上,涉及到电源供电、按键输入、数码管显示、指示灯提示等。 由按

    2024年01月20日
    浏览(64)
  • 基于FPGA的电风扇控制器verilog,视频/代码

    名称:基于FPGA的电风扇控制器verilog 软件:QuartusII 语言:Verilog 代码功能: 基于FPGA的电风扇控制器  运用 EDA SOPO实验开发系统设计一个基于FPGA的电风扇定时开关控制器,能实现手动和自动模式之间的切换。要求:  (1)KI为电源开关由电源开关控制电风扇的开关,即当K1为高电平“

    2024年02月07日
    浏览(53)
  • 【GUI】使用PID控制器进行台式过程控制实验,以保持热敏电阻的温度(Matlab代码实现)

    目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码、操作说明 本实验是温度控制的反馈控制应用。特别是,本实验讲解: 手动和自动控制的区别 生成动态数据的 步进测试 拟合动态数据以构建简单的一阶加死区时间 (FOPDT) 模型 从标准调整规则 获取 PID 控制的 参数

    2024年02月15日
    浏览(48)
  • 多路彩灯控制器LED流水灯花型verilog仿真图视频、源代码

    名称:多路彩灯控制器LED流水灯花型verilog 软件:Quartus 语言:Verilog 代码功能:      用quartus和modelism,设计一个多路彩灯控制器,能够使花型循环变化,具有复位清零功能,并可以选择花型变化节奏。具体要求如下:  1)彩灯控制器由16路发光二极管构成,当控制开关打开时

    2024年02月04日
    浏览(52)
  • 为建筑物的供暖系统实施MPC控制器的小型项目(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 ​目前,

    2024年02月07日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包