- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数电实验报告——VHDL电梯控制器
数字电路与逻辑设计
实验报告
班级: 2010211111班
姓名:冯乐天
班内序号:01号
学号
北 京 邮 电 大 学
Beijing University of Posts and Telecommunications
简易三层电梯控制器
设计课题的任务要求
基本要求:
电梯设有一层、二层外部呼叫按钮和内部一层、二层指定按钮(BTN);
利用数码管显示电梯所在楼层,用LED显示电梯运行状态如上行、下行、开门、关门等。
提高要求:
点阵显示楼层;
用点阵显示楼层的上下滚动移出移入表示电梯的上行或下行运行方向;
增加为三层电梯控制器。
系统设计(包括设计思路、总体框图、分块设计)
设计思路:
这个电梯控制器的核心是数字电路的状态转移思想。我将三层电梯的状态划分为一层(S0),二层上(S1),二层下(S2),三层(S3)四种,根据不同的输入进行状态转移,实现电梯的上下运行这一功能。而对于开关门状态,则放在对楼层(position)和按键(inside, outside)识别之后,状态转移之前,这样大幅减少了程序所需的状态数量,提高了代码的效率。
下面我将根据程序的输入、输出和运行对程序的设计思路做一个简要的介绍:
输入:
程序的输入端口有时钟(clk)、复位(reset)、内部按键(inside)和外部按键(outside)。
时钟(clk)提供系统所需的时钟频率,是程序正常运行,复位(reset)能够使程序在异常状态下初始化,主要是为了方便在硬件上调试而设置的;
内部按键(inside)为3位逻辑向量,对应实际电梯内部的按键1、2、3层按钮;
外部按键(outside)为4位逻辑向量,对应实际电梯外部1层上、2层上、2层下和3层下按钮。
输出:
程序输出端口有方向(direction)、内部按键灯(inlight)、外部按键灯(outlight)、楼层显示数码管(legout)和状态显示点阵(rowo、colo)。
方向(direction)这个输出端口是起初没有实现点阵时使用的,最后完成时,可以采用单独的led显示,也可整合在状态显示点阵(rowo、colo)的功能中;
内部按键灯(inlight)和外部按键灯(outlight)是对输入端内部按键(inside)和外部按键(outside)的实时显示端口,表示现在又那些按钮被按下;
楼层显示数码管(legout)用来显示当前楼层;
状态显示点阵(rowo、colo)用来显示停留时开、关门状态,以及电梯的上升下降状态。
运行过程:
电梯状态判断的进程:
接通电源后,电梯进行初始化,将有关信号置0;
然后对输入端口进行读取,将按键(inside、outside)赋给对应信号(inside_var、outside_var);
根据当前状态信号(current_state)判断当前位置,再根据按键信号(inside_var、outside_var)与楼层信号(position)的关系判断进一步操作;
例如:电梯处于2层上状态时,先后进行如下判断,若不成立进行下一判断——若内部2层按键或外部2层上按键被按下,则停留开门然后关门;若内外部3层按键被按下,那么确定下一个状态(next_state)为3层;若内外部1层按键或外部2层下按键被按下,那么确定下一个状态(next_state)为2层下;若所有按键均不被按下,则停留不开门,即确定下一个状态(next_state)为2层上。
循环c。
状态转换(即电梯上下行)的进程:
每隔一段时间将下一个状态(next_state)赋给当前状态(current_state)。
显示进程:
将程序中的信号赋给对应的输出端口,实现电梯位置、电梯运行状态、按键状态等的实时输出。
总体框图:
分块设计:
仿真波形及波形分析
输入按键,对应的按键灯亮
示例:电梯在一层时,输入电梯内部三层按键(inside(2)=1),按键灯亮(inlight(2)=0),方向变为向上(direction=1),电梯一次从一层上升到二层(position=2),再从二层上升到三层(position=3),门开(door=1),延迟(状态保持不变),门关(door=0),电梯三层内部按键灯灭(inlight(2)=0),之后无输入,故保持在三层关门状态。
源程序(要有注释)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.all;
USE IEEE.STD_LOGIC_ARITH.all;
USE IEEE.STD_LOGIC_UNSIGNED.all;
ENTITY elevator IS
PORT(
clk: IN STD_LOGIC;
reset: IN STD_LOGIC;
您可能关注的文档
最近下载
- 人工智能背景下高校教学模式改革研究.docx VIP
- 部编版三年级语文下册期末《非连续性文本阅读》专项精选试卷-附答案.doc VIP
- 人工智能背景下的职业教育混合教学模式构建与实施.docx VIP
- 湖北省武汉市2025届高中毕业生四月调研考试政治试题及答案(武汉四调).pdf
- Unit5大单元教学设计 人教版八年级英语下册.pdf
- 陕西财政云单位核算系统使用手册.docx
- 【营销策划】2024奥迪品牌技巧分析中英双版.pptx
- 肥胖诊疗门诊建设专家指导意见(2024年版).pdf
- 2024奥迪品牌技巧分析中英双版.pdf
- 2024 奥迪分析 : 奥迪品牌、技巧、平台等奥迪分析师日 2024.pdf
文档评论(0)