毕业设计(论文)单片机滚动电梯节能系统设计.doc

上传人:laozhun 文档编号:3977956 上传时间:2023-03-30 格式:DOC 页数:38 大小:5.78MB
返回 下载 相关 举报
毕业设计(论文)单片机滚动电梯节能系统设计.doc_第1页
第1页 / 共38页
毕业设计(论文)单片机滚动电梯节能系统设计.doc_第2页
第2页 / 共38页
毕业设计(论文)单片机滚动电梯节能系统设计.doc_第3页
第3页 / 共38页
毕业设计(论文)单片机滚动电梯节能系统设计.doc_第4页
第4页 / 共38页
毕业设计(论文)单片机滚动电梯节能系统设计.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《毕业设计(论文)单片机滚动电梯节能系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)单片机滚动电梯节能系统设计.doc(38页珍藏版)》请在三一办公上搜索。

1、装订线 本科生毕业论文(设计) 题目: 滚动电梯节能 系 部 计算机科学与技术系 学科门类 工科 专 业 计算机科学与技术 学 号 0810111069 姓 名 指导教师 年 月 日目 录前言2一、简要方案3二、设计实现4(一)单片机最小系统电路4(1)单片机部分5(2)复位电路5(3)时钟电路6(4)串行通信部分8(5)电源接口电路8(二)功能电路部分9(1)语音模块9(3)激光模块10图12 激光语音实物图12(4)继电器和电机驱动模块12三、软件部分15四、设计总结16参考文献17附录一:程序代码18滚动电梯节能系统.( 合肥师范学院08计算机普本非师班 胡钟琴) 摘要:该设计本着节能的

2、原则,采用单片机作为核心部件来控制电动机,能使电梯在没人乘坐时不会发生空转的现象,达到了节能的目的。设计实现了节能功能,延长了电梯的使用寿命,是十分适合当前商场、超市等场所滚动电梯的一个控制系统。 关键词:单片机;节能;自动控制 前言 电梯现在越来越多,在对宾馆、写字楼等的用电情况调查统计中,电梯用电量占总用电量的17%-25%以上,仅次于空调用电量,高于照明、供水等的用电量。随着现代化生产规模不断扩大和人们生活水平不断提高,电能供需矛盾日益突出,节电呼声日益高涨。因此,节约电能具有特别重要的社会意义和经济效益。在许多商场以及一些公共场所,例如火车站、医院、公园等地方常常会使用滚动电梯,它的方

3、便大家有目共睹。但我们经常看见,即使没有人乘坐,电梯仍会工作。这样不仅降低电梯使用寿命,而且极大的浪费能源。如何能够有效的节约能量,这也是本系统设计的初衷。使电梯在没有乘客时不工作是十分有效的节能方法,在电梯入口出和出口出各放置一组激光探测装置。通过激光探测此时电梯上是否有人,只有在有人时电机才会工作。从而达到节能的目的。同时也能提高电梯的使用时长,节约资金。可广泛应用于商场,超市,车站等地方。单片机技术发展多年,而且简单易行。滚动电梯是十分常见的,其系统十分简单,用AT89C51RC等单片机能十分有效的对其进行控制。采集部分使用激光检测技术,用单片机对信号进行分析、处理。以语音播报提示乘客不

4、要在电梯出口处逗留,注意安全,并控制电机的运转情况。本设计所需硬件设备很少,但能有效的实现目的,达到令人满意的效果。一、简要方案根据前言所产生的设想及方案构思,产生了以下的设计方案。在电梯出入口各设有一组激光,每组激光都与单片机的I/O相连,一般情况下,I/O口成高电平。当有人经过时就会阻断激光,使I/O口呈现低电平。单片机就会对产生的信号进行处理,或控制电梯电机的运转。根据我们要实现的功能原理图分为三个大模块,最后要刻成三个电路板,其各自又包含几个小模块:(1)最小系统的组成:单片机模块、电源模块、复位模块、晶振模块、串口通讯模块。(2)激光模块的组成:语音模块、激光模块。(3)电机模块的组

5、成:继电器模块、电机驱动模块。其中功能模块的方框图如图1所示激光模块采集信号单片机模块处理信号语音播报模块对继电器发出信号电机运转图1 功能模块的方框图系统实物图如图2所示图2 系统实物图 二、设计实现(一)单片机最小系统电路电路部分是由单片机最小系统、激光模块和电机模块组成,其中单片机的最小系统部分十分重要,是整个系统的核心部分。单片机的工作就是执行用户程序、指挥各部分硬件完成既定的任务。单片机实质上是一个芯片。它具有结构简单、控制功能强、可靠性高、体积小、价格低等优点,其应用领域十分广泛。图3 最小系统电路方框图(1)单片机部分 该部分由单片机芯片、上拉电阻、插槽等组成。本设计选用比较常见

6、的AT89C52单片机芯片。其电路图如图4所示。图4 单片机芯片部分(2)复位电路 无论是单片机刚开始接上电源,还是断电后或者发生故障后都要复位。单片机复位是使CPU和系统中的其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。复位电路由电容串联电阻组成,由图并结合“电容电压不能突变”性质,可以知道当系统一通电,RST引脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定,典型的单片机当RST引脚的高电平持续两个机器周期以上就将复位。教科书推荐C取10UF,R取8.2K。也还有其他的取法,原理就是让RC组合可以在RST引脚上长生不少于2个机器周期的高电平。电路图如图5所示

7、。图5 复位部分电路图(3)时钟电路单片机是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。时钟电路用于生产单片机工作所需要的时钟信号。在MCS-51系列单片机内部有一个高增益反向放大器,其输入端引脚为XTAL1,其输出端引脚为XTAL2。一般的,电容C1、C2取30pF左右,晶振振荡频率越高,系统时钟频率越高,单片机的运行速度也越快。在通常情况下,使用频率为6MHz或12MHz的晶振。本系统中使用了单片机的串行口通信,一般晶振的频率采用11.0592MHz,两个电容采用22pF。电路图如图6所示。图6 时钟电路部分电路图(4)串行通信部分

8、本部分的主要作用是单片机与pc机的信息交互。使编好的程序能下载到单片机中,使所设计的系统能按照预先的设想工作。其电路图如图7所示。图7 串口通信部分电路图 (5)电源接口电路本部分的作用是给整个单片机系统供电,使其正常运转。电路图中D1为电源接口,可接入电源。通过连线将电源接入电路。电路图如图8所示。图8 电源接口电路(二)功能电路部分功能电路用于实现设计预先思路。单片机是整个系统的基础,功能电路部分则是真正实现语言提示、电机驱动等的部分功能的电路。(1)语音模块本模块用于提示乘客下电梯了不要在电梯出口处逗留,注意安全。在第一个人登电梯时,如果当人已位于电梯上再启动电梯,既有可能将人摔倒。所以

9、我们将激光扫描器安装在据电梯口2米处,当有人经过时,电机即刻启动,当人走快缓冲的2米时,电梯电机已完全启动。另外如果有人下了电梯在出口处逗留时,出口处有语音提示乘客:请勿在出口处逗留,注意安全。其电路图如图7所示。由于是FLASH,可以重复多次擦写,而且价钱便宜。如图10所示图10语音模块电路(3)激光模块本模块用于检测是否有人出入电梯,用于信息的采集。激光是20世纪60年代出现的最重大的科学技术成就之一。它发展迅速,已广泛应用于国防、生产、医学和非电测量等各方面。激光与普通光不同,需要用激光器产生。激光器的工作物质,在正常状态下,多数原子处于稳定的低能级E1,在适当频率的外界光线的作用下,处

10、于低能级的原子吸收光子能量受激发而跃迁到高能级E2。光子能量E=E2-E1=hv,式中h为普朗克常数,v为光子频率。反之,在频率为v的光的诱发下,处于能级 E2的原子会跃迁到低能级释放能量而发光,称为受激辐射。激光器首先使工作物质的原子反常地多数处于高能级(即粒子数反转分布),就能使受激辐射过程占优势,从而使频率为v的诱发光得到增强,并可通过平行的反射镜形成雪崩式的放大作用而产生强大的受激辐射光,简称激光。 本设计系统中,在电梯入口处安装一组激光,出口处安装一组激光,离出口两米处再安装一组激光。一般情况下,没有人员阻断激光,激光正常导通,与单片机的I/O引脚相连表现为高电平状态。当有人阻断激光

11、是,电平由高变低。一开始没有人在电梯上,电梯电机处于不工作状态。当有人从入口处进入时,电机开始工作。当人离开电梯时,分两种状况。一是人出电梯但逗留在电梯出口处,此时语音提示乘客“请勿在电梯出口处逗留,注意安全”;另一是人出电梯直接离开电梯两米处,此时电梯才停止工作。从而达到节能的目的。其电路图如图11所示。 图11 激光模块电路图激光语音模块实物如图12所示图12 激光语音实物图(4)继电器和电机驱动模块本模块用于控制电机,从而控制电梯的运转与停止。采用继电器驱动,继电器驱动电路包括电机驱动,启动充电控制。由于继电器控制端线圈工作电流比较大,所以不能用单片机驱动继电器,而需要在单片机的输出端加

12、上一个了MC1413芯片。它的每个输出端能够提供较大的负载电流,能增加单片机输出端口带负载的能力。当MC1413 的一个输入端为高电平时,它对应的输出端是低电平,它连接的继电器线圈就得电,相应线圈就有电流通过。在继电器的两端并联了阻容滤波电路,用来吸收继电器吸合、关断时产生的瞬时高压。继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流

13、过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。电路图如图13所示。图13 继电器模块电路电机语音实物如图14如图图14 电机驱动模块实物图由于如果采用独立的稳压电源会产生噪声干扰,且可能影响电路的正常工作,所以我们采用单片机控制模块提供电源。这样可以使电路更加简洁,并能够节约电,延长电梯使用时间。在实际的应用中应当,采用三相交流电动机。其连

14、接如图11所示。当激光检测到有人经过时,相应的与单片机相连的I/O口由高电平变为低电平。并将信号送入MC1314芯片,MC1413芯片同过J14与继电器相连。从而控制继电器。当信号送达时,KM得电,吸合开关KM,电机运转。图15 继电器控制电动机原理图 三、软件部分当有人需要使用电梯的时候,电梯会自动运转,将乘客顺利送上楼。以这种不做无用功的方式来节约能源。当有人经过电梯入口时,电梯慢慢加速至正常速度。当乘客出电梯时,一是停留在出口处,此时语音提示乘客“请勿在电梯出口处逗留,注意安全”;另一是乘客直接走出出口处两米以外,电梯停止。系统软件设计见附录1。使用keil软件编译调试,将产生的hex通

15、过最小系统中的串行通信口将文件烧制到单片机中,从而使整个系统正常工作。如图16所示。图16 程序流程图四、设计总结这次设计,虽然系统的功能实现了,但在设计和开发的过程中我们也遇到了很多问题和错误,但随着错误的解决,我学到了更多的东西,留下了很深刻的影响。在画PCB图的时候,考虑到元件和插件的很到物理特性,以致翻转后的PCB图刻出的板子很难将元件插上。在布置功能模块的时候要留一条引出的地线。画原理图时要加上地线的标志,最后在调试电路的时候,发现语音模块不能工作,老师帮我们找了很久终于找到了。以此谨记,以后做事情我会更加细心。通过这次设计,我认识到,设计原理图和画PCB图并不是纸上谈兵,不仅要考虑

16、到功能的实现,还要考虑到布局的美观协调,以及尽量使电路板紧密一点,而节省材料,更重要的一点,也是新手容易忽视的就是要考虑到插件的物理特性,针脚是不能随意翻转的,要保证能方便元件的插放。焊接方面以前也没有接触,刚开始由于不熟练,焊锡沾不到引脚上,反而全都粘到焊铁上了,要反复好几次才能将引脚焊满锡,还不算标准,但是慢慢地就学会了一些技巧,能使引脚很容易就焊满锡。这次设计花了较长的时间,但这些天是一个不停地遇到问题,又不停地解决问题的过程,同时在这个过程中得到了很好的锻炼。 参考文献1郭天祥:新概念51单片机C语言教程,电子工业出版社2胡宴如:模拟电子技术,高等教育出版社(第2版)3王静霞:单片机应

17、用技术,电子工业出版社(C语言版)4李华.可编程控制器(plc)在电梯设计中的重要作用.J.科技与经济,2006.3:170; 5田强,姬长英.单片机和THB6128构成的步进电机控制器设计J.江西农业学报,2010,(5):98-100;6黄桂梅,刘永立,plc电梯控制系统的设计与实践.J.制造业自动化.2007.04:8182; 附录一:程序代码MAIN.c#include#includecomdef.h#includePCF8591.h#includemath.h#includeWTV020.h#define up1 /加速#define down2 /减速#define stop3 /

18、停止#define star4 /保持速度运行#define max255 /最大速度(0255)#define min0 /最小速度#define change10 /每次速度改变大小extern volatile unsigned char UARTBuf;volatile uint16 Div=5; /定时器分频参数uint8 Status=0;int ChaoShi =0; /超时变量int ShengYu =0;int ZhiLiu =0;bit ChaoShiYuYinFlag=0; /开超时语音void Delay(uint16 m) unsigned char base; wh

19、ile(m-) for(base=120;base;base-); sbit ZhiLiu_PORT=P34; /停滞检测void Counter_Init(void)TMOD=0x10; /*定时器0:16位定时模式 定时器1:16位计数模式*/ ET1=1;/*禁止定时器1中断*/TR1=1;EX0=1; /*外部中断0允许*/ IT0=1; /*边沿触发方式中断*/EX1=1; /*外部中断1禁止*/IT1=1; /*边沿触发方式中断*/EA=1; main()uint16 Click=0;uint8 rad=0,set=0,PWM=0x150; Counter_Init();Write

20、_PCF8591(PWM); /电机停止while(1)switch(Status)case up:if(PWM(min+change)PWM-=change; /减速else Status=stop;break;case stop:PWM=min; /停机break;case star:PWM=max;break;default:break;Write_PCF8591(PWM);Delay(400); if(ChaoShiYuYinFlag=1) /滞留超时播报语音标志 Read_Voice(21); ChaoShiYuYinFlag=0;void Ex0_ISR() interrupt 0

21、ShengYu+;Status=up;void Ex1_ISR() interrupt 2if(ShengYu!=0)ZhiLiu+;ShengYu-;ChaoShi=0;if(ShengYu8;/11.0592Mhz 50ms TL1=65536-SYSCLK*50/12000;ChaoShi+;if(ZhiLiu_PORT=0) while(ZhiLiu_PORT=0);ZhiLiu-;if(ZhiLiu100)&(ZhiLiu!=0)ChaoShiYuYinFlag=1; /开超时语音/* Description: * PCF8591_AD/DA测试 *连线方式:1、将PCF8591模块

22、的拨码开关拨向ON端,使用跳线帽将LED与DA短接。 * 2、使用跳线帽将1602液晶模块的双排针的内外侧分别短接使液晶的。 *数据端和控制端与单片机连接,将VCC与V_LCD1短接给1602液晶供电。*未使用模块的拨码开关,请关闭,以免影响实验。 */PCF8951.c/-函数声明,变量定义-#include #include #include sbit SDA=P00; / 将p1.1口模拟数据口sbit SCL=P01; / 将p1.0口模拟时钟口#define delayNOP(); _nop_();_nop_();_nop_();_nop_(); bit bdata SystemEr

23、ror=0; /从机错误标志位/* PCF8591专用变量定义 */#definePCF8591_WRITE0x90 /0x9E #definePCF8591_READ 0x91 /0x9F #define NUM 4 /接收和发送缓存区的深度uint8 idata receivebufNUM; /数据接收缓冲区 /-/ 函数名称: iic_start()/ 函数功能: 启动I2C总线子程序/-void iic_start(void) /时钟保持高,数据线从高到低一次跳变,I2C通信开始SDA = 1; SCL = 1;delayNOP(); / 延时5us delayNOP(); SDA =

24、 0;delayNOP();delayNOP(); SCL = 0;/-/ 函数名称: iic_stop()/ 函数功能: 停止I2C总线数据传送子程序/-void iic_stop(void) SDA = 0; /时钟保持高,数据线从低到高一次跳变,I2C通信停止SCL = 1;delayNOP();delayNOP();SDA = 1;delayNOP();delayNOP(); SCL = 0;/-/ 函数名称: iicInit_()/ 函数功能: 初始化I2C总线子程序/- void iicInit(void) SCL = 0; iic_stop(); /-/ 函数名称: slave_

25、ACK/ 函数功能: 从机发送应答位子程序/-void slave_ACK(void)SDA = 0; SCL = 1;delayNOP();delayNOP();SCL = 0;delayNOP();delayNOP();/-/ 函数名称: slave_NOACK/ 函数功能: 从机发送非应答位子程序,迫使数据传输过程结束/-void slave_NOACK(void) SDA = 1;SCL = 1;delayNOP();delayNOP();SDA = 0; SCL = 0;delayNOP();delayNOP(); /-/ 函数名称: check_ACK/ 函数功能: 主机应答位检查

26、子程序,迫使数据传输过程结束/-void check_ACK(void) SDA = 1; / 将p1.1设置成输入,必须先向端口写1SCL = 1;F0 = 0;delayNOP();delayNOP();delayNOP();delayNOP();delayNOP();delayNOP(); delayNOP();delayNOP();delayNOP(); delayNOP(); if(SDA = 1) / 若SDA=1表明非应答,置位非应答标志F0 F0 = 1; SCL = 0;delayNOP();delayNOP();/-/ 函数名称: IICSendByte/ 入口参数: ch

27、/ 函数功能: 发送一个字节/-void IICSendByte(uint8 ch) unsigned char idata n=8; / 向SDA上发送一位数据字节,共八位while(n-) if(ch&0x80) = 0x80) / 若要发送的数据最高位为1则发送位1 SDA = 1; / 传送位1SCL = 1; delayNOP();delayNOP();/SDA = 0;SCL = 0;delayNOP();delayNOP(); else SDA = 0; / 否则传送位0SCL = 1;delayNOP();delayNOP(); SCL = 0;delayNOP();delay

28、NOP();ch = ch1; / 数据左移一位/-/ 函数名称: IICreceiveByte/ 返回接收的数据/ 函数功能: 接收一字节子程序/-uint8 IICreceiveByte(void)uint8 idata n=8; / 从SDA线上读取一上数据字节,共八位uint8 tdata=0;while(n-) SDA = 1; SCL = 1; tdata =tdata1; /左移一位 if(SDA = 1) tdata = tdata|0x01; / 若接收到的位为1,则数据的最后一位置1else tdata = tdata&0xfe; / 否则数据的最后一位置0 SCL = 0

29、;delayNOP();delayNOP(); return(tdata);/-/ 函数名称: DAC_PCF8591/ 入口参数: slave_add从机地址,n要发送的数据个数/ 函数功能: 发送n位数据子程序/-void DAC_PCF8591(uint8 controlbyte,uint8 w_data) iic_start(); / 启动I2CdelayNOP();IICSendByte(PCF8591_WRITE); / 发送地址位check_ACK(); / 检查应答位 if(F0 = 1) SystemError = 1;return; / 若非应答,置错误标志位 IICSen

30、dByte(controlbyte&0x77);/Control byte check_ACK(); /检查应答位 if(F0 = 1) SystemError = 1;return; / 若非应答,置错误标志位 IICSendByte(w_data); /data bytecheck_ACK(); / 检查应答位 if(F0 = 1) SystemError = 1; return; / 若非应答表明器件错误或已坏,置错误标志位SystemError iic_stop(); / 全部发完则停止delayNOP();delayNOP();delayNOP();delayNOP();/-/ 函数

31、名称: ADC_PCF8591/ 入口参数: controlbyte控制字/ 函数功能: 连续读入4路通道的A/D转换结果到receivebuf/-void ADC_PCF8591(uint8 controlbyte) uint8 idata receive_da,i=0,temp=0;iic_start();IICSendByte(PCF8591_WRITE);/控制字check_ACK();if(F0 = 1)SystemError = 1;return;IICSendByte(controlbyte);/控制字check_ACK();if(F0 = 1)SystemError = 1;r

32、eturn; iic_start(); /重新发送开始命令 IICSendByte(PCF8591_READ);/控制字check_ACK();if(F0 = 1)SystemError = 1;return; IICreceiveByte(); /空读一次,调整读顺序 slave_ACK(); /收到一个字节后发送一个应答位while(i4) receive_da=IICreceiveByte(); receivebufi+=receive_da; slave_ACK(); /收到一个字节后发送一个应答位slave_NOACK(); /收到最后一个字节后发送一个非应答位iic_stop();

33、/-/-void Write_PCF8591(uint8 Pra)SystemError = 0;do /有错误,重新来iicInit(); /I2C总线初始化DAC_PCF8591(0x40,Pra); /D/A输出while(SystemError = 1);WTV020.c#include #includeWTV020.hsbit rst=P00;sbit clk=P01;sbit sda=P02;void delayms_Voice(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);void delayus_Voice(uint z) uint x,y; for(x=z;x0;x-) for(y=10;y0;y-);void Read_Voice(uint add) uchar i; EA=0; rst=1;clk=1;sda=1; rst=0; delayms_Voice(5); /*复位延时 5MS*/ rst=1; clk=0; delayms_Voice(2); for(i=0;i16;i+) clk=0; if(add & 0x8000) sda=1;

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号