电子技术实验报告1电子技术实验报告——电梯控制器的设计与分析班级:姓名:学号:日期:2016年6月25日联系电话:电子技术实验报告2一.实验目的电子技术专题实验是对“数字逻辑”课程内容的全面、系统的总结、巩固和提高的一项课程实践活动。根据数字逻辑的特点,选择相应的题目,在老师的指导下,由学生独立完成。目的是通过实验使学生掌握数字逻辑电路设计的基本方法和技巧,正确运用QuartusⅡ软件及实验室多功能学习机硬件平台,完成所选题目的设计任务,并掌握数字逻辑电路测试的基本方法,训练学生的动手能力和思维方法。通过实验,一方面提高运用数字逻辑电路解决实际问题的能力,另一方面使学生更深入的理解所学知识,为以后的计算机硬件课程的学习奠定良好的基础。二.项目设计概要1.设计实现的目标随着社会的发展,电梯的使用越来越普遍,已从原来只在商业大厦、宾馆使用,过渡到在办公楼、居民楼等场所使用,并且对电梯功能的要求也不断提高,相应地其控制方式也在不停地发生变化。对于电梯的控制,传统的方法是使用继电器—接触器控制系统进行控制,随着技术的不断发展,微型计算机在电梯控制上的应用日益广泛,现在已进入全微机化控制的时代。2.整体设计概述电梯的微机化控制主要有以下几种形式:①PLC控制;②单板机控制;③单片机控制;④单微机控制;⑤多微机控制;⑥人工智能控制。随着EDA技术的快速发展,CPLD/FPGA已广泛应用于电子设计与控制的各个方面。本设计就是使用一片CPLD/FPGA来实现对电梯的控制的3.项目设计特点我们在项目设计过程中采用模块化设计思想,事先制定了模块间的接口方案,使得整个系统的组合变得十分灵活。由于我们在设计时为电子钟和秒表模块中都加入了显示电路,总控模块可分别与之连接组成一个分系统,便于调试。在最终电子技术实验报告3整合时,我们也只需要将两个模块中的显示电路合二为一即可。三.系统设计方案根据系统设计要求,并考虑到系统的可验证性,整个系统的输入输出接口设计如图1所示:系统工作用2Hz基准时钟信号CLKIN,楼层上升请求键UPIN,楼层下降请求键DOWNIN,楼层选择键入键ST_CH,提前关门输入键CLOSE,延迟关门输入键DELAY,电梯运行的开关键RUN_STOP,电梯运行或停止指示键LAMP,电梯运行或等待时间指示键RUN_WAIT,电梯所在楼层指示数码管ST_OUT,楼层选择指示数码管DIRECT。各输入端口的功能如下:CLKIN:基准时钟信号,为系统提供2Hz的时钟脉冲,上升沿有效;UPIN:电梯上升请求键。由用户向电梯控制器发出上升请求。高电平有效;DOWNIN:电梯下降请求键,由用户向电梯控制器发出下降请求。高电平有效;ST_CH[2..0]:楼层选择键入键,结合DIRECT完成楼层选择的键入,高电平有效;CLOSE:提前关门输入键。可实现无等待时间的提前关门操作,高电平有效;DELAY:延迟关门输入键。可实现有等待时间的延迟关门操作,高电平有效;RUN_STOP:电梯运行或停止开关键。可实现由管理员控制电梯的运行或停止,高电平有效。一下为输出端口:LAMP:电梯运行或等待指示键,指示电梯的运行或等待状况。高电平有效;RUN_WAIT:电梯运行或等待时间指示键,指示电梯运行状况或等待时间的长短,高电平有效;ST_OUT:电梯所在楼层指示数码管,只是电梯当前所在的楼层数。即1~5层,高电平有效;DIRECT:楼层选择指示数码管,指示用户所要选择的楼层数,高电平有效。电子技术实验报告41.系统功能模块设计示意图2.项目分块及其实现方案电梯的控制状态包括运行状态、停止状态及等待状态,其中运行状态又包含向上状态和向下状态。主要动作有开、关门,停靠和启动。乘客可通过键入开、关门按钮,呼唤按钮,指定楼层按钮等来控制电梯的行与停。据此,整个电梯控制器DTKZQ应包括如下几个组成部分:①时序输出及楼选计数器;②电梯服务请求处理器;③电梯升降控制器;④上升及下降寄存器;⑤电梯次态生成器。该电梯控制器设计的关键是确定上升及下降寄存器的置位与复位。整个系统的内部组成结构图如图2所示。电子技术实验报告5Vhdl程序:--DTKZQ.VHD--显示电路LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYledISPORT(LEDIN:INSTD_LOGIC_VECTOR(2DOWNTO0);--输入信号LEDOUT:OUTSTD_LOGIC_VECTOR(6DOWNTO0));--输出信号ENDLED;ARCHITECTUREARTOFLEDIS--结构体BEGINPROCESS(LEDIN)BEGINCASELEDINIS--共阴极LED显示译码gfedcbaWHEN0000=ledout=0111111;--0WHEN0001=ledout=0000110;--1WHEN0010=ledout=1011011;--2WHEN0011=ledout=1001111;--3WHEN0100=ledout=1100110;--4WHEN0101=ledout=1101101;--5WHEN0110=ledout=1111101;--6WHEN0111=ledout=0000111;--7WHEN1000=ledout=1111111;--8WHEN1001=ledout=1101111;--9WHEN1010=ledout=1110111;--10WHEN1011=ledout=1111100;--11WHEN1100=ledout=0111001;--12WHEN1101=ledout=1011110;--13WHEN1110=ledout=1111001;--14WHEN1111=ledout=1110001;--15WHENOTHERS=ledout=0000000;--其他情况时灯灭ENDCASE;ENDPROCESS;ENDART;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYDTKZQISPORT(CLK:INSTD_LOGIC;--2Hz时钟输入信号电子技术实验报告6UPIN:INSTD_LOGIC;--楼层上升请求键DOWNIN:INSTD_LOGIC;--楼层下降请求键ST_CH:INSTD_LOGIC;--结合DIRECT完成楼层选择的键入CLOSE:INSTD_LOGIC;--提前关门输入键DELAY:INSTD_LOGIC;--延迟关门输入键RUN_STOP:INSTD_LOGIC;--电梯运行的开关键LAMP:OUTSTD_LOGIC;--电梯运行或停止指示键RUN_WAIT:OUTSTD_LOGIC_VECTOR(3DOWNTO0);--结合LAMP指示电梯运行或等待时间ST_OUT:OUTSTD_LOGIC_VECTOR(3DOWNTO0);--电梯所在楼层指示数码管DIRECT:OUTSTD_LOGIC_VECTOR(3DOWNTO0));--楼层选择指示数码管ENDENTITYDTKZQ;ARCHITECTUREARTOFDTKZQISSIGNALUR,DR:STD_LOGIC_VECTOR(16DOWNTO1);--上升或下降楼层请求寄存器SIGNALDIR,LIFTOR:INTEGERRANGE0TO15;--楼选指示及楼层数计数器SIGNALWAI_T:STD_LOGIC_VECTOR(2DOWNTO0);--运行或等待计数器SIGNALDIVID,HAND,CLKIN:STD_LOGIC;--时钟2分频和楼选复位变量SIGNALLADD:STD_LOGIC_VECTOR(1DOWNTO0);--电梯运行状态变量SIGNALCLOSEX,DELAYX:STD_LOGIC;--提前关门及延迟变量BEGIN--内部信号值的输出DIRECT=CONV_STD_LOGIC_VECTOR(DIR,4)+1;ST_OUT=CONV_STD_LOGIC_VECTOR(LIFTOR,4)+1;RUN_WAIT='0'&WAI_T;LAMP=LADD(1);HAND=WAI_T(2)AND(NOTWAI_T(1)ANDWAI_T(0));CLOSEX=CLOSEAND(NOTLADD(1));DELAYX=DELAYAND(NOTLADD(1));--分频进程P0:PROCESS(CLK)BEGINIF(CLK'EVENTANDCLK='1')THENCLKIN=NOTCLKIN;ENDIF;ENDPROCESSP0;--分频及楼选信号产生进程P1:PROCESS(CLKIN)BEGINIF(CLKIN'EVENTANDCLKIN='1')THENDIVID=NOTDIVID;IF(DIR=4)THENDIR=0;ELSEDIR=DIR+1;电子技术实验报告7ENDIF;ENDIF;ENDPROCESSP1;--楼层请求寄存器的置位与复位进程P2:PROCESS(UR,DR,DIR,UPIN,DOWNIN,ST_CH,LIFTOR,WAI_T,RUN_STOP,HAND)VARIABLENUM,T:INTEGERRANGE0TO16;BEGINNUM:=LIFTOR+1;T:=DIR+1;IF(RUN_STOP='1')THEN--电梯运行时选择楼层大于当前楼层或者有上升请求IF(((TNUM)AND(ST_CH='1'))OR(UPIN='1'))THENCASETISWHEN1=UR(1)='1';WHEN2=UR(2)='1';WHEN3=UR(3)='1';WHEN4=UR(4)='1';WHEN5=UR(5)='1';WHEN6=UR(6)='1';WHEN7=UR(7)='1';WHEN8=UR(8)='1';WHEN9=UR(9)='1';WHEN10=UR(10)='1';WHEN11=UR(11)='1';WHEN12=UR(12)='1';WHEN13=UR(13)='1';WHEN14=UR(14)='1';WHEN15=UR(15)='1';WHEN16=UR(16)='1';WHENOTHERS=NULL;ENDCASE;--电梯运行时间到ELSIF(HAND='1')THENCASENUMISWHEN1=UR(1)='0';WHEN2=UR(2)='0';WHEN3=UR(3)='0';WHEN4=UR(4)='0';WHEN5=UR(5)='0';WHEN6=UR(6)='0';WHEN7=UR(7)='0';WHEN8=UR(8)='0';WHEN9=UR(9)='0';电子技术实验报告8WHEN10=UR(10)='0';WHEN11=UR(11)='0';WHEN12=UR(12)='0';WHEN13=UR(13)='0';WHEN14=UR(14)='0';WHEN15=UR(15)='0';WHEN16=UR(16)='0';WHENOTHERS=NULL;ENDCASE;ENDIF;--选择楼层小于当前楼层或者有下降请求IF(((TNUM)AND(ST_CH='1'))OR(DOWNIN='1'))THENCASETISWHEN1=DR(1)='1';WHEN2=DR(2)='1';WHEN3=DR(3)='1';WHEN4=DR(4)='1';WHEN5=DR(5)='1';WHEN6=DR(6)='1';WHEN7=DR(7)='1';WHEN8=DR(8)='1';WH