eda三层电梯控制器.doc_第1页
eda三层电梯控制器.doc_第2页
eda三层电梯控制器.doc_第3页
eda三层电梯控制器.doc_第4页
eda三层电梯控制器.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 程 设 计课程设计名称: EDA课程设计 专 业 班 级 : 电科0901 学 生 姓 名 : 学 号 : 200948360 指 导 教 师 : 焦素敏 课程设计时间: 2012-2-202012-3-3 1 设计任务及要求 设计任务:设计一个三层电梯的控制器。要求:(1)用数码管显示电梯所在的楼层号,电梯初始状态为第一楼层。(2)每楼层电梯外都有上下楼请求开关,用发光二极管显示电梯是上升模式还是下降模式。(3)电梯每秒升降一层,电梯到达有停站请求的楼层后,经1秒电梯门打开,开门指示灯亮,开门4秒后,指示灯灭,关门,电梯继续运行。(4)当电梯处于上升模式时,只响应比电梯所在位置高的楼请求信号,直到最后一个上楼请求执行完毕,再进入下降模式。设计要求:(1)根据设计题目要求编写相应程序代码(2)对编写的VHDL程序代码进行编译和仿真(3)利用实验箱完成硬件验证(4)总结设计内容,完成课程设计说明书2设计原理及总体框图电梯运行规则:当电梯处在上升模式时,只响应比电梯所在位置高的上楼请求,由下向上逐个执行,直到最后一个上楼请求执行完毕。如果高层有下楼请求,直接升到有下楼请求的最高楼层,然后进入下降模式。当电梯在一楼时,不管是梯内梯外,电梯都只可能接收到上升的请求信号。此时,电梯就进入预上升状态,准备作上升运行。如果电梯没有接收到请求信号,电梯则在一楼待机。当电梯在二楼时,电梯则可能出现三种情况:电梯并没有接收到梯内梯外的任何请求信号时,电梯停在二楼待机;电梯接收到上升请求信号,进入预上升状态;电梯接收到下降请求信号,进入预下降状态。当电梯在三楼时,不管是梯内梯外,电梯都只可能接收到下降的请求信号。此时,电梯就进入预下降状态,准备作下降运行。如果电梯没有接收到请求信号,电梯则停在二楼待机。总体框图:3 程序设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY dianti IS-程序实体定义 PORT(clk,swich :IN STD_LOGIC;sel,uplift,downlift:IN STD_LOGIC_VECTOR(3 DOWNTO 1);opendoor,up_s,do_s,pa_s :OUT STD_LOGIC;dis:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END dianti;ARCHITECTURE behave OF dianti IS-结构体定义SIGNAL clk1hz,clk4hz: STD_LOGIC;SIGNAL ur,dr,openonce: STD_LOGIC;SIGNAL clropen,clrrun,en,enrun: STD_LOGIC;TYPE statetype IS (pause,up,down);SIGNAL state: statetype;SIGNAL opentime,runtime,urr,drr: STD_LOGIC_VECTOR(3 DOWNTO 1);SIGNAL position,seld,upd,downd: STD_LOGIC_VECTOR(3 DOWNTO 1);BEGIN U0: PROCESS(clk)-分频进程 VARIABLE q: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF clkevent AND clk=1 THENq:=q+1;END IF;clk4hz=q(1);-产生4HZ脉冲clk1hz=q(3);-产生1HZ脉冲 END PROCESS; U1: PROCESS(swich,clk,uplift,downlift) -将上升、下降请求记录BEGINIF rising_edge(clk) THENIF state=pause THENdrr=drr AND NOT(position);urruplift) THENdrrdownlift) THENdrr=(drr OR downlift);ELSIF (uplift/=upd AND dr/=1 AND positionuplift) THENurr=(urr OR uplift);ELSIF (downlift/=downd AND dr/=1 AND positiondownlift) THENurr=(urr OR downlift);ELSIF (sel/=seld) THENIF (selposition AND ur/=1) THENdrrposition AND dr/=1) THENurr=(urr OR sel);END IF;END IF;ELSIF (state=up) THEN IF (uplift/=upd AND dr/=1 AND positionuplift) THENurr=(urr OR uplift);ELSIF sel/=seld AND dr/=1 AND positionsel THEN urrdownlift) THENdrrsel THEN drr=(drr OR sel);END IF;END IF;END IF; END PROCESS;ur =1 WHEN urr /=000 ELSE 0;dr =1 WHEN drr /=000 ELSE 0; U2: PROCESS(swich,clk)-暂停、上升、下降三个状态之间转换 BEGINIF swich=0 THEN -开关关闭时,处于暂停状态state=pause; up_s=0;do_s=0;pa_s=1;openonce=1;opendoor=0;clrrun=1;enrun=0;clropen=1;enIF runtime=100 THEN clrrun=1;enrun=0; IF position=(urr AND position) THENstate=pause;up_s=0;do_s=0;pa_s=1;clropen=0;en=1; END IF; ELSE clrrun=0;enrun=1;up_s=1;do_s=0;pa_sIF runtime=100 THEN clrrun=1;enrun=0; IF position=(drr AND position) THEN state=pause;up_s=0;do_s=0;pa_s=1;clropen=0;en=1; END IF; ELSE clrrun=0;enrun=1;up_s=0;do_s=1;pa_sIF (opentime=010 AND openonce=0) OR (uplift/=upd AND position=uplift) OR (downlift/=downd AND position=downlift) THEN opendoor=1;clropen=0;en=1;openonce=0; END IF; IF(opentime=101 OR (openonce=1 AND (ur=1 OR dr=1) THEN IF ur=1THEN state=up; opendoor=0;up_s=1; en=0;do_s=0; clropen=1;pa_s=0; openonce=0; ELSIF(dr=1) THEN state=down; opendoor=0;up_s=0; en=0;do_s=1; clropen=1;pa_s=0; openonce=0; ELSE state=pause; opendoor=0;pa_s=1; en=0;do_s=0; clropen=1;up_s=0; openonce=1; END IF; END IF; END CASE; END IF; END PROCESS U2; U3: PROCESS(clk)-将按键请求记录、防抖电路 BEGIN IF CLKEVENT AND CLK=1 THENdownd=downlift;upd=uplift;seld=sel;END IF; END PROCESS; U4: PROCESS(clk4hz,swich) BEGIN IF swich=0 THEN position=001 ;-开关没开时,电梯停在第一层 ELSIF RISING_EDGE(CLK4HZ) THENIF runtime=011 THEN IF state=up THEN position=position(2 downto 1)&0;-电梯处于上升时position循环左移 ELSIF state=down THEN position=0&position(3 downto 2); END IF;-电梯处于下降时position循环右移END IF; END IF; END PROCESS; U5: PROCESS(clk1hz,clropen)-用于控制开门时间计时的进程 BEGIN IF clropen=1 THEN opentime=000; ELSIF RISING_EDGE(CLK1HZ) THENIF en=1 THEN IF opentime=101 THEN opentime=101; ELSE opentime=opentime+1; END IF;END IF;END IF; END PROCESS; U6: PROCESS(CLK4HZ,clrrun) -用于控制运行时间的进程BEGIN IF clrrun=1 THEN runtime=000; ELSIF RISING_EDGE(CLK4HZ) THEN IF enrun=1 THENIF runtime=100 THEN runtime=runtime;ELSE runtime=runtime+1;END IF;END IF; END IF;END PROCESS;U7: PROCESS(clk)-将电梯所处楼层显示在数码管上BEGIN IF RISING_EDGE(CLK) THEN IF position=001 THEN dis=0001; ELSIF position=010 THEN dis=0010; ELSIF position=100 THEN dis=0011; ELSE dis input pin=126;-时钟信号swich input pin19 按键8-电梯开关 uplift1 input pin=18;按键7-一楼上升按键 uplift2 input pin=17;按键6-二楼上升按键 downlift3 input pin=13;按键5-三楼下降按键 downlift2 input pin=12;按键4-二楼下降按键 sel3 input pin=10;按键3 sel2 input pin=9;按键2-电梯内楼层选择按键 sel1 input pin=8;按键1 opendoor output pin=23;二极管4-开门信号灯 pa_s output pin=22:二极管3-暂停指示灯up_s output pin=21; 二极管2-上升指示灯do_s output pin=20; 二极管1-下降指示灯 dis0 output pin=30 dis1 output pin=31 dis2 output pin=32;数码管1-楼层显示dis3 output pin=33重新编译后,下载仿真!运行结果:电梯初始状态为一层,处在关门状态,开门指示灯不亮。一层电梯入口处设有上楼请求开关,二层电梯入口设有上、下楼请求开关,三层电梯入口处设有下楼请求开关,电梯内部设有乘客到达楼层的停站请求开关。当一楼有请求上楼时,等待一秒开门,四秒后关门执行所选楼层请求。电梯到达有停站请求的楼层后,电梯门打开,开门指示灯亮,数码管显示所在楼层,暂停状态灯亮。开门4秒后,电梯门关闭,开门指示灯灭,暂停状态灯灭。电梯继续运行,直至执行完最后一个请求信号后停在当前层。若起初高层有请求,电梯则直接到达有请求的楼层,开门等待下一个请求。电梯控制系统能记忆电梯内外的请求信号,并按照电梯运行规则工作,每个请求信号执行完毕后随即清除。6 参考文献1焦素敏.EDA课程设计指导书.郑州:河南工业大学,20082潘松,黄继业.EDA技术实用教程.北京:科学出版社,20023 亦华,延明.数字电路EDA入门.北京:电子工业出版社,2003 4 江国强,EDA技术与应用(第三版):电子工业出版社,20105 / 中国电子制作网 网站 心得体会通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,第一次课程设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。要完成一个设计,必须先把整个设计的思路理楚,把设计分为几个单独的模块,然后再把每个模块联系起来组成一个大程序,不能想了一点就急着编写,否则一旦出问题,将很难分析。电子信息科学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论