研究生课程设计需要用verilog设计点东西并仿真,确定选题电梯后发现github上相关资源下载都有问题,我们组就自己写了一个八层电梯(地上七层,地下一层),有需要的可以自取。
https://download.csdn.net/download/qq_33917270/87392523?spm=1001.2014.3001.5503
先放个仿真图,感兴趣的可以再接着看

upf:向上按键 downf:向下按键 outfloor:电梯当前到达楼层 open:当前楼层是否开门

上述仿真的情况为
开始时向上按键 upf[7:0]=8’b01000100,向下按键downf[7:0]=8’b00000000
当电梯在4楼到5楼时电梯请求更新为upf[7:0]=8’b01100000,downf[7:0]=8’b00000100

也就是开始二楼和六楼按了向上的按键,在二楼开门后继续向上,当到达四楼时五楼按了向上的按键二楼按了向下的按键,电梯依次在五楼六楼开门,与之后调转方向到达二楼开门。

本系统整体用状态机实现,分为向上和向下两个方向。 我以地上一层向上为例,介绍下本系统状态转换的大体思路。

 F1:// for upif(upk)beginif(uph[1]==1) beginopen<=1;if(uph==8'b00000010)beginuph[1] <= 0;nxt_floor<=F1;outfloor<=1;endelse if(uph>8'b00000011)beginuph[1] <= 0;nxt_floor<=F2;outfloor<=1;endelsebeginuph[1] <= 0;upk=0;downk=1;downh[0]=1;nxt_floor<=F1;outfloor<=1;endendelse beginif(uph > 8'b00000011)beginopen   <=  0;nxt_floor<=   F2;outfloor <=  1;endelse if(uph[0]==1)beginupk=0;downk=1;downh[0]=1;open  <=  1;nxt_floor<=F1;outfloor<=1;endelsebeginnxt_floor<=F1;open<=0;outfloor<=0;upk=0;downk=1;endend end

首先if(upk)判断电梯当前方向,当确认为上时
首先判断当前楼层是否需要开门if(uph[1]==1)
需要开门将open置1,进一步判断整部电梯向上按键是否还有其它请求,若整部电梯只有1楼按向上按键,将uph[1]置0,下一状态仍为地上一层;若二到七层也有向上请求则将uph[1]置0,下一状态为二层;若二到七层无向上请求则代表地下1层有向上请求,将方向变为向下将downh[0]置1进行相应判断。
当前楼层不需要开门时,判断二到七层是否有向上请求有向上请求则下一状态为二层,无向上请求判断地下一层,地下一层有向上请求则将方向变为向下将downh[0]置1进行相应判断,都无向上请求则将方向变为下进行相应判断。
(上文中将downh[0]置1,于更高楼层中通过downh与uph按位异或实现更简单)

感兴趣的同学还是建议自己按思路继续实现,工程文件上传完也会发到文章中。因为赶得比较急,源文件中有几层楼逻辑没有很完善,大家可以按照本文思路修改下。

基于verilog状态机的八层电梯实现相关推荐

  1. 基于单片机的八层电梯设计

    设计简介: 本设计是基于单片机的八层电梯设计,主要实现以下功能: ①可实现通过内机按键和外机按键控制电梯到达楼层 ②可实现通过一个四相步进电机控制电梯升降,另一个四相步进电机控制电梯开关门 ③可实现通 ...

  2. 【单片机毕业设计】【mcuclub-jj-003】基于单片机的八层电梯的设计

    最近设计了一个项目基于单片机的八层电梯系统,与大家分享一下: 一.基本介绍 项目名:八层电梯 项目编号:mcuclub-jj-003 单片机类型:STC89C52.STM32F103C8T6 功能简介 ...

  3. 项目二 基于单片机的八层电梯

    前言:作者想要帮助一些童鞋和爱好者进行项目构建,但自知能力有限,不喜可论,创作不易,勿喷. 系统采用STC89C52芯片进行的电梯模拟控制系统,设计模拟了电梯控制系统基本功能,通过按键选择楼层,数码管 ...

  4. 电梯程序c语言51单片机,基于51单片机的六层电梯控制系统c语言程序.pdf

    #include #define MAXFLOOR 6 //定义一个最大层数为6 层的电梯 unsigned char code LEDCODES[]={0x3f,0x06,0x5b,0x4f,0x6 ...

  5. 基于DE2的VHDL六层电梯控制程序设计

    这学期的课程实践自己写的,看到网上的VHDL电梯控制程序版本的源码都差不多,大家都是抄来抄去,有些人甚至还抄来发论文当毕业设计(搞笑). 所以我把自己写的也发上来,供大家参考参考.嗯,就是这样. 首先 ...

  6. 基于单片机的六层电梯设计

    设计简介: 本设计是基于单片机的六层电梯设计,主要实现以下功能: ①可实现通过内机按键和外机按键控制电梯到达楼层 ②可实现通过一个四相步进电机控制电梯升降,另一个四相步进电机控制电梯开关门 ③可实现通 ...

  7. 八楼电梯的c语言程序,本科毕业设计—电梯自动语音提示系统.doc

    电梯自动语音提示系统 院 系:信息科学与工程学院 专 业 班:电子科学与技术1102班 姓 名: 学 号: 指导教师: 2015年5月 电梯自动语音提示系统 The Elevator Automati ...

  8. 基于S7–1500的单部六层电梯教程(三)

    教程继续更新ing 程序思路讲解 基于S7–1500的单部六层电梯教程(一) 基于S7–1500的单部六层电梯教程(二) 基于S7–1500的单部六层电梯教程(三) 基于S7–1500的单部六层电梯教 ...

  9. 基于S7–1500的单部六层电梯教程(四)

    继续. 程序思路讲解 基于S7–1500的单部六层电梯教程(一) 基于S7–1500的单部六层电梯教程(二) 基于S7–1500的单部六层电梯教程(三) 基于S7–1500的单部六层电梯教程(四) 基 ...

最新文章

  1. 2021年春季学期-信号与系统-第九次作业参考答案-第四小题
  2. Seconds_Behind_Master
  3. shell脚本编程for循环求阶乘_shell脚本编程(完结版).pdf
  4. 使用Project Lombok减少Java应用程序中的样板代码
  5. Android开发学习笔记--一个有界面A+B的计算器
  6. 优秀的SharePoint 2013开发工具有哪些(一)
  7. python 图像处理_Python常用库-Pillow图像处理
  8. File存对象--android 的File存储到SD卡();
  9. 9-12 原生安装4
  10. Matlab2014的下载和安装激活过程
  11. 用ie浏览器签章后保存在桌面显示不出文件
  12. mysql fk_MySQL FK的正确命名约定是什么?
  13. Kubernetes 健康状态检查liveness和readiness
  14. 超简单! 一个标签搞定跑马灯,纯css制作跑马灯效果
  15. IIS7.0 CSS、JS、图片报500错误
  16. Programmers at Work
  17. Windows7 tls加密协议设置导致的邮件收发问题 WLM 0x800CCC0B、0x800CCC0F
  18. quartz原理 java_Quartz原理解密
  19. 2021年广西省安全员C证免费试题及广西省安全员C证考试试卷
  20. PLSQL开发笔记和小结

热门文章

  1. error: You have not concluded your merge (MERGE_HEAD exists).
  2. macOS Monterey推出原生密码管理器,支持手动输入网址及账户
  3. GitHub使用教程详细图解
  4. Camera Hal OEM模块 ---- cmr_grab.c
  5. 《高效团队待人技巧》的读书笔记
  6. WebDay05 JQuery框架
  7. 双亲委派模型以及SpringFactoriesLoader详解(最全最简单的介绍)
  8. uboot下的nand flash驱动分析
  9. 数据分析 - 跨境电商爬虫成长记 之 第三篇:完整的爬虫工作环节有哪些
  10. qgc地面站飞行模式