基于单片机电梯控制系统设计完整版毕业设计.docx

上传人:b****8 文档编号:11149142 上传时间:2023-02-25 格式:DOCX 页数:32 大小:1.33MB
下载 相关 举报
基于单片机电梯控制系统设计完整版毕业设计.docx_第1页
第1页 / 共32页
基于单片机电梯控制系统设计完整版毕业设计.docx_第2页
第2页 / 共32页
基于单片机电梯控制系统设计完整版毕业设计.docx_第3页
第3页 / 共32页
基于单片机电梯控制系统设计完整版毕业设计.docx_第4页
第4页 / 共32页
基于单片机电梯控制系统设计完整版毕业设计.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

基于单片机电梯控制系统设计完整版毕业设计.docx

《基于单片机电梯控制系统设计完整版毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机电梯控制系统设计完整版毕业设计.docx(32页珍藏版)》请在冰豆网上搜索。

基于单片机电梯控制系统设计完整版毕业设计.docx

基于单片机电梯控制系统设计完整版毕业设计

《基础强化训练》报告

 

题目:

电梯控制系统电路印制板图的设计

专业班级:

电子科学与技术0801班

学生姓名:

金才

指导教师:

葛华

 

武汉理工大学信息工程学院

2010年7月15日

基础强化训练任务书

学生姓名:

金才专业班级:

电子0801

指导教师:

葛华工作单位:

信息工程学院

题目:

电梯控制系统电路印制板图的设计

一、训练目的

主要目的就是对学生进行基础课程、基本技能、基本动手能力的强化训练,提高学生的基础理论知识、基本动手能力,提高人才培养的基本素质。

二、训练内容和要求

1、基础课程和基本技能强化训练

(1)设计一个电梯控制系统电路;

(2)对所设计电路的基本原理进行分析;

2、文献检索与利用、论文撰写规范强化训练

要求学生掌握基本的文献检索方法,科学查找和利用文献资料,同时要求学生获得正确地撰写论文的基本能力,其中包括基本格式、基本排版技巧和文献参考资料的写法、公式编排、图表规范制作、中英文摘要的写法等训练。

3、基本动手能力和知识应用能力强化训练

(1)学习PROTEL软件;

(2)绘制电路的原理图和PCB版图,要求图纸绘制清晰、布线合理、符合绘图规范;

4、查阅至少5篇参考文献,按《武汉理工大学课程设计工作规范》要求撰写基础强化训练报告书,全文用A4纸打印。

三、初始条件

计算机;MicrosoftOfficeWord软件;PROTEL软件

四、时间安排

1、20010年7月12日集中,作基础强化训练具体实施计划与报告格式要求的说明;学生查阅相关资料,学习电路的工作原理。

2、2010年7月12日,电路设计与分析。

3、2010年7月13日至2010年7月15日,相关电路原理图和PCB版图的绘制。

4、2010年7月16日上交基础强化训练成果及报告,进行答辩。

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

 

摘要

本文介绍了一种采用单片AT89S52芯片进行电梯控制系统的设计方法,主要阐述如何使用单片机进行编程来实现电子设计的方法,利用单片机编程实现功能,简洁而又多变的设计方法,缩短了研发周期,同时使电梯控制系统体积更小功能更强大。

本设计实现了电梯控制系统所需的一些基本功能,能通过方向按键选择方向,能通过数字按键选择楼层,数码管显示实时楼层数,点阵显示实时方向,电机控制使电梯箱能上下运动。

原理图和PCB部分采用protel99se专业软件来设计,实现将设计产品化。

本次设计更注重了把一些新的思路加入到设计中。

主要包括采用了AT89S52芯片,使用C语言进行编程,使其具有了更强的移植性,更加利于产品升级。

关键词:

AT89S52;电梯控制系统;protel99se;C语言

 

Abstract

Thispaperintroducesakindofsingle-chipAT89S52chipsforelevatorcontrolsystemdesignmethod,thispaperdiscusseshowtousemicrocontrollerprogramtorealizeelectronicdesignmethod,themicrocontrollerprogrammingfunction,conciseandchangefuldesignmethod,shortenthedevelopmentcycle,andmaketheelevatorcontrolsystemsmallermorepowerful.Thedesignandimplementationoftheelevatorcontrolsystemforsomebasicfunction,canchoosedirection,keydirectionbydigitalkeychoicefloor,digitaltubedisplayreal-timeseveralfloors,dotmatrixdisplayreal-timedirection,motorcontrolboxcanmakeupelevator.SchematicdiagramandPCBprotel99separtadoptsprofessionalsoftwaretodesignandrealizethedesignprod.Thisdesignhasputmoreattentiontosomenewideastojoininthedesign.MainlyincludesusingClanguage,anduseAT89S52chips,whichhasastronger,moreconducivetoupgradeportability.

Keywords:

AT89S52devices,Theelevatorcontrolsystem,Protel99se,Clanguage

1绪论

人类社会已经进入信息化时代,信息社会的发展离不开电子产品的进步。

单片机的出现使人类实现利用编程来代替复杂的硬件搭建电路,它靠程序运行,并且可以修改。

通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。

一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!

但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!

只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!

单片机应用的主要领域非常广,智能化家用电器、办公自动化设备商业营销设备、工业自动化控制、智能化仪表、智能化通信产品、汽车电子产品、航空航天系统和国防军事、尖端武器等领域。

   

单片机应用的意义不仅在于它的广阔范围及所带来的经济效益,更重要的意义在于,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。

以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。

以前自动控制中的PID调节,现在可以用单片机实现具有智能化的数字计算控制、模糊控制和自适应控制。

这种以软件取代硬件并能提高系统性能的控制技术称为微控技术。

随着单片机应用的推广,微控制技术将不断发展完善。

电路的集成化不仅对硬件电路的设计相关,与电路的布局同样相关。

印刷版的出现使得电路产品更加规范,体积更小。

Protel99se是一款专业的绘制电路及印刷版的软件,近年来的不断升级使得其功能更加完善,出现了altiumdesigner、proteldxp等升级版本。

 

2设计内容及要求

2.1设计目的

(1)学会单片机的使用来实现智能控制。

(2)熟练掌握keil软件应用和C语言编程在单片机中的应用。

(3)学会应用protel99se软件绘制原理图和PCB版图。

(4)掌握电梯控制系统的主要功能与单片机实现的方法。

2.2设计任务及要求

(1)设计出一个电梯控制系统。

(2)运用keil软件编程。

(3)运用protel99se绘制原理图。

(4)运用protel99se绘制PCB版图。

3设计原理及单元模块

3.1设计原理及方法

根据层次化设计理论,该设计问题自顶向下

可分为单片机最小系统模块、显示模块、开关控制模块、电机驱动模块、报警模块,其系统框图如图所示。

 

图3.1电梯控制系统框图

本次设计是采用开关控制实现上下到指定楼层,通过电机转动带动电梯箱上下运动,到达指定楼层。

显示模块是显示此时的楼层,报警模块具有错误操作报警以及楼层到达的提示功能。

3.2单元模块设计

3.2.1单片机最小系统模块

图3.2.1单片机最小系统

单片机最小系统包括主芯片,复位电路和晶振脉冲产生电路。

X1为12MHz晶振,与30Pf电容并联,产生1us的脉冲信号作为单片机的“心脏”部分。

复位电路是开关与10uf电容并联组成的上电自动复位电路,在RST端为高电平时单片机清零,也即开关按下会产生清零信号。

RP1为排阻,作为P0端的上拉电阻,接此原因是P0端口是由OC门组成。

U1为数据输入端口,通过电脑编程能将程序通过此接口烧录入单片机中。

 

3.2.2开关控制模块

图3.2.2开关控制模块

开关控制模块采用4*4矩阵形式电路可以减少单片机接口的使用。

写键盘代码时运用的是逐行扫描判断键值按下与否。

编程如下:

ucharkey_scan(void)

{ucharscode,recode;

P1=0xf0;

if((P1&0xf0)!

=0xf0)

{delay1

(2);

if((P1&0xf0)!

=0xf0)//有键按下

{scode=0xfe;//辅助变量,设定行

while((scode&0x10)!

=0)

{P1=scode;//将某一行设为0,从而判断是否为该行

if((P1&0xf0)!

=0xf0)

{recode=P1&0xf0;//列码

scode=scode&0xf0;//行码

return(scode+recode);//按键坐标}

elsescode=(scode<<1)|0x01;//下一行判断

}}}

return0;}

3.2.3电机驱动模块

图3.2.3电机驱动模块

电机驱动采用L297环形计数分配器和L298大功率步进电机驱动器完成。

本次设计采用步进电机,目的是方便智能控制,可实现调速功能。

电机使用的是二相步进电机,由于仅用来实验,所以电机采用5V电源供电即可,实际中必须使用大电压来供电方能带动重物(人等)。

环形分配器L297引脚图如图3.2.3-1:

图3.2.3-1L97引脚图

L297功能介绍:

SYNC为斩波器输出端,多个L297一起用时用此端口连接在一起共用一组时钟振荡;

HPME端为集电极开路输出端;

A~D为四相输入端;

INIH1,INIH2为控制A~D相驱动,此引脚为低电平时A~D相禁止输入;

ENABLE端为使能输入端,低电平阻止电机驱动;

RESET为复位端;

HALF/FULL为半角全角控制端,高电平时选择半步输入;

CLOCK为时钟输入端,控制电机速度;

CW/CCW为方向控制端;

OSC为斩波器频率输入端;

SEN1和SEN2为电流检测端。

大功率步进电机驱动器L298引脚图如图3.2.3-2:

图3.2.3-2L298引脚图

L298功能介绍:

SENA和SENB为电流检测端;

IN1~IN4为A~D相输入控制端;

ENA和ENB为使能输入端,低电平禁止输入;

OUT1~OUT4为输出端。

3.2.4显示模块

图3.2.4显示模块

由于点阵和双位数码管耗电流较大,不能直接连接单片机IO口驱动其正常工作,所以加上锁存器74HC573和显示译码器CD4511驱动。

其中利用CD4511模块的另一作用是节省接口,因为本次设计外围电路较多,单片机接口不够,使用此驱动是必要的。

锁存器74HC573引脚图如图3.2.4-1:

图3.2.4-174HC573引脚图

74HC573功能介绍:

D0~D7为输入端;

Q0~Q7为输出端;

OEN为输出使能端,当其输入为高电平时输出关断,输入为低电平时输出正常;

DEN为输出输入使能端,当此端口为高电平时,输出跟随D0~D7,当此端口为低电平时,输出保持上一时刻的状态;

显示译码器CD4511引脚图如图3.2.4-2:

图3.2.4-2CD4511引脚图

CD4511功能介绍:

A~D为输入端;

QA~QG为输出端;

LT为试灯输入端,当此端口为低电平时,无论其他的状态如何,始终输出数字8,作为判断数码管的好坏端口使用;

LE/STB为灭灯输入端,当此端口输入低电平时数码管灭,输入高电平时数码管正常显示;

BI为动态消零信号输入端,当此端口输入低电平时且LT为高电平时,当输入0000时,输出0熄;

点阵的使用介绍:

点阵是8*8位的,相当于由64个LED组成,8个阳极控制端口,8个阴极控制端口;

数码管的使用介绍:

数码管是采用两位共阴极数码管,通过对a~g的编码来显示数字。

3.2.5报警模块

图3.2.5报警模块

本设计采用8550三极管驱动蜂鸣器。

当PO口送高电平时,三极管处于截止状态,三极管Vce电压约为VCC,蜂鸣器只有很少电流流过,没法驱动其发声。

当PO口送低电平时,三极管处于饱和导通状态,三极管Vce约为0.3V,蜂鸣器有较大电流流过,能驱动其报警发声。

3.2.6电路总图

图3.2.6电路总图

由于protel99se内部元件不齐全,本次设计全部采用手工绘制元件库以达到训练的最佳效果。

 

4软件模块

图4程序流程图

注:

详细程序见附录二

5PCB印刷版图模块

5.1protel99se功能介绍

Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源--地层和16个机加工层。

5.2PCB版图

图5.2.1非镀铜版图

在生成PCB之前,要进行元件的封装。

由于protel99se内部封装不齐全,本次设计全部采用手工绘制封装库以达到最佳训练效果。

PCB布线规则是尽量使正面走线和反面走线成90度角,以达到最小干扰。

图5.2.2镀铜顶层图样

图5.2.3镀铜底层图样

图5.3.43D版图正面

图5.3.53D版图背面

6心得体会

通过此次电梯控制系统的设计,我收获颇丰。

设计的核心内容就是利用单片机C51的编程来实现控制外围各电路的运行以及protel99se绘制PCB版图。

通过本次设计,我熟练掌握了程控系统设计的一般步骤,熟练掌握了protel99se软件的用法,并对编程能力起到了一定的提高作用。

在绘制PCB的过程中,我学习了如何制作元件库,如何制作封装库,如何调用原始封装。

在画PCB版图时,通过手工布线,练习了PCB布局,掌握了PCB绘制的一般规则,同时掌握了如何对PCB版镀铜,通过3D模拟图查看实物最终模型。

感谢学校给我们这次机会,锻炼了我们的动手能力及运用专业软件的能力。

通过这次课设让我明白了理论和实际操作之间差距,而且也让我很明确得意识到自己在数电上有很多的知识漏洞,以后应该多钻研一下。

 

参考文献

[1]李朝青.单片机通讯技术与工程实践.北京:

航空航天大学出版,2007.2

[2]李群芳.单片机原理接口与应用.北京:

清华大学出版社,2005.6

[3]杨志亮.Protel99SE电路原理图设计技术.西安:

西北工业大学出版社,2002.2

[4]马忠梅.单片机C语言应用程序设计.北京:

航空航天大学出版社,1997.10

[5]谢自美.电子线路设计.武汉:

华中科技大学出版社,2000.5

[6]中国电器工业协会微电机分会.微特电机应用手册.福建:

福建科技出版社,2010.4

[7]胡烨.Protel99SE电路设计与仿真教程.北京:

机械工业出版社,2005.5

 

附录一

元件清单

附录二

C语言代码

#include"reg52.h"

#defineucharunsignedchar

#defineuintunsignedint

ucharDZ1[]={0x08,0x14,0x2a,0x08,0x08,0x08};

ucharDZ2[]={0xbf,0xdf,0xef,0xf7,0xfd,0xfb};

ucharDZ3[]={0x08,0x08,0x08,0x2a,0x14,0x08};

ucharshuma[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};

ucharLC[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xedb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};//楼层编码

ucharkey,dir,floor,zancun,s,x,p2;

sbitDA=P0^0;

sbitDB=P0^1;

sbitDC=P0^2;

sbitDD=P0^3;

sbitw1=P0^4;//数码管位选1

sbitw2=P0^5;//数码管位选2

sbitwa=P0^6;//点阵阳极使能

sbitwb=P0^7;//点阵阴极使能

sbitEN=P3^0;//电机使能

sbitCW=P3^1;//方向控制

sbitCLOCK=P3^2;//速度控制

sbitred=P3^3;//上键显示

sbitgreen=P3^4;//下键显示

sbitbeep=P3^5;//报警

voiddelay1(ucharz)

{

uchari,j;

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

for(j=110;j>0;j--);

}

voiddelay2(ucharz)

{

uchari,j;

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

{

if(key==0)//减短代码运行时间,使用更多时间扫描键盘

break;

else

for(j=110;j>0;j--);

}

}

ucharkey_scan(void)

{

ucharscode,recode;

P1=0xf0;

if((P1&0xf0)!

=0xf0)

{

delay1

(2);

if((P1&0xf0)!

=0xf0)//有键按下

{

scode=0xfe;//辅助变量,设定行

while((scode&0x10)!

=0)

{

P1=scode;//将某一行设为0,从而判断是否为该行

if((P1&0xf0)!

=0xf0)

{

recode=P1&0xf0;//列码

scode=scode&0x0f;//行码

return(scode+recode);//按键坐标

}

else

scode=(scode<<1)|0x01;//下一行判断

}

}

}

return0;

}

voiddisplay1(void)//上箭头显示

{

uchari,j;

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

{

wa=1;

P2=DZ1[i];

for(j=500;j>0;j--);

wa=0;

wb=1;

P2=DZ2[i];

for(j=500;j>0;j--);

wb=0;

}

}

voiddisplay2(void)//下箭头显示

{

uchari,j;

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

{

wa=1;

P2=DZ3[i];

for(j=500;j>0;j--);

wa=0;

wb=1;

P2=DZ2[i];

for(j=500;j>0;j--);

wb=0;

}

}

voidshuxian(ucharz)//数码管显示

{

uchartemp;

w1=0;

p0=shuma[z/10];

temp=P0;

P0=p0|temp;

w1=1;

w2=0;

p0=shuma[z%10];

temp=P0;

P0=p0|temp;

w2=1;

}

voidinit(void)//初始化

{

dir=0;

w1=1;

w2=1;

wa=0;

wb=0;

floor=0;

zancun=1;

beep=1;

EN=0;

EA=1;

ET1=1;//T1中断允许

TMOD=0x10;//T1的8位计数

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

}

voidmain(void)

{

init();

while

(1)

{

key=key_scan();

if(key!

=0)

{

delay2(10);

if(key!

=0)

{

TR1=1;

switch(key)

{

caseLC[14]:

dir=1;//按键储存上键值

break;

caseLC[15]:

dir=2;//按键储存下键值

break;

defaultbreak;

}

if(dir==1)

{

shuxian(s);

display1();

if((zancun-floor)>=0)

{

switch(key)

{

caseLC[0]:

floor=1;

break;

caseLC[1]:

floor=2;

break;

caseLC[2]:

floor=3;

break;

caseLC[3]:

floor=4;

break;

caseLC[4]:

floor=5;

break;

caseLC[5]:

floor=6;

break;

caseLC[6]:

floor=7;

break;

caseLC[7]:

floor=8;

break;

caseLC[8]:

floor=9;

break;

caseLC[9]:

floor=10;

break;

caseLC[10]:

floor=11;

break;

caseLC[11]:

floor=12;

break;

caseLC[12]:

floor=13;

break;

caseLC[13]:

floor=14;

break;

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

当前位置:首页 > 高等教育 > 教育学

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

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