精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx

上传人:b****1 文档编号:69365 上传时间:2023-04-28 格式:DOCX 页数:33 大小:4.05MB
下载 相关 举报
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第1页
第1页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第2页
第2页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第3页
第3页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第4页
第4页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第5页
第5页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第6页
第6页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第7页
第7页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第8页
第8页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第9页
第9页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第10页
第10页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第11页
第11页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第12页
第12页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第13页
第13页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第14页
第14页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第15页
第15页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第16页
第16页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第17页
第17页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第18页
第18页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第19页
第19页 / 共33页
精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx

《精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx》由会员分享,可在线阅读,更多相关《精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx(33页珍藏版)》请在冰点文库上搜索。

精品基于单片机的模拟电梯系统设计毕业论文设计40论文41.docx

精品基于单片机的模拟电梯系统设计毕业论文设计40论文41

(此文档为word格式,下载后您可任意编辑修改!

丽水学院

毕业设计(论文)

题目基于单片机的模拟电梯系统设计

院别工学院

班级自动化09

 

二〇一三年四月二日

 

基于单片机的模拟电梯系统设计

专业:

自动化班级:

自动化09姓名:

吴惠彬指导老师:

凌忠兴

摘要单片机即单片微型计算机(Single-ChipMicrocomputer),是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。

其中51单片机是各种单片机中最为典型和最有代表性的一种,广泛应用于各个领域。

电梯是集机械原理应用、电气控制技术、微处理器技术、系统工程学等多学科和技术分支于一体的机电设备,它是建筑中的永久垂直交通工具。

本文使用单片机C语言进行编程,实现运送乘客到任意楼层,并且显示电梯的楼层和上下行。

利用单片机控制电梯有成本低,通用性强,灵活性大及易于实现复杂控制等优点。

关键词单片机电梯C语言

 

Elevatorsimulationsystembasedonsinglechipdesign

Major:

automaticclass:

automation09name:

WuHuibinInstructor:

LingZhongxing

AbstractscmistheSingleChipMicrocomputer(SingleChipMicrocomputer),isasetofcpu,ramromtiming,countandvariousinterface,whichintegratesthemicrocontroller.Including51singlechipmicrocomputerasthemosttypicalandmostrepresentativeofallkindsofsinglechipmicrocomputer,awidelyusedinvariousfields.Theelevatorissetmachineryprincipleapplication,electricalcontroltechnologyandmicroprocessortechnology,systemsengineeringandothermulti-disciplinarybranchintheintegrationofmechanicalandelectricalequipmentandtechnology,itistheconstructionofpermanentverticaltransport.UsingsinglechipmicrocomputerClanguageprogramming,realizetheferrypassengerstoanyfloor,TDDanddisplaytheelevatorfloorandmissing”“Dostatementmustcallmissing”等等一大堆,然后自己根据这些提示去查找错误,然后一点点的修改,最后成功编译,当编译成功之后仿真然后在开发板上进行调试,一开始的时候一些功能实现不了,比如开门关门的状态跟自己预先想的完全反了,后面又去程序中修改,这样反反复复直到功能全部实现[5]。

4.1.2系统仿真

此次系统仿真用的是protues进行仿真的,首先用keil编译程序产生hex文件并保存,然后在protues上画出仿真图,导入程序并进行仿真,一开始仿真的时候是使用L298N进行仿真的,正在关门的状态显示不出来,去查了正在关门的程序,是直接把那个和关门的程序写一样了,修改过来之后就好了,后来因为设计的更改,采用了H桥驱动电路的仿真仿真图如下:

[7]

图4-1仿真图片

4.1.3硬件调试

在调试过程中,一开始的时候蜂鸣器一直不响,一开始以为蜂鸣器是坏的,用万用表的二极管档测了之后发现蜂鸣器能响,然后又看三极管,接法也没错误,最后去检查了程序的IO口才发现是IO口定义错了,本来是应该定义P1.6的,程序上写成了P3.7。

将这个改过来之后蜂鸣器就能响了。

还有就是电机只会正转,不会反转,然后找到当电机反转时电流的流向,后来发现光耦接反了,按照那个接法,光耦内的三极管会一直处于断路状态,所以无法驱动H桥内的电机。

当全部修改好之后,电梯就可以正常运行了。

4.2系统调试成果

当插上电源的时候,电梯显示的楼层在1楼,电梯运行指示灯亮,电源指示灯亮,电源模块的二极管也亮,图片如下:

图4-2调试图片

 

假设我在4楼,现在我要到1楼去,我按下4楼下召唤按钮,然后电机反转,电梯到达4楼,图片如下:

图4-3调试图片

进入门后,按下1楼按键,电梯运行,图片如下:

图4-4调试图片

其他的各个功能也都能正常运行,这样调试就好了。

最后附上完成后的实物图,如下:

图4-5实物图片

 

结束语

经过了几个月的努力,毕业设计到此终于算是完成了,回头看看自己这几个月下来的努力,真是一段辛酸史,起初,自己对这一块的了解只是那么一点点,仅仅只是一点点,但是接触的越多,发现自己以前学的真的太少太少,大学四年,也许只有这次是自己最认真的一次,这一次的收获比任何时候都多,在这过程中,每当自己接触到自己没有接触过或者了解不深刻的事物,最后被我彻底了解之后,心情总是很愉悦,这是种久违的感觉,就像曾经的高中,当自己解出一道难题,心里的满足感是满满的,渐渐的,发现自己喜欢上了搞这些东西,以后有机会,一定要再自己没有目的的做这些设计,仅仅为了能够让自己满足,也许,做这类设计已经成为了我的兴趣,我将持之以恒的坚持下去,保留这份激情。

 

参考文献

[1]张毅刚.单片机原理及应用[M]北京:

高等教育出版社,2004.

[2]刘守义.单片机应用技术[M]西安电子科技大学出版社,2008.

[3]吉雷.Protel99从入门到精通[M]西安电子科技大学出版社2001.

[4]清源计算机工作室.Protel99SE原理图于PCB设计[M]机械工业出版社,2003.

[5]张义和等.例说51单片机(c语言版)(第3版)[M]北京人民邮电出版社,2010.

[6]宋德杰.机电一体化与控制——用单片机实现电梯控制系统[J]电子制作,2010,(10).

[7]林志琦.基于Protues的单片机可视化软硬件仿真[M]北京:

北京航空航天大学出版社,2009.

[8]宗群 .基于NNFPN模型的电梯故障诊断方法的研究[J]控制与决策2005,20(3)

[9]FENGYong--wuTheModelingandSimulationofHorizontalVibrationsforHigh-speedElevator[J].JournalofShanghaiJiaotongUniversity.2007,41(4)

[10]YUZhong-()do{LP=0;LN=1;STATE=1;}while(0)下降

#defineStop()do{LP=0;LN=0;}while(0)停止

#defineOpen()do{DOORSTATE1=0;DOORSTATE2=1;}while(0)开

#defineOpening()do{DOORSTATE1=0;DOORSTATE2=0;}while(0)正在开

#defineClose()do{DOORSTATE1=1;DOORSTATE2=0;}while(0)关

#defineClosing()do{DOORSTATE1=1;DOORSTATE2=1;}while(0)正在关

unsignedchargcount,floor[20]={1};

unsignedcharwait=0;

unsignedchartime;

unsignedcharbuttom=0;

unsignedcharTimer;

unsignedcharCurrentFloor=1;

unsignedcharstate;

unsignedcharKeyNum;

bitflag;

voidinit();

unsignedchargetkey();

unsignedcharkeyscan();

voidstop();

voidup();

voidclose();

voidclosing();

voidopening();

voidopen();

voiddown();

voidBeep();

voidDisPlay();

voiddelay(unsignedchara);

voidmain()

{

init();

while

(1)

{

KeyNum=keyscan();

DisPlay();数码管显示

switch(state)判断状态

{

caseSTOP:

stop();

break;

caseUP:

up();

break;

caseDOWN:

down();

break;

caseCLOSE:

close();

break;

caseCLOSING:

closing();

break;

caseOPEN:

open();

break;

caseOPENING:

opening();

default:

break;

}

}

}

voidinit()定时器初始化

{

TMOD=0X01;

TH0=15536256;

TL0=15536%256;

TR0=1;

ET0=1;

Stop();

}

unsignedchargetkey()判断哪个按键按下

{

if(S1_UP==0)returnS1UP;

if(S2_UP==0)returnS2UP;

if(S2_DOWN==0)returnS2DOWN;

if(S3_UP==0)returnS3UP;

if(S3_DOWN==0)returnS3DOWN;

if(S4_DOWN==0)returnS4DOWN;

if(FAST_OPEN==0)returnFASTOPEN;

if(FAST_CLOSE==0)returnFASTCLOSE;

if(S1==0)returnF1;

if(S2==0)returnF2;

if(S3==0)returnF3;

if(S4==0)returnF4;

returnNOKEY;

}

unsignedcharkeyscan()

{

staticunsignedcharkeynum=NOKEY;

staticunsignedcharcount=0;

unsignedcharkey;

key=getkey();

if(keynum==key)

{

count++;

if(count==20)

{

keynum=NOKEY;

count=0;

returnkey;

}

}

else

{

keynum=key;

}

returnNOKEY;

}

voidtimer0()interrupt1定时器1中断

{

TH0=15536256;

TL0=15536%256;

gcount++;

if(gcount==20)

{

gcount=0;

Timer++;

}

}

voidstop()停止状态

{

switch(KeyNum)

{

caseS1UP:

if(CurrentFloor!

=1)

{

floor[wait]=1;

state=CLOSING;

}

break;

caseS2UP:

if(CurrentFloor!

=2)

{

floor[wait]=2;

state=CLOSING;

}

break;

caseS2DOWN:

if(CurrentFloor!

=2)

{

floor[wait]=2;

state=CLOSING;

}

break;

caseS3UP:

if(CurrentFloor!

=3)

{

floor[wait]=3;

state=CLOSING;

}

break;

caseS3DOWN:

if(CurrentFloor!

=3)

{

floor[wait]=3;

state=CLOSING;

}

break;

caseS4DOWN:

if(CurrentFloor!

=4)

{

floor[wait]=4;

state=CLOSING;

}

break;

default:

break;

}

}

voidopening()正在开状态

{

Opening();

EA=1;

if(Timer==4)

{

state=OPEN;

Timer=0;

EA=0;

}

switch(KeyNum)

{

caseFASTOPEN:

state=OPEN;

EA=0;

Timer=0;

break;

caseF1:

floor[wait]=1;

break;

caseF2:

floor[wait]=2;

break;

caseF3:

floor[wait]=3;

break;

caseF4:

floor[wait]=4;

break;

caseS1UP:

if(CurrentFloor!

=1)

{

wait=wait++%20;

floor[wait]=1;

state=CLOSING;

}

break;

caseS2UP:

if(CurrentFloor!

=2)

{

wait=wait++%20;

floor[wait]=2;

state=CLOSING;

}

break;

caseS2DOWN:

if(CurrentFloor!

=2)

{

wait=wait++%20;

floor[wait]=2;

state=CLOSING;

}

break;

caseS3UP:

if(CurrentFloor!

=3)

{

wait=wait++%20;

floor[wait]=3;

state=CLOSING;

}

break;

caseS3DOWN:

if(CurrentFloor!

=3)

{

wait=wait++%20;

floor[wait]=3;

state=CLOSING;

}

break;

caseS4DOWN:

if(CurrentFloor!

=4)

{

wait=wait++%20;

floor[wait]=4;

state=CLOSING;

}

break;

default:

break;

}

}

voidopen()开

{

Open();

switch(KeyNum)

{

caseFASTCLOSE:

state=CLOSING;

break;

caseF1:

floor[wait]=1;

state=CLOSING;

break;

caseF2:

floor[wait]=2;

state=CLOSING;

break;

caseF3:

floor[wait]=3;

state=CLOSING;

break;

caseF4:

floor[wait]=4;

state=CLOSING;

break;

caseS1UP:

if(CurrentFloor!

=1)

{

wait=wait++%20;

floor[wait]=1;

state=CLOSING;

}

break;

caseS2UP:

if(CurrentFloor!

=2)

{

wait=wait++%20;

floor[wait]=2;

state=CLOSING;

}

break;

caseS2DOWN:

if(CurrentFloor!

=2)

{

wait=wait++%20;

floor[wait]=2;

state=CLOSING;

}

break;

caseS3UP:

if(CurrentFloor!

=3)

{

wait=wait++%20;

floor[wait]=3;

state=CLOSING;

}

break;

caseS3DOWN:

if(CurrentFloor!

=3)

{

wait=wait++%20;

floor[wait]=3;

state=CLOSING;

}

break;

caseS4DOWN:

if(CurrentFloor!

=4)

{

wait=wait++%20;

floor[wait]=4;

state=CLOSING;

}

break;

default:

break;

}

}

voidclosing()正在关

{

Closing();

EA=1;

if(Timer==3)

{

EA=0;

Timer=0;

state=CLOSE;

}

switch(KeyNum)

{

caseFASTCLOSE:

state=CLOSE;

break;

caseF1:

floor[wait]=1;

break;

caseF2:

floor[wait]=2;

break;

caseF3:

floor[wait]=3;

break;

caseF4:

floor[wait]=4;

break;

caseS1UP:

if(CurrentFloor!

=1)

{

wait=wait++%20;

floor[wait]=1;

state=CLOSE;

}

break;

caseS2UP:

if(CurrentFloor!

=2)

{

wait=wait++%20;

floor[wait]=2;

state=CLOSE;

}

break;

caseS2DOWN:

if(CurrentFloor!

=2)

{

wait=wait++%20;

floor[wait]=2;

state=CLOSE;

}

break;

caseS3UP:

if(CurrentFloor!

=3)

{

wait=wait++%20;

floor[wait]=3;

state=CLOSE;

}

break;

caseS3DOWN:

if(CurrentFloor!

=3)

{

wait=wait++%20;

floor[wait]=3;

state=CLOSE;

}

break;

caseS4DOWN:

if(CurrentFloor!

=4)

{

wait=wait++%20;

floor[wait]=4;

state=CLOSE;

}

break;

default:

break;

}

}

voidclose()关

{

Close();

if(buttom==wait)

{

if(floor[buttom]>CurrentFloor)

{

state=UP;

time=(floor[buttom]-CurrentFloor)*2;

floor[buttom]=1;

floor[wait]=1;

buttom=buttom++%20;

wait=wait++%20;

}

elseif(floor[buttom]

{

time=(CurrentFloor-floor[buttom])*2;

state=DOWN;

floor[buttom]=1;

floor[wait]=1;

buttom=buttom++%20;

wait=wait++%20;

}

else

{

floor[buttom]=1;

floor[wait]=1;

}

}

elseif(buttom

{

if(floor[buttom]>CurrentFloor)

{

state=UP;

time=(floor[buttom]-CurrentFloor)*2;

floor[buttom]=1;

buttom=buttom++%20;

}

elseif(floor[buttom]

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

当前位置:首页 > 自然科学 > 物理

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

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