eda三层电梯控制器.docx

上传人:b****1 文档编号:10193124 上传时间:2023-05-24 格式:DOCX 页数:14 大小:105.28KB
下载 相关 举报
eda三层电梯控制器.docx_第1页
第1页 / 共14页
eda三层电梯控制器.docx_第2页
第2页 / 共14页
eda三层电梯控制器.docx_第3页
第3页 / 共14页
eda三层电梯控制器.docx_第4页
第4页 / 共14页
eda三层电梯控制器.docx_第5页
第5页 / 共14页
eda三层电梯控制器.docx_第6页
第6页 / 共14页
eda三层电梯控制器.docx_第7页
第7页 / 共14页
eda三层电梯控制器.docx_第8页
第8页 / 共14页
eda三层电梯控制器.docx_第9页
第9页 / 共14页
eda三层电梯控制器.docx_第10页
第10页 / 共14页
eda三层电梯控制器.docx_第11页
第11页 / 共14页
eda三层电梯控制器.docx_第12页
第12页 / 共14页
eda三层电梯控制器.docx_第13页
第13页 / 共14页
eda三层电梯控制器.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

eda三层电梯控制器.docx

《eda三层电梯控制器.docx》由会员分享,可在线阅读,更多相关《eda三层电梯控制器.docx(14页珍藏版)》请在冰点文库上搜索。

eda三层电梯控制器.docx

eda三层电梯控制器

 

课程设计

 

课程设计名称:

EDA课程设计

专业班级:

电科0901

学生姓名:

学号:

*********

***********

课程设计时间:

2012-2-20~2012-3-3

 

1设计任务及要求

设计任务:

设计一个三层电梯的控制器。

要求:

(1)用数码管显示电梯所在的楼层号,电梯初始状态为第一楼层。

(2)每楼层电梯外都有上下楼请求开关,用发光二极管显示电梯是上升模式还是下降模式。

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

(4)当电梯处于上升模式时,只响应比电梯所在位置高的楼请求信号,直到最后一个上楼请求执行完毕,再进入下降模式。

设计要求:

(1)根据设计题目要求编写相应程序代码

(2)对编写的VHDL程序代码进行编译和仿真

(3)利用实验箱完成硬件验证

(4)总结设计内容,完成课程设计说明书

2设计原理及总体框图

电梯运行规则:

当电梯处在上升模式时,只响应比电梯所在位置高的上楼请求,由下向上逐个执行,直到最后一个上楼请求执行完毕。

如果高层有下楼请求,直接升到有下楼请求的最高楼层,然后进入下降模式。

当电梯在一楼时,不管是梯内梯外,电梯都只可能接收到上升的请求信号。

此时,电梯就进入预上升状态,准备作上升运行。

如果电梯没有接收到请求信号,电梯则在一楼待机。

当电梯在二楼时,电梯则可能出现三种情况:

电梯并没有接收到梯内梯外的任何请求信号时,电梯停在二楼待机;电梯接收到上升请求信号,进入预上升状态;电梯接收到下降请求信号,进入预下降状态。

当电梯在三楼时,不管是梯内梯外,电梯都只可能接收到下降的请求信号。

此时,电梯就进入预下降状态,准备作下降运行。

如果电梯没有接收到请求信号,电梯则停在二楼待机。

总体框图:

3程序设计

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYdiantiIS--程序实体定义

PORT(clk,swich:

INSTD_LOGIC;

sel,uplift,downlift:

INSTD_LOGIC_VECTOR(3DOWNTO1);

opendoor,up_s,do_s,pa_s:

OUTSTD_LOGIC;

dis:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDdianti;

ARCHITECTUREbehaveOFdiantiIS--结构体定义

SIGNALclk1hz,clk4hz:

STD_LOGIC;

SIGNALur,dr,openonce:

STD_LOGIC;

SIGNALclropen,clrrun,en,enrun:

STD_LOGIC;

TYPEstatetypeIS(pause,up,down);

SIGNALstate:

statetype;

SIGNALopentime,runtime,urr,drr:

STD_LOGIC_VECTOR(3DOWNTO1);

SIGNALposition,seld,upd,downd:

STD_LOGIC_VECTOR(3DOWNTO1);

BEGIN

U0:

PROCESS(clk)--分频进程

VARIABLEq:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IFclk'eventANDclk='1'THEN

q:

=q+1;

ENDIF;

clk4hz<=q

(1);--产生4HZ脉冲

clk1hz<=q(3);--产生1HZ脉冲

ENDPROCESS;

U1:

PROCESS(swich,clk,uplift,downlift)--将上升、下降请求记录

BEGIN

IFrising_edge(clk)THEN

IFstate=pauseTHEN

drr<=drrANDNOT(position);

urr<=urrANDNOT(position);

IF(uplift/=updANDur/='1'ANDposition>uplift)THEN

drr<=(drrORuplift);

ELSIF(downlift/=downdANDur/='1'ANDposition>downlift)THEN

drr<=(drrORdownlift);

ELSIF(uplift/=updANDdr/='1'ANDposition

urr<=(urrORuplift);

ELSIF(downlift/=downdANDdr/='1'ANDposition

urr<=(urrORdownlift);

ELSIF(sel/=seld)THEN

IF(sel

drr<=(drrORsel);

ELSIF(sel>positionANDdr/='1')THEN

urr<=(urrORsel);

ENDIF;

ENDIF;

ELSIF(state=up)THEN

IF(uplift/=updANDdr/='1'ANDposition

urr<=(urrORuplift);

ELSIFsel/=seldANDdr/='1'ANDposition

urr<=(urrORsel);

ENDIF;

ELSIF(state=down)THEN

IF(downlift/=downdANDur/='1'ANDposition>downlift)THEN

drr<=(drrORdownlift);

ELSIFsel/=seldANDur/='1'ANDposition>selTHEN

drr<=(drrORsel);

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

ur<='1'WHENurr/="000"ELSE'0';

dr<='1'WHENdrr/="000"ELSE'0';

U2:

PROCESS(swich,clk)--暂停、上升、下降三个状态之间转换

BEGIN

IFswich='0'THEN--开关关闭时,处于暂停状态

state<=pause;up_s<='0';do_s<='0';pa_s<='1';openonce<='1';opendoor<='0';

clrrun<='1';enrun<='0';clropen<='1';en<='0';

ELSIFRISING_EDGE(CLK)THEN--开关打开后,三个状态之间变化

CASEstateIS

WHENup=>IFruntime="100"THENclrrun<='1';enrun<='0';

IFposition=(urrANDposition)THEN

state<=pause;up_s<='0';do_s<='0';pa_s<='1';clropen<='0';en<='1';

ENDIF;

ELSEclrrun<='0';enrun<='1';up_s<='1';do_s<='0';pa_s<='0';

ENDIF;

WHENdown=>IFruntime="100"THENclrrun<='1';enrun<='0';

IFposition=(drrANDposition)THEN

state<=pause;up_s<='0';do_s<='0';pa_s<='1';clropen<='0';en<='1';

ENDIF;

ELSEclrrun<='0';enrun<='1';up_s<='0';do_s<='1';pa_s<='0';

ENDIF;

WHENpause=>IF(opentime="010"ANDopenonce='0')OR(uplift/=updANDposition=uplift)

OR(downlift/=downdANDposition=downlift)THEN

opendoor<='1';clropen<='0';en<='1';openonce<='0';

ENDIF;

IF(opentime="101"OR(openonce='1'AND(ur='1'ORdr='1')))THEN

IFur='1'THEN

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';

ENDIF;

ENDIF;

ENDCASE;

ENDIF;

ENDPROCESSU2;

U3:

PROCESS(clk)--将按键请求记录、防抖电路

BEGIN

IFCLK'EVENTANDCLK='1'THEN

downd<=downlift;upd<=uplift;

seld<=sel;

ENDIF;

ENDPROCESS;

U4:

PROCESS(clk4hz,swich)

BEGIN

IFswich='0'THENposition<="001";--开关没开时,电梯停在第一层

ELSIFRISING_EDGE(CLK4HZ)THEN

IFruntime="011"THEN

IFstate=upTHEN

position<=position(2downto1)&'0';--电梯处于上升时position循环左移

ELSIFstate=downTHENposition<='0'&position(3downto2);

ENDIF;--电梯处于下降时position循环右移

ENDIF;

ENDIF;

ENDPROCESS;

U5:

PROCESS(clk1hz,clropen)--用于控制开门时间计时的进程

BEGIN

IFclropen='1'THENopentime<="000";

ELSIFRISING_EDGE(CLK1HZ)THEN

IFen='1'THEN

IFopentime="101"THENopentime<="101";

ELSEopentime<=opentime+1;

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

U6:

PROCESS(CLK4HZ,clrrun)--用于控制运行时间的进程

BEGIN

IFclrrun='1'THENruntime<="000";

ELSIFRISING_EDGE(CLK4HZ)THEN

IFenrun='1'THEN

IFruntime="100"THENruntime<=runtime;

ELSEruntime<=runtime+1;

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

U7:

PROCESS(clk)--将电梯所处楼层显示在数码管上

BEGIN

IFRISING_EDGE(CLK)THEN

IFposition="001"THENdis<="0001";

ELSIFposition="010"THENdis<="0010";

ELSIFposition="100"THENdis<="0011";

ELSEdis<="0000";

ENDIF;

ENDIF;

ENDPROCESS;

ENDbehave;

4编译及仿真

Altera公司的Quartuii是一个全面的、易于使用且具有独立解决问题能力的软件,可以完成设计流程中的输入、综合、布局布线、时序分析、仿真和编程下载等功能。

与第三代设计工具MAX+plusii相比,其功能更加完善,特别适合大规模逻辑电路的设计。

上升情况:

下降情况:

仿真中遇到的情况:

起初设置的时钟周期比较短,所以仿真时出现很多不稳定情况,当把时钟周期调大后不稳定情况消除。

另外,信号赋值存在延时,所以要想达到精确的时间是比较困难的。

5硬件调试与结果分析

选择电路图五

引脚锁定:

clk>inputpin=126;--时钟信号

swich>inputpin19按键8--电梯开关

uplift1>inputpin=18;按键7--一楼上升按键

uplift2>inputpin=17;按键6--二楼上升按键

downlift3>inputpin=13;按键5--三楼下降按键

downlift2>inputpin=12;按键4--二楼下降按键

sel3>inputpin=10;按键3

sel2>inputpin=9;按键2--电梯内楼层选择按键

sel1>inputpin=8;按键1

opendoor>outputpin=23;二极管4--开门信号灯

pa_s>outputpin=22:

二极管3--暂停指示灯

up_s>outputpin=21;二极管2--上升指示灯

do_s>outputpin=20;二极管1--下降指示灯

dis0>outputpin=30

dis1>outputpin=31

dis2>outputpin=32;数码管1--楼层显示

dis3>outputpin=33

重新编译后,下载仿真!

运行结果:

电梯初始状态为一层,处在关门状态,开门指示灯不亮。

一层电梯入口处设有上楼请求开关,二层电梯入口设有上、下楼请求开关,三层电梯入口处设有下楼请求开关,电梯内部设有乘客到达楼层的停站请求开关。

当一楼有请求上楼时,等待一秒开门,四秒后关门执行所选楼层请求。

电梯到达有停站请求的楼层后,电梯门打开,开门指示灯亮,数码管显示所在楼层,暂停状态灯亮。

开门4秒后,电梯门关闭,开门指示灯灭,暂停状态灯灭。

电梯继续运行,直至执行完最后一个请求信号后停在当前层。

若起初高层有请求,电梯则直接到达有请求的楼层,开门等待下一个请求。

电梯控制系统能记忆电梯内外的请求信号,并按照电梯运行规则工作,每个请求信号执行完毕后随即清除。

6参考文献

[1] 焦素敏.EDA课程设计指导书.郑州:

河南工业大学,2008

[2] 潘松,黄继业.EDA技术实用教程.北京:

科学出版社,2002

[3]亦华,延明.数字电路EDA入门.北京:

电子工业出版社,2003

[4]江国强,EDA技术与应用(第三版):

电子工业出版社,2010

[5]http:

//www.ele-中国电子制作网网站

心得体会

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,第一次课程设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

要完成一个设计,必须先把整个设计的思路理楚,把设计分为几个单独的模块,然后再把每个模块联系起来组成一个大程序,

不能想了一点就急着编写,否则一旦出问题,将很难分析。

 

电子信息科学与技术专业课程设计任务书

学生姓名

吕炯炯

专业班级

电科0901

学号

200948360118

题目

三层电梯控制器

课题性质

工程设计

课题来源

自拟课题

指导教师

焦素敏

同组姓名

主要内容

设计一个三层电梯的控制器。

要求:

(1)用数码管显示电梯所在的楼层号,电梯初始状态为第一楼层。

(2)每楼层电梯外都有上下楼请求开关,用发光二极管显示电梯是上升模式还是下降模式。

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

(4)当电梯处于上升模式时,只响应比电梯所在位置高的楼请求信号,直到最后一个上楼请求执行完毕,再进入下降模式。

任务要求

(1)根据设计题目要求编写相应程序代码

(2)对编写的VHDL程序代码进行编译和仿真

(3)利用实验箱完成硬件验证

(4)总结设计内容,完成课程设计说明书

参考文献

[1] 焦素敏.EDA课程设计指导书.郑州:

河南工业大学,2008

[2] 潘松,黄继业.EDA技术实用教程.北京:

科学出版社,2002

[3] 王国栋,潘松等.VHDL实用教程.成都:

电子科技大学出版社,2000

[4]张亦华,延明.数字电路EDA入门.北京:

电子工业出版社,2003

[5]http:

//www.ele-中国电子制作网网站

审查意见

指导教师签字:

焦素敏

教研室主任签字:

张庆辉2012年2月20日

说明:

本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2