EDA电梯控制器课程设计报告

合集下载

EDA课程设计(电梯)

EDA课程设计(电梯)

课程设计(综合实验)报告( 2010 -- 2011 年度第 1 学期)名称:EDA课程设计题目:电梯控制的实现院系:班级:学号:学生姓名:指导教师:设计周数:1周成绩:日期:年月日一、课程设计的目的与要求用Mealy有限状态机设计二个楼层电梯控制程序。

用VHDL语言写出Mealy有限状态机控制模块。

Mealy有限状态机的输出受控于当前的状态和信号输入的变化,一旦这敏感信号被测,输出的信号就依赖于它们得到确定。

电梯控制器的工作原理:当电梯空闲时,其状态等待着其他楼层的请求,一旦有请求输入信号,电梯移动到该请求信号的楼层,这时引起电梯门被关闭。

引起电梯门关闭的条件有如下二个:①必须在地面楼层状态StateGround;②首层有请求输入信号ReqFirst。

电梯开始移动到请求层,在移动过程中State从Ground转变为GoingFirst。

当到达请求层后,电梯门被打开并且请求灯熄灭,此状态转换为First状态。

这时如有其他楼层请求信号输入将引起电梯门的关闭(如地面层有楼层请求信号ReqGround)。

当电梯门正在做关闭动作时,同时又要做重新打开电梯门的动作,其条件必须有当前楼层请求信号ReqFirst输入(其他请求信号均被忽略)。

电梯门关闭以后,电梯可再次响应其他楼层请求,即这时电梯State状态为First状态,并且又从地面层来一个请求信号ReqGround,将会引起电梯State状态从First状态改变为GoingGround状态,电梯开始往下运行。

在未到达目的地之前,其他请求信号均被忽略。

二、设计正文本设计是基于VHDL语言开发的两层电梯控制器。

以Quartus Ⅱ为开发环境,最终在EDA实验箱上实现其演示的基本功能。

其功能包括:显示电梯当前所在楼层,显示有请求发生的楼层,响应楼层请求,关门延时设置,电梯开关门显示。

具体描述为:1、电梯外部有请求开关,一楼一个,二楼一个;电梯内部有乘客到达层次的请求开关。

电梯控制器课设报告

电梯控制器课设报告

SPOC/EDA综合课程设计——电梯控制器设计目录第一章设计的性质与目的 (2)第二章设计任务与要求 (3)第三章方案选择与论证 (4)第四章设计原理 (5)4.1 原理图 (5)4.2 流程图 (5)4.3 结构框图 (6)4.4 程序描述 (6)第五章部分时序仿真图 (15)5.1 电梯上锁 (15)5.2 电梯报警 (15)5.3 电梯超载 (15)5.4 电梯运行模拟 (16)5.5 电梯开门延时模拟 (18)5.6 电梯紧急开门 (19)第七章调试过程中出现的问题及解决措施 (20)第八章设计总结 (21)8.1 设计方案的优缺点比较 (21)8.2 心得体会 (22)作者:吴鑫自动化071 29号第一章设计的性质与目的SOPC/EDA综合课程设计是继《EDA技术及应用》和《数字电子技术》课程之后开出的实践环节教学。

目的是训练学生综合运用学过的《数字电子技术》和《EDA技术及应用》的基本知识,培养独立设计比较复杂的数字逻辑系统的能力。

设计工作建立在硬件和软件两个平台的基础上。

硬件平台是可编程逻辑器件,所选的器件可保证在一片芯片上设计出题目要求的数字电路系统。

软件平台是ALTERA公司的Quartus II。

通过课程设计,学生要掌握使用EDA(电子设计自动化)工具设计数字逻辑的方法,包括设计输入、编译、软件仿真、下载和硬件仿真等全过程。

SPOC/EDA综合课程设计——电梯控制器设计第二章设计任务与要求1.设计一个4层电梯全自动控制电路。

2.电梯运行锁用一按钮代替(开锁上电),低电平可以运行,高电平不能运行。

3.每层电梯入口处设有上行、下行请求按钮,电梯内设有乘客到达层次的停站要求开关,高电平有效。

4.有电梯所处楼层指示灯和电梯上行、下行状态指示灯。

5.电梯到达某一层时,该层指示灯亮,并一直保持到电梯到达另一层为止。

电梯上行或下行时,相应状态指示灯亮。

6.电梯接收到停站请求后,每层运行2秒,到达停站层,停留2秒后门自动打开,开门指示灯亮,开门6秒后电梯自动关门。

EDA课程设计模板

EDA课程设计模板

EDA 课程设计报告书课题名称 基于EDA 的电梯升降控制系统的设计姓 名 *** 学 号 ***** 院、系、部航空工程学院 专 业电子信息科学与技术 指导教师 ***2016年10月28日※※※※※※※※※ ※※ ※※※※ ※※※※※※※※※2013级学生 EDA 课程设计智能数字抢答器的设计1 设计目的(1)熟悉集成电路的引脚安排。

(2)掌握各芯片的逻辑功能及使用方法。

(3)了解面包板结构及其接线方法。

(4)了解数字抢答器的组成及工作原理。

(5)熟悉数字抢答器的设计与制作。

2 设计思路(1)设计抢答器电路。

(2)设计可预置时间的定时电路。

(3)设计报警电路。

(4)设计时序控制电路。

3 设计过程3.1方案论证数字抢答器总体方框图如图1所示。

图 1 数字抢答器框图其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置于“开始”状态,宣布“开始”抢答器工作。

定时器倒计时,扬声器给出声响提示。

选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。

当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。

如果再次抢答必须由主持人再次操作“清除”和“开始”状态开关。

3.2电路设计抢答器电路如图2所示。

图2 数字抢答器电路该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。

工作过程:开关S 置于“清除”端时,RS 触发器的R 端均为0,4个触发器 图 3 可预置时间的定时电路输出置0,使74LS148的ST =0,使之处于工作状态。

当开关S 置于“开始”时,抢答器处于等待工作状态,当有选手将键按下时(如按下S5),74LS148的输出,010012=Y Y Y ,0=EX Y 经RS 锁存后,1Q=1,BI =1,74LS48处于工作状态,4Q3Q2Q=101,经译码显示为“5”。

eda课课程设计电梯

eda课课程设计电梯

eda课课程设计电梯一、教学目标本课程的教学目标是使学生掌握eda课程的基本知识和技能,能够运用所学知识分析和解决实际问题。

具体分为以下三个部分:1.知识目标:学生需要掌握eda课程的基本概念、原理和方法,包括数据的采集、处理、分析和可视化等。

2.技能目标:学生需要能够运用eda课程的知识,进行数据的处理和分析,能够独立完成数据分析的项目。

3.情感态度价值观目标:学生通过学习eda课程,能够培养对数据的敏感性和好奇心,形成积极探究数据背后信息的意识。

二、教学内容本课程的教学内容主要包括eda课程的基本概念、原理和方法。

具体包括以下几个部分:1.数据的采集:介绍数据采集的基本方法,包括问卷、实验设计等。

2.数据的处理:介绍数据处理的基本方法,包括数据的清洗、转换和整合等。

3.数据分析:介绍数据分析的基本方法,包括描述性统计、推断性统计和机器学习等。

4.数据可视化:介绍数据可视化的基本方法,包括图表的绘制和信息的呈现等。

三、教学方法本课程的教学方法主要包括讲授法、案例分析法和实验法。

具体包括以下几个部分:1.讲授法:通过讲解和演示,使学生掌握eda课程的基本概念、原理和方法。

2.案例分析法:通过分析实际案例,使学生能够运用所学知识分析和解决实际问题。

3.实验法:通过实验操作,使学生能够亲手处理和分析数据,提高学生的实践能力。

四、教学资源本课程的教学资源主要包括教材、参考书、多媒体资料和实验设备。

具体包括以下几个部分:1.教材:选用权威、实用的教材,为学生提供基本的学习资料。

2.参考书:推荐一些相关的参考书,丰富学生的知识体系。

3.多媒体资料:制作精美的多媒体课件,提高学生的学习兴趣。

4.实验设备:配置齐全的实验设备,为学生提供实践操作的机会。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。

1.平时表现:通过观察学生在课堂上的参与程度、提问和回答问题的情况,了解学生的学习态度和理解能力。

EDA电梯控制器设计

EDA电梯控制器设计

EDA技术综合课程设计课程:EDA技术综合课程设计题目:电梯控制器所属院系:电气工程学院专业班级:自控1304班姓名:王军学号:1317014092 指导老师:张立众完成地点:陕西理工学院目录1.设计任务 (2)2.可选器材 (2)3.设计框图 (2)4.设计思路 (4)5.引脚分配 (5)6程序清单 (9)7.主控模块仿真 (16)8.问题及改进 (17)9.总结及感受 (18)10.参考文献 (19)一.[设计任务]1、设计一个三层的电梯控制器。

2、用数码管显示电梯所在的楼层号,电梯初始化后状态在第一层楼。

3、每层电梯外都有上下楼请求开关,电梯内部有到各楼层的请求开关及紧急故障开关;用数码管显示上行或下行状态,用发光二极管显示是否有紧急情况。

4、电梯每秒升(降)一层,电梯到达有停站请求的楼层后,经1秒电梯开门,开门指示灯亮,开门4秒后指示灯灭,关门,电梯继续运行。

5、当电梯被锁定或发生紧急情况后,电梯停止运行,直到解除锁定或紧急故障后才可以从停止时的状态继续运行。

6、当电梯处于上升状态时,只响应比电梯所在位置高的上楼请求信号,直到最后一个上楼请求执行完毕,再进入下降模式;同理,电梯处于下降状态时,只响应比电梯所在位置低的下楼请求信号,直到最后一个下楼请求执行完毕,再进入上升模式。

二.[可选器件]1.计算机组成/ISP实验箱一台(含电源)2.电源线一根FPGA/CPLD下载板一块(或多块,可选)(其中下载版选择以下型号Cyclone EP1C6Q240C8)3.并行口下载电缆一根4.电压表棒一付5.实验指导书一份6.配套集成电路芯片若干三.[设计框图]系统主要分为:主控制模块control,包含状态机,控制电梯的运行及状态转换;消抖模块unshake,消除开关电路的抖动现象,确保逻辑的正确性;显示模块display,内含译码功能,配合控制器显示电梯的工作状态。

模块框图见图1,总体框图详见图2。

eda课程设计电梯

eda课程设计电梯

eda课程设计电梯一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握电梯的基本原理、结构和工作方式,了解电梯的安全使用和维护知识。

技能目标要求学生能够运用所学知识进行电梯的简单设计和分析,提高学生的工程实践能力。

情感态度价值观目标要求学生培养对电梯工程技术的兴趣和热情,增强对工程技术的敬畏之心。

通过对学生的特点和教学要求的分析,我们将课程目标分解为具体的学习成果。

首先,学生需要理解并能够描述电梯的基本原理和结构,包括电动机、控制系统、电梯门等关键部分的作用。

其次,学生需要掌握电梯的工作方式,能够分析电梯的运行过程和故障原因。

再次,学生需要了解电梯的安全使用和维护知识,能够进行简单的电梯故障排查和修复。

最后,学生需要通过实际操作和案例分析,提高自己的工程实践能力,培养对电梯工程技术的兴趣和热情。

二、教学内容根据课程目标,我们选择和了以下教学内容。

首先,介绍电梯的基本原理,包括电动机的工作原理、控制系统的功能等。

然后,讲解电梯的结构,包括轿厢、对重、导向系统、门系统等部分的作用和设计要求。

接着,讲解电梯的工作方式,包括电梯的启动、运行、停止过程以及故障原因分析。

此外,还讲解电梯的安全使用和维护知识,包括电梯的故障排查、修复方法等。

最后,通过实际操作和案例分析,让学生亲身参与电梯的设计和分析,提高学生的工程实践能力。

三、教学方法为了实现课程目标,我们选择了一系列合适的教学方法。

首先,采用讲授法,由教师讲解电梯的基本原理、结构和工五、教学评估为了全面反映学生的学习成果,我们设计了一系列评估方式。

首先,通过平时表现评估学生的课堂参与度和学习态度。

其次,通过作业评估学生的理解和应用能力,要求学生完成电梯设计、分析等实际任务。

最后,通过考试评估学生的综合运用能力和复习效果。

这些评估方式应客观、公正,能够全面反映学生的学习成果。

六、教学安排教学安排规定了教学进度、教学时间和教学地点等。

EDA技术 电梯

EDA技术 电梯

EDA技术与实践综合实验报告题目名称:电梯控制器的设计作者所在系部:电子工程系作者所在专业:电子工艺与管理作者所在班级:作者姓名:作者学号:22号指导教师姓名:完成时间:2012年6月北华航天工业学院电子工程系制综合实验任务书摘要随着社会的发展。

使用电梯越来越普遍,已从原来只在商业大厦、宾馆过渡到在办公室、居民楼等多种建筑中,并且对电梯功能的要求也不断提高,其相应控制方式也在不断发生变化。

电梯的微机化控制主要有:PLC控制、单板机控制、单片机控制、单微机控制、多微机控制和人工智能控制等。

随着EDA技术的高速发展,电子系统设计技术和工具发生了深刻的变化,大规模可编程逻辑器件FPGA的出现,给设计人员带来了诸多的方便。

VHDL语言是随着可编程逻辑器件( PLD)发展起来的一种硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口,是电子设计自动化(EDA)的关键技术之一。

它采用一种自上而下的设计方法,即从系统总体要求出发进行设计。

本文介绍了以Altera公司可编程逻辑器件为控制核心,采用VHDL语言设计电梯控制器的方法,并进行了QuartusII 软件仿真。

这里使用Altera公司开发的DE2开发板作为目标器件。

采用VHDL语言设计一个四层楼的单个载客箱的电梯控制系统,此控制系统设计有一定的扩展性,而且可以作为更多层电梯控制器实现的基础。

关键词:EDA、VHDL、FPGA、状态机目录一.概述 (1)二.方案设计与论证 (1)1.设计说明 (1)2.设计思想 (1)三.单元模块设计介绍 (2)1.状态机 (2)2.分频器 (3)3.按键扫描模块 (3)4.显示模块 (3)四.程序设计(包括总体原理图或符号、程序、仿真结果和工作原理) (4)1.总体原理 (4)2.程序设计 (4)3.仿真结果 (15)4.工作原理 (17)五.器件编程和硬件调试过程 (17)六.心得体会 (18)参考文献 (18)一.概述本设计是运用状态机方法进行设计的,现的情况的四层楼的电梯。

课程设计EDA电梯控制器

课程设计EDA电梯控制器

目录概述 (1)一、设计任务与要求 (1)二、总体框图 (2)1.控制器的设计方案‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥•3 2.三层电梯控制器的设计思路‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥•43.三层电梯控制器的模块‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥•4三、选择器件 (4)四、功能模块 (4)1.主控制器模块‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥•5 2.楼层显示模块‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥11 3.状态显示模块‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥14五、总体设计 (15)1.顶层电路原理图‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥16 2.全局仿真结果‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥17 3.管脚分配图‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥18 4.硬件连接及验证情况‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥18六、硬件验证 (18)七、心得体会 (19)三层电梯控制概述电梯的使用越来越普遍,已从原来只在商业大厦、宾馆使用,过渡到在办公室、居民楼等场所使用,并且对电梯功能的要求也不断提高,相应地其控制方式也在不停地发生变化。

对于电梯的控制,传统的方法是使用继电器——接触器控制系统进行控制,随着技术的不断发展,微型计算机在电梯控制上的应用日益广泛,现在已进入全微机化控制的时代。

电梯的微机化控制主要有以下几种形式:①PLC控制;②单板机控制;③单片机控制;④单微机控制;⑤多微机控制;⑥人工智能控制。

随着EDA技术的快速发展,CPLD/FPGA已广泛应用于电子设计与控制的各个方面。

本设计就是使用CPLD/FPGA来实现对电梯的控制。

一、设计任务与要求1.每层电梯入口设有上下请求开关,电梯内设有乘客到达层次的停站请求开关。

2.设有电梯所处位置及电梯运行模式(上升或下降)指示装置。

3.电梯3秒升降一层楼的高度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

成绩评定表课程设计任务书摘要随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。

随着技术市场与人才市场对EDA 的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。

因此学好EDA技术对我们有很大的益处。

电梯行业也随着科技的发展,不断地出现在人们生活的各个场所,因此,对电梯控制器的设计是一个很实用的例子,对我们掌握EDA技术的应用也有很大的帮助。

关键词:EDA技术电子信息通信自动控制目录1、设计要求概述 (1)1.1 设计要求 (1)1.2 总体设计思路 (1)1.3 具体设计思路 (2)2、功能模块整体结构设计 (2)2.1 电梯控制器功能 (2)2.2 电梯控制器设计 (3)3、各模块详细设计 (3)3.1底层模块设计 (3)3.2 顶层模块设计 (6)4、逻辑仿真与时序仿真的实现 (12)4.1 底层设计模块的方针及参数设置 (12)4.2 电梯分层控制模块的仿真及参数设置 (13)4.3电梯主控制器仿真波形 (15)5、设计结论 (15)5.1 设计功能实现情况 (15)5.2 设计心得 (16)6、参考文献 (17)1 电梯控制器的设计要求与设计思路1.1 设计要求十层电梯控制器的功能电梯控制器是控制电梯按顾客要求自动上下的装置。

设计要求如下:(1)每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关。

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

(3)电梯每秒升(降)一层楼(4)电梯到达有停站请求的楼层,经过1秒电梯门打开,开门指示灯亮,开门4秒后,电梯门关闭(开门指示灯灭),电梯继续进行,直至执行完最后一个请求信号后停留在当前层。

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

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

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

(7)电梯初始状态为一层开门状态1.2 总体设计思路实验模拟生活中电梯运动控制,电梯总共十层,最简单的控制思想如下: (1)采集用户呼叫楼层,并放入相应的记忆单元中。

(2)不考虑电梯轿厢所在楼层。

若有用户呼叫,电梯上行直到达到用户呼叫最大层,再下行直到到达最低层,由此构成一次行程。

(3)每完成一次行程,检测是否所用用户呼叫均已响应完毕。

如果没有,电梯继续运行,直到响应完所有用户呼叫。

否则,电梯停止运行。

其中用户请求包括外部请求和内部请求。

有外部升降请求信号需点亮相应的外部请求指示灯,内部升降请求信号同外呼。

(4)根据电梯所在楼层,七段数码管显示楼层数。

(5)根据用户运行方向,点亮相应升降指示灯。

(6)当电梯运行到有相应外部呼叫或内部呼叫楼层时,电梯停止运行,灭掉相应的呼叫显示灯,电梯开关门后,继续运行。

1.3 具体设计思路电梯控制可以通过多种方法进行设计,其中采用状态机来实现,思路比较清晰。

可以将电梯等待的每秒钟以及开门,关门都看成一个独立的状态。

由于电梯又是每秒上升或下降一层,所以就可以通过一个统一的一秒为周期的时钟来触发状态机。

根据电梯的实际工作情况,可以把状态机设置10个状态,分别是“电梯停留在1层”,“开门”,“关门”,“开门等待第一秒”,“开门等待第二秒”,“开门等待第三秒”,“开门等待第四秒”,“上升”,“下降”和“停止”状态。

各个状态之间的转换条件可以由上面的设计要求所决定。

2.功能模块整体结构设计2.1 电梯控制器功能本电梯控制器分为主控制器和分控制器。

主控制器是电梯内部的控制器,每个楼层有一个分控制器。

主控制器的功能:(1)完成10个楼层多用户的载客服务控制。

(2)电梯运行时显示电梯的运行方向和所在的楼层。

(3)当电梯到达选择的楼层时,电梯自动开门。

(4)具有提前关电梯门和延时关电梯门的功能。

(5)响应分控制器的有效请求,如果到达有请求的楼层,电梯自动开门。

分控制器的功能:(1)显示电梯的运行状态和所在的楼层。

(2)显示乘客的上升和下降请求。

分控制器的有效请求原则:(1)电梯处于等待状态时,上升和下降请求都响应。

(2)电梯处于上升状态时,有上升请求的分控制器所在楼层数大于电梯所在的楼层数。

(3)电梯处于下降状态时,有下降请求的分控制器所在楼层数小于电梯所在的楼层数。

2.2 电梯控制器设计控制器的功能模块如图2.1所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。

乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在的楼层数通过译码器译码从而在楼层显示器中显示。

分控制器把有效的请求传给主控的楼层数。

由于分控制器相对简单很多,所以主控制器是核心部分。

图2.1 控制器的功能模块图3.各模块详细设计3.1底层模块设计及参数设置①电梯控制计时模块的源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity counter isport(clk,reset,clr,en:in std_logic;q:out integer range 0 to 8);end;architecture art of counter issignal temp:integer range 0 to 8;beginprocess(clk,reset,clr,en)beginif(clr='1')thentemp<=0;elsif(rising_edge(clk))thenif(reset='1')thentemp<=5;elsif(en='1')thenif temp=5 thentemp<=temp;elsetemp<=temp+1;end if;end if;end if;end process;q<=temp;end art;②电梯每层的分控制器源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity layercontrol isport(clk,switch,upkey,downkey,opendoor:in std_logic;qin: in std_logic_vector(10 downto 1);ur,dr:out std_logic;disp1:out std_logic_vector(3 downto 0));end;architecture art of layercontrol isconstant id:std_logic_vector(10 downto 1):="0000001000";signal upkey_data:std_logic;signal downkey_data:std_logic;signal opendoor1:std_logic;signal opendoor2:std_logic;signal req_opendoor:std_logic;signal req_upr:std_logic;signal req_downr:std_logic;signal disp:std_logic_vector(3 downto 0);beginprocess(clk)beginif rising_edge(clk)thenupkey_data<=upkey;downkey_data<=downkey;opendoor2<=opendoor1;opendoor1<=opendoor;end if;end process;req_opendoor<=(opendoor1 and not(opendoor2));process(switch,clk)beginif(switch='0')thenreq_upr<='0';req_downr<='0';elsif(rising_edge(clk))thenif(req_opendoor='1' and qin=id)thenreq_upr<='0';req_downr<='0';elsif(upkey='1' and upkey_data='0')thenreq_upr<='1';elsif(downkey='1' and downkey_data='0')then req_downr<='1';end if;end if;end process;ur<=req_upr;dr<=req_downr;with qin selectdisp<="0001" when "0000000001","0010" when "0000000010","0011" when "0000000100","0100" when "0000001000","0101" when "0000010000","0110" when "0000100000","0111" when "0001000000","1000" when "0010000000","1001" when "010*******","1010" when "1000000000","0000" when others;disp1<=disp;end art;3.2顶层模块设计10层全自动电梯控制器顶层模块源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity elevator10 isport(clk:in std_logic; --时钟信号switch:in std_logic; --电梯电源开关,高电平时电梯正常工作close:in std_logic; --强制关门信号,高电平时电梯门立即关闭delay:in std_logic; --延时信号sel:in std_logic_vector(10 downto 1); --楼层选择信号uplift:in std_logic_vector(10 downto 1); --电梯上升请求输入信号downlift:in std_logic_vector(10 downto 1); --电梯下降请求输入信号qout:out std_logic_vector(10 downto 1); --电梯状态显示输出信号opendoor:out std_logic); --强制开门信号end;architecture art of elevator10 iscomponent counterport(clk,reset,clr,en:in std_logic;q:out integer range 0 to 8);end component;type state_type is(up,m_up,down,m_down,stop,pause);signal state:state_type; --电梯的各种状态signal clk1:std_logic; --1Hz时钟信号signal clk4:std_logic; --4Hz时钟信号signal req_up:std_logic; --上升请求信号signal req_down:std_logic; --下降请求信号signal runen:std_logic; --电梯运行使能signal runclr:std_logic; --电梯运行复位signal stopen0:std_logic; --电梯停止使能signal stopen1:std_logic;signal stopclr:std_logic; --电梯停止复位signal req_upr:std_logic_vector(10 downto 1); ---上升请求寄存器信号signal req_downr:std_logic_vector(10 downto 1); --下降请求寄存器信号signal position:std_logic_vector(10 downto 1); --电梯当前位置信号signal uplift_data:std_logic_vector(10 downto 1); --上升楼层数据显示信号signal downlift_data:std_logic_vector(10 downto 1); --下降楼层数据显示信号signal sel_data:std_logic_vector(10 downto 1); --选择楼层数据显示信号signal runtime: integer range 0 to 8; --电梯运行时间signal opentime:integer range 0 to 8; --电梯开门时间signal openagain:std_logic; --电梯再次开门信号signal voidreset:std_logic; --电梯超载复位信号beginqout<=position;p0:process(clk)variable cnt0:integer range 0 to 4;beginif rising_edge(clk)thenif cnt0=4 thenclk4<='1';cnt0:=0;elseclk4<='0';cnt0:=cnt0+1;end if;end if;end process;p1:process(clk4)variable cnt1:integer range 0 to 3;beginif rising_edge(clk4)thenif cnt1=3 thenclk1<='1';cnt1:=0;elseclk1<='0';cnt1:=cnt1+1;end if;end if;end process;p2:process(switch,clk,uplift,downlift)beginif rising_edge(clk)thenuplift_data<=uplift;downlift_data<=downlift;sel_data<=sel;if state=pause thenreq_upr<=req_upr and not(position);req_downr<=req_downr and not(position);if(uplift/=uplift_data and req_up/='1' and position>uplift)then req_downr<=(req_downr or uplift);elsif(downlift/=downlift_data and req_up/='1' and position>downlift)then req_downr<=(req_downr or downlift);elsif(uplift/=uplift_data and req_down/='1' and position<uplift)thenreq_upr<=(req_upr or uplift);elsif(downlift/=downlift_data and req_down/='1' and position<downlift)then req_upr<=(req_upr or downlift);elsif(sel/=sel_data)thenif(sel<position and req_up/='1')thenreq_downr<=(req_downr or sel);elsif(sel>position and req_down/='1')thenreq_upr<=(req_upr or sel);end if;end if;elsif(state=up or state=m_up)thenif(uplift/=uplift_data and req_down/='1' and position<uplift)thenreq_upr<=(req_upr or uplift);end if;elsif(state=down or state=m_down)thenif(downlift/=downlift_data and req_up/='1' and position>downlift)thenreq_downr<=(req_downr or downlift);end if;end if;end if;end process;req_up<='1' when req_upr/="0000000000" else '0';req_down<='1' when req_downr/="0000000000"else '0';p3:process(switch,clk)beginif(switch='0')thenstate<=stop;opendoor<='0';openagain<='1';elsif rising_edge(clk) thencase state iswhen stop=>state<=pause;when pause=>if((opentime=0 and openagain='0' and (req_up='1'or req_down='1'))or(uplift/=uplift_data and position=uplift)or(downlift/=downlift_data and position=downlift))thenopendoor<='1';stopclr<='0';stopen1<='1';end if;if(opentime=3 or (openagain='1' and (req_up='1' or req_down='1')))then if(req_up='1')thenstate<=up;opendoor<='0';stopen1<='0';stopclr<='1';openagain<='0';elsif(req_down='1')thenstate<=down;opendoor<='0';stopen1<='0';stopclr<='1';openagain<='0';elsestate<=pause;opendoor<='0';stopen1<='0';stopclr<='1';openagain<='1';end if;end if;when up=>if(runtime=4)thenrunen<='0';runclr<='1';if(position=(req_upr and position))thenstate<=pause;elsestate<=m_up;end if;elserunclr<='0';runen<='1';end if;when m_up=> state<=up;when down=>if(runtime=4)thenrunen<='0';runclr<='1';if(position=(req_downr and position))thenstate<=pause;elsestate<=m_down;end if;elserunclr<='0';runen<='1';end if;when m_down=>state<=down;end case;end if;end process;p4:process(switch,clk4,delay)beginif(switch='0')thenposition<="0000000001"; --电梯电源低电平时,电梯停在第一层elsif(rising_edge(clk4))thenstopen0<=(not(delay)and stopen1);if(runtime=3) thenif(state=up)thenposition<=(position(9 downto 1)&'0');elsif(state=down)thenposition<=('0'&position(10 downto 2));end if;end if;end if;end process;voidreset<='0';run_time:counterport map(clk=>clk4,reset=>voidreset,clr=>runclr,en=>runen,q=>runtime);door_time:counterport map(clk=>clk1,reset=>close,clr=>stopclr,en=>stopen0,q=>opentime);end art;4.逻辑仿真与时序仿真的实现4.1 底层设计模块的方针及参数设置图4-1 电梯控制计时模块仿真波图Q为输出结果,其他参量是输入结果,其参数设置如下:图4-2 clk和en对应的参数图4-3 en对应的参数4.2 电梯分层控制模块的仿真及参数设置图4-4 电梯分控制器仿真图在分层控制模块中,clk,switch,upkey,downkey,opendoor是输入信号,通过人工输入,其参数设置如下:图4-5 clk和switch对应的参数图4-6 upkey和downkey的对应参数图4-7 opendoor的参数4.3电梯主控制器仿真波形图4-3 电梯主控制器仿真波图5 结论5.1 设计功能实现情况对程序进行调试,经计算机仿真分析,结果表明本电梯控制程序实现了以下功能:(1)电梯到达楼层时,能发出指示信号;(2)能指示电梯的运行状态;(3)电梯的门操作具有关门延时功能和立即关门功能;(4)基本能正确响应各楼层的上行和下行请求(各楼层设置上行和下行选择按钮)。

相关文档
最新文档