电信课程设计简易电梯.docx

上传人:b****8 文档编号:10046837 上传时间:2023-02-08 格式:DOCX 页数:23 大小:214.02KB
下载 相关 举报
电信课程设计简易电梯.docx_第1页
第1页 / 共23页
电信课程设计简易电梯.docx_第2页
第2页 / 共23页
电信课程设计简易电梯.docx_第3页
第3页 / 共23页
电信课程设计简易电梯.docx_第4页
第4页 / 共23页
电信课程设计简易电梯.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

电信课程设计简易电梯.docx

《电信课程设计简易电梯.docx》由会员分享,可在线阅读,更多相关《电信课程设计简易电梯.docx(23页珍藏版)》请在冰豆网上搜索。

电信课程设计简易电梯.docx

电信课程设计简易电梯

北津学院

《单片机应用系统设计》报告

 

题 目简易电梯

 

姓名:

邓昌能

学号:

090912049

专业:

电子信息工程

班级:

0922

指导教师:

倪文志

职称:

教授

 

北津学院计电系

2012年7月

 

课程设计(实习)评审表

姓名

邓昌能

学院

北津学院

学号

090912049

专业班级

电信0922

题目

简易电梯

 

 

 

 

评审成绩

指导教师签名

职称

评审时间

年月日

课程设计(实习)作品验收表

题目

简易电梯

参与人员

姓名

邓昌能

班级

电信0922

学号

090912049

设计任务与要求:

(1)设计4层电梯,当按下需要到达的层次后,如果电梯向上运行,则黄色的LED灯亮,如果电梯向下运行,则绿色的LED灯亮,如果到达选取的楼层或者电梯到达顶楼或者1楼的话,红色的LED灯亮,表示就绪状态。

同时数码管显示电梯到达的相应的楼层号。

(2)当有人按下未到达楼层的开关时,电梯到达那一层时,停留10秒,然后继续上升到最终的楼层。

向下运行同理。

作品完成情况:

验收情况:

验收教师签名:

___________

      年月日

注:

1.除“验收情况”栏外,其余各栏均由学生在作品验收前填写。

2.“验收情况”栏由验收小组按实际验收的情况如实填写。

简易电梯的设计

1设计任务与要求

1.1设计任务

(1)设计4层电梯,当按下需要到达的层次后,如果电梯向上运行,则黄色的LED灯亮,如果电梯向下运行,则绿色的LED灯亮,如果到达选取的楼层或者电梯到达顶楼或者1楼的话,红色的LED灯亮,表示就绪状态。

同时数码管显示电梯到达的相应的楼层号。

(2)当有人按下未到达楼层的开关时,电梯到达那一层时,停留10秒,然后继续上升到最终的楼层。

向下运行同理。

1.2设计要求

1.2.1基本要求

根据课题要求,通过查阅资料等,独立完成课题的方案设计、电路设计、系统流程图设计、仿真分析、调试和指标测试,撰写设计报告。

1.2.2具体要求

(1)根据应用系统的要求,初步掌握总体结构的方法和构思,从中选择一种最佳的设计方案。

(2)完成系统的整体电路和系统流程图。

首先画出程序总体流程图,然后进行各控制模块程序的设计、编写系统程序。

(3)利用Proteus软件进行仿真分析和调试,检测电路功能和性能指标。

在应用单片机仿真软件来开发应用系统及仿真调试的过程,先进行各模块调试,然后进行各程序模块的联调,最后与硬件一起进行联调,反复检测和修改直至开发结束。

(4)仿真通过了,进行安装系统。

2系统功能描述

根据设计的要求,设计需要实现以下的功能:

(1)打开电源后,显示器显示初始状态,此时电梯显示的是停在一楼。

(2)设置一个初始楼层,电梯从一楼开始向上运行。

每一楼层显示停留10秒

(3)输入楼层时用独立按键,键盘所对应的楼层为1到4层。

(4)LED数码管显示的是1、2、3、4表示的是第四层楼。

3硬件系统总体设计

简易电梯工作的主要过程是LED数码管显示楼层所在的位置,LED灯显示电梯的工作状态,黄色LED灯亮则表示电梯正在往上运行,绿色LED灯亮则表示电梯正在向下运行,红色LED灯亮则表示电梯处于就绪状态,只有当用户键入所要去的楼层的开关时电梯才会运行。

电梯在到达顶楼和到达一楼的时候是处于就绪状态的。

系统总原理框图如下:

 

 

图1电梯总体设计结构框图

3.1系统的设计方案

采用一种用以AT89S51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,能实现基本的简易电梯功能。

本设计采用的电源是5V。

3.2显示模块设计方案

采用共阴的7段LED数码管显示器:

LED数码管亮度高、醒目、显示的信息量小,而且格上较为便宜。

当接通电源后,LED灯的初始状态是1,表示现在处于楼层一的位置。

当电梯处于运行状态时,LED灯会显示电梯所在的楼层。

 

图2一位7段共阴数码管

3.3按键模块设计方案

本设计全部采用独立按键作为输入信号往单片机内部送信号,从而对电梯进行控制,每一层都用一个按键来控制,即每口送一个低电平,送往单片机程序,从而使程序执行,控制外部的电路,是电梯运行,达到控制电梯的作用。

P2口接4个开关(k1-k4),分别代表四层楼的呼叫按钮。

 

图3按键电路

 

3.4复位电路的设计方案

复位电路由电阻、电容、按键组成,如下图所示:

图4复位电路

在单片机启动0.01S后,电容C3两端的电压持续充电为5V,这是时候1K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。

当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。

随着时间的推移,电容的电压在0.01S内,从5V释放到变为了1.5V,甚至更小。

根据串联电路电压为各处之和,这个时候1K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。

单片机系统自动复位。

单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。

无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。

根据实际情况选择如图所示的复位电路。

该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RES为高电平,在电容充电的过程中RES端电压逐渐下降,当RES端的电压小于某一数值后,CPU脱离复位状态,由于电容C足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。

增加手动复位按键是为了避免死机时无法可靠复位。

当复位按键按下后电容C通过R-1放电。

当电容C1放电结束后,RES端的电位为高电平。

由于RES为高电平,CPU处于复位状态,松手后,电容C1充电,RES端电位下降,CPU脱离复位状态。

4软件系统的设计

设计电梯的控制主要是通过程序来进行控制的,在写程序时主要采用查询的方式来进行对外输入信号进行不断的查询,从而往单片机内部输入信号,使程序运行。

程序主要分为六个模块:

(1)初始化函数:

对单片机进行初始化,使数码管显示当前的位置。

(2)按键检测函数:

对输入信号进行查询,只要查询到有呼叫信号,就判断是否响应该信号,若电梯处于上升状态要想下降,则必须等到电梯到达相应楼层后才能响应,否则不响应。

(3)定时器中断延时:

设置电梯在所在楼层停留的时间。

(4)目的楼层查询函数:

检测电梯是否到达目的楼层,如果到达则数码管显示相应的楼层数。

(5)电梯运行方向检测函数:

检测电梯的方向是否改变。

(6)LED灯点亮函数:

检测电梯的运行状态。

如果电梯向上,则点亮黄色的LED灯,如果电梯向下运行,则点亮绿色的LED灯,如果电梯处于就绪状态,则点亮红色的LED灯。

编写程序时,由于是采用的查询的方式,所以要对信号进行不断的查询,知道查询到有用的信号才响应,从而往单片机外部输出信号,完成对电路的控制。

原程序见附录1。

5遇到的问题及解决的办法

(1)在电路图的设计方面,由于开始我对简易电梯的认识不够全面,设计的时候过于简单,没有数码管用于显示楼层,也没有LED灯显示电梯运行的状态。

在老师的指导下,我完善了电路图的设计。

另外、复位电路不能响应,原因是电容太高了,经过调正复位电路已经能够正常工作,LED状态灯最开始也是不亮的,经过检查是由于电阻过高,经过调整现已解决。

(2)在软件设计方面,我的程序过于冗长,这个是由于自己对C语言掌握的还不够娴熟,另外就是在设计楼层的状态显示程序时,对电梯运行的考虑欠妥当,导致电梯运行时LED灯指示错误。

这个在同学的帮助下,圆满解决。

虽然在设计中遇到很多问题,但我觉得这锻炼了我的理论联系的实际的能力,也让我发现了自己的不足,在今后的学习中,我将更加努力的学好相关技术。

6课程设计总结

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

通过此次课程设计,我对PROTEUS和KEIL的使用有了一定深度的了解,掌握了这两款软件的基本使用方法,并且通过这次以理论为基础的实践操作之后,我对单片机的51系列的工作原理也有了更深入的认识。

在使用KEIL软件编写程序时,刚开始调试时有许多的错误,看得我头都大了,但是,在我的努力及同学的帮助下都被一一克服。

我得到的最有用的教训就是,写程序必须仔仔细细认认真真的,不能输错一个字符标点,不能少输一个字符或则标点,一旦输错,程序就错误百出。

在修改的时候要有耐心,一个一个的看,一句一句的查,绝不能心急浮躁,否则可能错误的没找到到却把正确的改错了!

这次的课程设计也极大的提高了我的动手能力,使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力,而且还可以加强我们动手查资料的能力,增长我们的知识。

参考文献

[1]陈伯阳.单片机原理及应用实验指导书.自编实验指导书,配合实验平台进行

[2]李朝青.单片机原理及接口技术(第3版)北京:

北航出版社,2006

[3]赵亮,候国锐.单片机C语言编程与实例.北京:

人民邮电出版社,2003

[4]沙占友,王彦朋,孟志永.单片机外围电路设计.北京:

电子工业出版社,2003

[5]马忠梅,刘滨,戚军等.单片机C语言Windows环境编程宝典.北京:

北航出版社,2003

附录1简易电梯的源程序

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitK1=P2^7;

sbitK2=P2^6;

sbitK3=P2^5;

sbitK4=P2^4;

sbitred=P3^0;

sbitgreen=P3^1;

sbityellow=P3^2;

ucharf;

ucharrun;

ucharfloor=1,zui;//floor表示楼层,zui是表示最高或最低目的楼层

bitdirect=1;//direct表示方向(=1是向上,=0是向下)

intp;//p表示延时计数量

uchara[]={0,0,0,0,0};//如果按下键盘,则相应的楼层元素设置为1

ucharb1[]={0xff,0xf7,0xfb,0xfd,0xfe};//led灯点亮的数组

ucharled[5]={0x3f,0x06,0x5b,0x4f,0x66};

voidintial()//初始化函数,定义定时器的相关信息

{

TMOD=0x01;

TH0=(65535-50000)/256;

TL0=(65535-50000)%256;

ET0=1;

EA=1;

}

voiddelay1ms(ucharz)//1ms延时程序

{

uchari;

while(z--)

for(i=0;i<115;i++);

}

voidanjian()//按键检测程序

{

if(K1==0)

{

delay1ms(15);

if(K1==0)

{

if(direct==1)

{

a[1]=0;

}

else

{

if(floor>1)

{

a[1]=1;

TR0=1;

}

else

a[1]=0;

}

}

}

if(K2==0)

{

delay1ms(15);

if(K2==0)

{

if(direct==1)

{

if(floor==1)

{

a[2]=1;

TR0=1;

}

else

a[2]=0;

}

else

{

if(floor>2)

{

a[2]=1;

TR0=1;

}

else

a[2]=0;

}

}

}

if(K3==0)

{

delay1ms(15);

if(K3==0)

{

if(direct==1)

{

if(floor<3)

{

a[3]=1;

TR0=1;

}

else

a[3]=0;

}

else

{

if(floor==4)

{

a[3]=1;

TR0=1;

}

else

a[3]=0;

}

}

}

if(K4==0)

{

delay1ms(15);

if(K4==0)

{

if(direct==1)

{

if(floor<4)

{

a[4]=1;

TR0=1;

}

else

a[4]=0;

}

else

{

a[4]=0;

}

}

}

}

voidchazuizhi()//目的楼层查询程序

{

uchari;

if(!

(K1&K2&K3&K4))

{

if(direct==1)

{

for(i=1;i<=4;i++)

{

if(a[i]==1)

{

zui=i;

TR0=1;

}

}

}

else

{

for(i=4;i>0;i--)

{

if(a[i]==1)

zui=i;

}

}

}

}

voidbianxiang()//查询电梯运行方向是否改变

{

if(floor==zui)

{

if(direct==1)

{

if(floor==4)

direct=0;

if(zui<4)

{

while(K1&K2&K3&K4)

{

green=1;

red=0;

yellow=1;

};

if((K1==0)&(zui>1))

direct=0;

if((K2==0)&(zui>2))

direct=0;

}

}

else

{

if(floor==1)

direct=1;

if(zui>1)

{

while(K1&K2&K3&K4)

{

green=1;

red=0;

yellow=1;

};

if((K3==0)&(zui<3))

direct=1;

if((K4==0)&(zui<4))

direct=1;

}

}

}

}

 

voiddisplay()//点亮led灯程序

{

P1=b1[floor];

P0=led[floor];

if(TR0==0)

{

green=1;

red=0;

yellow=1;

}

if((direct==1)&&(TR0==1))

{

green=1;

yellow=0;

red=1;

}

if((direct==0)&&(TR0==1))

{

green=0;

yellow=1;

red=1;

}

}

 

voidmain()//主函数

{

intial();

while

(1)

{

anjian();

chazuizhi();

display();

bianxiang();

}

}

voidt0()interrupt1//中断函数

{

TH0=(65535-50000)/256;

TL0=(65535-50000)%256;

if(direct==1)

{

if(floor

{

TR0=1;

if(a[floor]==1)

{

if(p==200)

{

p=0;

a[floor]=0;

}

else

{

p++;

}

}

else

{

if(p==60)

{

p=0;

floor++;

}

else

{

p++;

}

}

}

else

{

a[floor]=0;

TR0=0;

}

}

else

{

if(floor>zui)

{

TR0=1;

if(a[floor]==1)

{

if(p==200)

{

p=0;

a[floor]=0;

}

else

{

p++;

}

}

else

{

if(p==60)

{

p=0;

floor--;

}

else

{

p++;

}

}

}

else

{

a[floor]=0;

TR0=0;

}

}

}

 

附录2简易电梯的原理图

图5电梯原理图

 

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1