欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    EDA技术设计课程设计四层电梯的控制.doc

    • 资源ID:4143975       资源大小:413KB        全文页数:25页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    EDA技术设计课程设计四层电梯的控制.doc

    目 录1 引言11.1设计背景11.2设计基础11.2.1 EDA技术介绍11.2.2硬件描述语言(VHDL)介绍21.2.3 MAX+plusII软件介绍22 电梯控制器的具体设计42.1设计目的42.2设计要求42.3设计思路43 三层电梯控制器的综合设计(VHDL语言实现)53.1分析判断53.1.1电梯运行规则53.1.2 程序流程分析93.2程序端口和寄存器说明93.3各模块设计说明103.4具体语句设计说明124 三层电梯控制器调试、仿真和硬件测试134.1程序调试134.2程序波形仿真144.2.1波形输入建立144.2.2电梯运行情况仿真154.2.3电梯功能仿真174.3硬件测试184.3.1引脚锁定184.3.2硬件下载185 结论205.1 设计功能实现情况205.2 设计心得20参考文献21附录221 引言1.1设计背景近年来,随着我国房地产业的持续高速发展,高层建筑越来越多。因此,一种能使人们快速、便捷地到达目的楼层的电梯便应运而生了。分析近几年房地产业的发展趋势,特别是商品住宅的高速发展,将使住宅对电梯的需求量持续攀升。人们对电梯安全性、高效性、舒适性的不断追求也推动了电梯技术的进步。随着电梯技术的发展, 绿色化、低能耗、智能化、网络化、蓝牙技术的电梯成为一段时间内的发展趋势。为保证人们能更安全、更快捷地到达目的楼层,实现人性化的功能,对电梯系统中的控制部分进行优化设计是非常必要。因此这部分的设计也就成了在电梯设计领域里最为核心的技术。为了实现电梯的智能化,可以采用许多方法。它的智能化控制可以有以下几种形式:1.PLC控制;2.单板机控制;3.单片机控制;4.单微机控制;5.多微机控制; 6.人工智能控制。随着EDA技术的快速发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。它是一种实现电子系统或电子产品自动化设计的技术,与电子技术、微电子技术的发展密切相关,并吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。传统单片机设计的电梯控制外围电路复杂,性能不稳定,而采用EDA设计,却拥有电子系统小型化、低功耗、高可靠性、开发过程投资小、周期短等优点,而且还可以通过软件编程对硬件结构和工作方式进行重构,使得硬件设计如软件设计那般方便快捷。本次设计就是应用EDA电子电路技术来设计电梯控制器,从而使用一片芯片就可以实现对电梯的控制的。1.2设计基础EDA技术已成为现代电子设计技术的核心。基于EDA技术上开发的实六层电梯自动控制与目前主流的利用可编程逻辑控制器实现电梯控制紧密相连。硬件描述语言是EDA技术的重要组成部分,VHDL是作为电子设计主流硬件的描述语言。使用VHDL语言进行程序的设计,在MAX+plusII软件上对程序进行编译、仿真。在MAX+plusII平台上的开发具有编程软件具有采自易学易懂的梯形图语言、控制灵活方便、抗干扰能力强、运行稳定可靠等优点。1.2.1 EDA技术介绍EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。利用EDA技术进行电子系统的设计,具有以下几个特点:1.用软件的方式设计硬件;2.用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;3.设计过程中可用有关软件进行各种仿真;4.系统可现场编程,在线升级;5.整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。1.2.2硬件描述语言(VHDL)介绍VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)主要用于描述数字系统的结构,行为,功能和接口3。它于1983年由美国国防部发起创建,由电工和电子工程师协会(the Institute of Electrical and Electronics Engineers)进一步发展并在1987年作为“IEEE 1076”发布。从此,VHDL成为硬件描述语言的业界标准之一。VHDL作为一个规范语言和建模语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。VHDL具有与具体硬件电路无关和设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。1.2.3 MAX+plusII软件介绍MAX+plusII是Altera公司提供的FPGA/CPLD开发集成环境,其界面友好,使用便捷,被誉为业界最易用意学的EDA软件。它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程5。在MAX+plusII平台上进行数字系统的设计过程一般要经过四个阶段4:设计输入、项目编译、项目校验和器件编程。首先根据系统的性能指标进行系统结构设计,对整个系统进行功能划分和模块划分。对各子模块分别进行逻辑设计、编译、仿真与验证。当不满足要求时,重新返回设计输入阶段,修改设计输入。之后将优化结果下载到所选可擦写可编程逻辑器件(Eraserable Programmable Logic Device)芯片中,进行动态仿真。最后则是测试芯片在系统中的实际运行性能。其具体的流程图如图1所示。设计要求设计输入设计编译功能检验时序检验器件编程修改设计图1 MAX+plusII设计流程该方法将问题的解决放在硬件组装之前,既简化了设计过程,又可以减少设备投资,缩短设计周期,增强设计者对设计过程的分析和制造的可控性。2 电梯控制器的具体设计2.1设计目的六层电梯广泛应用在大型的货运之中。其使用便捷,货运周期短,效率高,成本低,对货运事业具有相当的经济价值。在客运上,六层电梯虽然涉及楼层不高,应用范围不大,但就特殊而言,可以为一些上下楼层不方便的人们提供帮助,照顾这些特殊社会群体。因此,在某种层面上说,六层电梯的设计也具有一定的社会价值。2.2设计要求设计的六层电梯控制器实现如下功能:(1)电梯到达楼层时,能发出指示信号(数码管显示楼层号);(2)能指示电梯的运行状态(上行或下行);(3)电梯的门操作具有关门延时设置(当按下梯内关门按钮时立刻响应关门操作,否则延时固定时间后响应关门操作);(4)正确响应各楼层的上行和下行请求(各楼层设置上行和下行选择按钮)。独立设计完成VHDL代码的编写,利用MAX+plusII软件进行编译仿真,软件仿真结果正确(试验各楼层上行或下行请求的各种情况),使用实验室设备,将代码下载到实验板上进行硬件调试,功能正确。通过对电梯控制系统的设计,掌握所学EDA课程的基本知识和对VHDL语言的综合设计应用。通过课程设计,提高设计能力,提高分析解决实际问题的能力,并在设计中了解硬件编程的流程和思路,为以后工作和发挥技术打下基础。2.3设计思路本次设计的电梯控制器采用状态机来实现,思路比较较清晰1。可以将电梯的各个状态都看成一个独立的状态,如开门状态、关门状态、电梯在哪一层。根据电梯的实际工作情况,可以把状态机设置十个工作状态,分别是“电梯停留在第一层”、“电梯停留在第二层”、“电梯停留在第三层”、 “电梯停留在第四层”、 “电梯停留在第五层”、 “电梯停留在第六层”、“开门”、“关门或快速关门”、“运行过程计数并判断下一层” 、“判断各层是否有请求”。各个状态之间的转换条件可由上面的设计要求所决定2。电梯每到一层,指示该楼层号,电梯从低层到高层时,输出上行状态,反之,输出下行状态,但在到达一层或六层时,上行下行状态都清零。3 六层电梯控制器的综合设计(VHDL语言实现)3.1分析判断3.1.1电梯运行规则(1)请求信号分析:电梯的请求信号可分为梯内请求和梯外请求,如果从这个角度就很难去进行对电梯运行可能情况的分析,因为电梯的运行是根据梯外和梯内的请求信号、行程信号进行控制,而梯外和梯内的请求是随机且不能以有限的规则去对其进行说明的。因此,很难对电梯的运行情况作出一个统一的分析。出于这方面的考虑,本设计把电梯的请求信号划分为上升请求和下降请求。电梯接收到请求信号后,响应并判断是上升请求信号就是下降请求信号,然后电梯向下或向上运行。具体来说,就是当电梯所在楼层低于发出梯外请求的楼层或者低于梯内请求所要到达的目的楼层时,电梯必须在下一操作中作出上升运行。这时的请求信号就是上升请求信号。反之,则是下降请求信号。如电梯在二层并上一次电梯运行是向上或是向下,接收到的是上升请求还是下降请求。(2)电梯处于各楼层时的运行情况。1.处于一层时,不管是梯内梯外,电梯都只能接收上升的请求信号。此后,电梯就进入上升状态,作上升运行。如果电梯没有接收到请求信号,则电梯在一层待机,其分析图如图2所示。图2 电梯处于一层时的运行情况分析2.处于二至五层时,电梯则可能出现以下三种情况(因为二至五层的情况是一样的,仅以第二层举例): 电梯没有接收到梯内梯外的任何请求信号时,则电梯在二层待机; 电梯接收到上升请求信号,进入上升状态; 电梯接收到下降请求信号,进入下降状态,其分析图如图3所示。图3 电梯处于二层时的运行情况分析3.处于六层时,不管是梯内梯外,电梯都只能接收到下降的请求信号。此时,电梯就进入下降状态,作下降运行。如果电梯没有接收到请求信号,则电梯在六层待机,其分析图如图4所示。图4 电梯处于六层时的运行可能分析在电梯运行过程中,存在一个如何处理请求信号优先的问题。仅用顺序优先或逻辑优先不能满足控制要求。因此,控制系统需要同时采用顺序和逻辑来控制电梯的运行。即在以顺序逻辑控制实现电梯的基本控制要求的基础上,根据随机的输入信号,以及电梯当时运行状态(上升还是下降)适时的控制电梯下一个操作,使电梯向上或向下运行。例如,当电梯在三层时,二层、一层梯外均有上升请求信号:电梯向下运行,在接近二层时判别二层具有同向的请求信号,如没有继续下降到一层,经开关门后,然后再向上运行,在接近二层时判别二层具有同向的请求信号时,在二层停止载客。又假如,当电梯在三层时,梯内有到达一层的下降请求信号,而二层则有上升请求信号,电梯先向下运行,在接近二层时判别二层具有反向的请求信号,系统将把二层的上升请求保存到上升请求寄存器上,不在二层作停泊而继续下降到一层去载客,然后读取上升请求寄存中先前二层的上升请求,执行上升到二层载客的操作。执行完成后,被保存在寄存器中的数据清除,为下一次响应请求作准备。(3)对电梯开门、关门等内部信号处理的分析,其流程如图6所示。图6 电梯内外信号处理当电梯接收到请求信号后,运行到发出请求的楼层。运达后,开门使能信号促使电梯开门载客,同时驱动关门延时信号。在电梯进行完关门倒数计后,关门使能信号将促使电梯关门状态,然后上升或下降运行。如果此前出现提前关门信号,电梯立即关门,然后上升或下降运行。3.1.2 程序流程分析电梯的运行规则确定后,需对整个控制程序的设计作一个流程规范。对程序进行模块化构思。根据VHDL语言的规则,程序必须由最基本的实体和结构体构成。实体对控制器的端口进行定义,结构体对各端口的行为进行描述。因此程序运行时需经过以下流程:VHDL库调用;确立控制器的端口及相关的寄存器;根据电梯运行规则确定各个状态转换的条件;对电梯内外信号进行处理,具体流程图如图7所示。程序开始VHDL库调用设置控制器的端口设置相关的寄存器各状态转换条件描述电梯信号处理程序结束图7 电梯设计流程图3.2程序端口和寄存器说明(1)由功能要求得到本程序设计的端口必须包括:时钟信号(clk);提前关门信号(quick);一楼电梯外人的上升请求信号(up1)、二楼电梯外人的上升请求信号(up2);二楼电梯外人的下降请求信号(down2)、三楼电梯外人的下降请求信号(down3);电梯内人请求到达一楼信号(ting1)、电梯内人请求到达二楼信号(ting2)、电梯内人请求到达三楼信号(ting3);电梯开门控制信号(opendoor);电梯关门控制信号(closedoor);电梯所在楼层显示(current);电梯向上运行控制及显示信号up、电梯向下运行控制及显示信号(down)。(2)由相关端口得到程序要求的寄存器包括:电梯内人请求到达一楼信号寄存ting(1)、电梯内人请求到达二楼信号寄存ting(2)、 电梯内人请求到达三楼信号寄存ting(3); 一楼电梯外人上升请求信号寄存u(1)、二楼电梯外人上升请求信号寄存u(2); 二楼电梯外人下降请求信号寄存d(2)、三楼电梯外人下降请求信号寄存d(3)。3.3各模块设计说明本程序由三个基本模块组成,包括调用VHDL库模块、实体设计模块和结构体设计模块。而在结构体模块中又内嵌有进程执行单元。(1)调用VHDL库通过library语句,本程序应用了VHDL库中的“通用ieee库”和“标准std库”。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;(2)entity实体设计模块entity dianti is port ()end dianti;实体语句用关键词entity开头,本程序以dianti(电梯的汉语拼音)作为所要描述的实体名,在结束实体语句的时候使用end dianti。在entity语句的实体说明部分,用port()语句描述实体对外界连接的端口(数目、方向和数据类型),输入模式是clk/up1/up2/down2/down3/quick /ting1/ting2/ting3;其余的都是输出模式,其中current是四位矢量数据的输出接口。(3)architecture结构化设计模块和process进程执行单元实体dianti以结构化与行为化描述的结构体如下:architecture dianti of dianti isbeginend dianti;由于篇幅的关系,结构体部分并不能尽录。本模块以关键字architecture做结构体的开头,描述dianti实体的结构体dianti。architecture和begin之间是结构体说明区,列举了电梯运行的各个状态;begin和end之间是结构体语句区,在此将嵌入process进程语句去对实体行为作出说明。process(clk)begincase when isend case;end process;关键字process后面括号中的信号为时钟信号,它列举可激活进程语句的信号,唯有这些信号上的事件能引起进程语句执行。关键字begin把进程语句分为进程说明和进程语句两部分。进程说明在时钟信号和begin之间,说明局部变量或某些仅在进程内部用的内容。进程语句部分在begin和end process之间,进程内的所有语句都是按顺序一个接一个执行的。其中的case语句是电梯七个运行状态的选择。下载程序成功后,电梯处于c1,即第一层。c1:处于第一层时,先令f1=0、f2=0、f3=0,down=0,up=0。表明电梯初始状态是待机模式。若u(1)=1 或者ting(1)=1 即第一层的任何请求都应该开门,因为已经到了第一层应该优先响应开门,进入time4开门状态并且使opendoor=1,否则若其它层有请求(u(2)、u(3)、d(2)、ting(2)、ting(3)中至少有一个值为1),则进入运行状态time3,并使f1=1,up=1。如在到达第一层经开关门后如没有任何请求,则使标志位f6=1,保持在第一层待机。c2 :处于第二层的时候需要根据当前的电梯状态来决定下一个状态。从其它层到二楼时先使状态标志f1=f2=f3=0,并且显示当前层是第二层,响应请求后使状态标志f2=1,表示是从第二层运行到其它层的。优先顺序是:电梯上升时二楼门外有上升请求,电梯下降时二楼门外的下降请求,电梯下降时电梯内一楼还没响应的停请求,电梯上升时电梯内三楼还没有响应的停请求,上升时三楼门外的下降请求,下降时三楼门外的上升请求,若以上的都没有则任何一个请求都响应。进入运行状态运行到该层或响应二楼的开门请求进入进入time4开门状态,并且上升时给up=1,down=0,下降时down=1,up=0。并输出显示电梯运行状态。如在到达第二层经开关门后如没有任何请求,则使标志位f5=1,保持在第二层待机。c3 :在进入c3时f1=f2=f3=0, down=0,up=0并且显示当前层是第三层,响应请求后使状态标志f3=1, 表示是从第三层运行到其它层的。每到第三层时都是优先响应三楼的下降请求进入time4开门状态,而后进入关门状态,再判断其它层是否有梯外梯内请求。否则只要有一层二层的任意请求存在都进入time3运行状态运行到该层响应请求。如在到达第三层经开关门后如没有任何请求,则使标志位f4=1,保持在第二层待机。time1 :判断是否保持在该层待机。time2 :关门状态。判断是否立即关门,如是,立即关门;否则延时关门。同时判断是否进入待机状态。如是,进入待机状态保持在该层;否则进入运行状态。time3 :运行状态。计数完成后,如果f1=1则进入c2,如果f3=1则进入c2。如果f2=1,是有优先响应顺序的:上升时则优先响应电梯内还没有响应的停ting(3)=1请求,进入c3,下降时优先响应电梯内还没有响应停ting(1)=1请求,经进入c1,上升时三楼门外有下降请求,进入c3,下降时一楼门外有上升请求,进入c1,剩下的请求只要有请求则响应( f1、f2、f3是不可能同时为1的,这样就保证了优先原则)。time4 :开门状态。只有开门状态计数时间到才进入关门状态time2。3.4具体语句设计说明上文已说明了构成VHDL程序的两大部分实体和结构体的相关语句。在这些语句里,赋值语句占了相当一部分。在VHDL语言里,对变量的赋值一般都是用“:=”符号,对输出信号赋值一般都是用“<=”符号。VHDL语言也具有与一般编程语言相同的一些语言逻辑结构,如“if···then···elsif···then···”等。这是VHDL中的顺序语句。在实体模块中,对电梯的主要信号都一一作出了定义,具体说明给出如下。port (clk: in std_logic;-时钟信号 up1,up2: in std_logic;-梯外上升请求 down2,down3: in std_logic;-梯外下降请求 ting1,ting2,ting3: in std_logic;-梯内到达请求quick: in std_logic;-立即关门请求opendoor: buffer std_logic;-开门信号closedoor: buffer std_logic;-关门信号up:buffer std_logic;-上升运行down:buffer std_logic;-下降运行current:buffer std_logic_vector(3 downto 0);-显示楼层号在结构体中对电梯的运行行为作出描述,其中在进程执行单元里,对电梯在各楼层之间转换的情况作出了描述,详见文末附录中的程序及程序说明。4 六层电梯控制器调试、仿真和硬件测试4.1程序调试(1)新建工作库目录,用于存储设计的工程文件,打开MAX+plusII软件。(2)在工具栏中选择“新建”按钮。在选择输入路径时,选择“Text Editor File”以进行文本输入,如图8所示。图8 输入路径选择文本输入(3)在文本输入界面内进行程序输入。(4)输入完毕后,对程序进行保存。文件名和实体定义的符号必须保持一致,即文件名为dianti,文件后缀名须改成vhd,详见图9所示。图9 文本输入保存界面(5)保存以后,对程序进行编译。在编译前,需要把当前文件设置为当前工程文件。可通过选择菜单“File”“Set Project to Current File”来指定当前的文件为当前工程文件。(6)在“MAX+plusII”下拉按钮里选择“Compiler”,对程序进行编译。此时,MAX+plusII软件会对程序进行纠错等处理。当程序被确认无误以后会出现如下界面,如图10所示。图10 编译通过4.2程序波形仿真4.2.1波形输入建立(1)编译完全通过后,新建波形编辑器进行设计仿真。通过“新建”按钮,选择“Waveform Editor file”,详细如图11所示。图11 新建波形编辑器(2)新建波形编辑器后,对文件进行保存。同样是使用相同的文件名dianti,后缀则改为scf。(3)在编辑器的Name栏点击鼠标右键,选择“Enter Nodes from SNF”选择添加需要观察的节点信号。(4)在进行仿真前,还需对仿真结束时间设定。在“File”栏对结束时间“End Time”设置为“5ms”, 如图12所示。图12 仿真结束时间设置图(5)对所添加的节点中的输入信号进行相关的赋值后,就可对程序进行仿真,观察输出信号,得出结论。如对时钟信号clk赋周期为50us的周期信号,如图13所示。图13 对clk信号赋值图4.2.2电梯运行情况仿真六层电梯的运行情况多种多样,下面以观察以下两种情况为例说明。(1)电梯在不同时段接收到请求信号的情况:电梯处于一楼,接收到三楼的梯外下降请求(down3),于是电梯运行到三楼,中途经过二楼时不作停顿。到达三楼载客后,电梯内又接收到下降到一楼的梯内请求(ting1),于是电梯返回一楼待机。仿真情况如图14所示。观察以下信号:down、up、opendoor、closedoor、current。说明:电梯在一层待机时,接收到三层的下降的请求,电梯运行到第三层,并开关门后,响应此时给出的梯内的一层到达响应,并运行到一层,此时没有其它请求信号,电梯在一层待机。图14 运行情况一(2)当电梯在同一时间段里接收到几种不同的请求信号时:电梯停在一楼,在同一时间段里接受到几个请求信号,包括梯内上升到三楼的请求ting3、二楼的梯外上升请求up2和三楼的梯外下降请求down3。电梯到达二楼,响应up2,电梯停止载客后继续上升。电梯上升到三楼时,响应请求ting3和down3,开门卸客;如此时没有任何梯内梯外请求,则在三层待机如有,则进入电梯下降状态。仿真情况如图15所示。观察以下信号:down、up、opendoor、closedoor、current。说明:电梯停在一楼,在同一时间段里接受到梯内上升到三楼的请求ting3、二楼的梯外上升请求up2和三楼的梯外下降请求down3。当电梯到达二楼,响应up2,电梯停止载客后继续上升。电梯上升到三楼时,响应请求ting3和down3,开门卸客;此时没有任何梯内梯外请求,则在三层待机。图15 运行情况二4.2.3电梯功能仿真电梯的功能:立即关门。设电梯到达三层响应down3请求时,如立即关门有效,仿真情况如图16所示。观察以下信号:quick、opendoor、closedoor。说明:quick:在开门后如立即关门信号有效,即quick=1时,立即关门。opendoor:开门信号。opendoor=1时,开门操作。quick:关门信号。closedoor=1时,关门操作。图16 功能仿真图4.3硬件测试电梯控制器的设计选用的芯片是ACEX系列中的EP1K30TC144-3,选用模式5。4.3.1引脚锁定输入按键共8个,按键与引脚的对应关系如表1。表1: 输入引脚锁定输入信号锁定的引脚clkclk0(126)ting1PIO0(8)ting2PIO1(9)ting3PIO2(10)up1PIO3(12)up2PIO4(13)down2PIO5(17)down3PIO6(18)quickPIO7(19)输出锁定8个引脚:一个锁定二极管指示灯指示门的开门状态;一个锁定二极管指示灯指示门的关门状态;一个锁定二极管指示灯指示上升模式;一个锁定二极管指示灯指示下降模式;四个输入引脚锁定一个数码管,用来显示楼层号。具体对应关系如表2。表2: 输出引脚锁定输入信号锁定的引脚输入信号锁定的引脚upPIO12(26)current0PIO28(68)downPIO11(23)current1PIO29(69)opendoorPIO9(21)current2PIO30(70)closedoorPIO8(20)current3PIO31(72)4.3.2硬件下载锁定芯片引脚后,保存并重新编译工程文件,再下载到硬件进行调试。设定各种请求信号,在实验箱模拟,通过观察数码管和二极管的显示来验证程序的正确性。5 结论5.1 设计功能实现情况对程序进行调试,经计算机仿真分析,结果表明本电梯控制程序实现了以下功能:(1)电梯到达楼层时,能发出指示信号;(2)能指示电梯的运行状态;(3)电梯的门操作具有关门延时功能和立即关门功能;(4)基本能正确响应各楼层的上行和下行请求(各楼层设置上行和下行选择按钮)。5.2 设计心得通过这次课程设计,让我在学习EDA理论知识的基础上,增强了的实践动手能力。在参考了许多相关资料后,充分理解了六层电梯的设计要求,基本上完成了设计的功能要求,但本代码中可能仍存在一些不能解决的实际问题,许多工程实际问题不能完全用理论知识去解决,需要不断吸取现场经验,寻找解决问题方法。虽然能完成设计的基本功能,但仍有可拓展的空间,比如超载报警、多层电梯等,都是可以继续研究以满足更多的功能要求,但以我现在对EDA知识的了解,可能不太容易完成,希望以后有机会再深入地学习EDA,设计出更符合实际功能需求的代码。参考文献1 潘松,黄继业 EDA技术实用教程北京:科学出版社,20022 甘历VHDL应用与开发实际北京:科学出版社,20033 谭会生,张昌凡. EDA技术及应用 M.西安电子科技大学出版社,20044 谢正光.数字系统设计中VHDL语言设计问题探讨J.微型机与应用,20045 田萍 刘新云.用VHDL语言实现数字系统J.现代电子技术,2004附录library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dianti is port (clk: in std_logic;-时钟信号 up1,up2: in std_logic;-梯外上升请求 down2,down3: in std_logic;-梯外下降请求 ting1,ting2,ting3: in std_logic;-梯内到达请求 quick: in std_logic;-立即关门请求opendoor: buffer std_logic;-开门信号closedoor: buffer std_logic;-关门信号up:buffer std_logic;-上升运行down:buffer std_logic;-下降运行current:buffer std_logic_vector(3 downto 0);-显示楼层号end dianti;architecture dianti of dianti is type state_type is (c1,c2,c3,time1,time2,time3,time4);-begin process(clk)variable ting: std_logic_vector(3 downto 1):="000"-ting为梯内请求信号,variable u: std_logic_vector(2 downto 1):="00"-梯外上升请求信号,u(1)一楼上升请求信号,u(2)二楼上升请求信号variable d: std_logic_vector(3 downto 2):="00"-梯外下降请求信号,d(2) 二楼下降请求信号,d(3)三楼下降请求信号variable state:state_type:=c1;-初始状态在第一层variable kuai:std_logic;variable js:integer range 0 to 6 :=0;-用于关门和运行时间计数variable f1,f2,f3,ti:std_logic;variable f4:std_logic :='0'variable f5:std_logic :='0'variable f6:std_logic :='0'beginif clk'event and clk='1' thenif quick='1' then kuai:='1' end if;if up1='1' then u(1):='1'end if;if up2='1' then u(2):='1' end if;if down2='1' then d(2):='1' end if; if down3='1' then d(3):='1'end if; if ting1='1' then ting(1):='1' end if;if ting2='1' then ting(2):='1' end if;-if ting3='1' then ting(3):='1' end if;-case state iswhen time1=>if f4='1' then state:=c3;elsif f5='1' then state:=c2;elsif f6='1' then state:=c1;end if;when time2 =>if kuai='1' then js:=3; kuai:='0'-kuai='1'提前关门-关门控制end if; if js>=2 then js:=0;closedoor<='0'if f4='1' or f5='1' or f6='1'then state:=time1;else state:=time3;end if;else js:=js+1;opendoor<='0'if js>=2 then closedoor<='1'end if;end if;when time3=> -从一层到另一层的时间if js<3 then js:=js+1;-从一层到另一层的时间 else js:=0;if f1='1' then state:=c2; elsif f2='1' thenif up='1' and ting(3)='1' then state:=c3;elsif down='1' and ting(1)='1' then state:=c1;elsif up='1' and d(3)='1' then state:=c3;elsif down='1' and u(1)='1' thenstate:=c1;elsif u(1)='1' or ting(1)='1' then state:=c1; DOWN<='1'elsif d(3)='1' or ting(3)='1' then state:=c3; UP<='1'end if;elsif f3='1' then state:=c2; elsif f4='1' then state:=c3;elsif f5='1' then state:=c2;elsif f6='1' then state:=c1;end if;end if;when time4 =>closedoor<='0'opendoor<='1'js:=0;state:=time2;-开门控制when c1=> current<="0001" f1:='0'f2:='0' f3:='0' down<='0'up<='0'if (u(1)='1' and u(2)='0' and ting(2)='0' and ting(3)='0' and d(3)='0' and d(2)='0') then f6:='1'u(1):='0'state:=time4;-优先判断第三层梯内外信号,如有进入开门状态elsif (ting(1)='1' and u(2)='0' and ting(2)='0' and ting(3)='0' and d(3)='0' and d(2)='0') then f6:='1'ting(1):='0'state:=time4;-优先判断第三层梯内外信号,如有进入开门状态elsif u(1)='1' or ting(1)='1' then f1:='1'f6:='0' u(1):='0' ting(1):='0' state:=time4;-优先判断第一层梯内外信号,如有进入开门状态elsif u(2)='1' or ting(2)='1' or d(3)='1' or ting(3)='1' or d(2)='1' then f1:='1'f6:='0'up<='1'st

    注意事项

    本文(EDA技术设计课程设计四层电梯的控制.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开