基于单片机的模拟电梯系统设计_毕业设计(论文).doc_第1页
基于单片机的模拟电梯系统设计_毕业设计(论文).doc_第2页
基于单片机的模拟电梯系统设计_毕业设计(论文).doc_第3页
基于单片机的模拟电梯系统设计_毕业设计(论文).doc_第4页
基于单片机的模拟电梯系统设计_毕业设计(论文).doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

丽水学院丽水学院 毕业设计(论文)毕业设计(论文) 题题 目目 基于单片机的模拟电梯系统设计基于单片机的模拟电梯系统设计 院院 别别 工工 学学 院院 班班 级级 自自 动动 化化 09 二一三年四月二日 基于单片机的模拟电梯系统设计 专业:自动化 班级:自动化 09 姓名:吴惠彬 指导老师:凌忠兴 摘要 单片机即单片微型计算机(single-chip microcomputer ) ,是集 cpu ,ram ,rom ,定时, 计数和多种接口于一体的微控制器。其中 51 单片机是各种单片机中最为典型和最有代表性的一种, 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 1 广泛应用于各个领域。电梯是集机械原理应用、电气控制技术、微处理器技术、系统工程学等多学 科和技术分支于一体的机电设备,它是建筑中的永久垂直交通工具。本文使用单片机 c 语言进行编 程,实现运送乘客到任意楼层,并且显示电梯的楼层和上下行。利用单片机控制电梯有成本低,通 用性强,灵活性大及易于实现复杂控制等优点。 关键词 单片机 电梯 c 语言 elevator simulation system based on single chip design major: automatic class: automation 09 name: wu huibin instructor:ling zhongxing abstract scm is the single chip microcomputer (single chip microcomputer), is a set of cpu, ram rom timing, count and various interface, which integrates the micro controller. 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 2 including 51 single chip microcomputer as the most typical and most representative of all kinds of single chip microcomputer, a widely used in various fields. the elevator is set machinery principle application, electrical control technology and microprocessor technology, systems engineering and other multi-disciplinary branch in the integration of mechanical and electrical equipment and technology, it is the construction of permanent vertical transport. using single chip microcomputer c language programming, realize the ferry passengers to any floor, tdd and display the elevator floor and has. using single-chip microcomputer control elevator has low cost, versatility and flexibility big and easy to realize complex control, etc. keyword single chip microcomputer the elevator the c language 目 录 引 言5 第一章 电梯系统的方案设计.6 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 3 1.1 系统设计阐述.6 1.2 系统设计任务.6 1.3 系统功能设计.6 1.4 系统方案论证.6 第二章 电梯系统控制电路设计.8 2.1 单片机 stc89c52 的介绍.8 2.1.1 单片机 stc89c52 的特点 8 2.1.2 单片机 i/o 口的配置 11 2.2 按键电路的设计12 2.3 数码管显示电路的设计12 2.4 电梯模拟指示灯的设计13 2.5 蜂鸣器电路的设计13 2.6 电源电路的设计14 2.6.1 稳压电路的介绍 14 2.6.2 稳压芯片的介绍 15 2.7 h 桥驱动电路的设计16 2.7.1 光耦的介绍 16 2.7.2 h 桥驱动电路的介绍 17 第三章 电梯系统的控制程序设计19 3.7 程序流程图19 3.7.1 主程序流程图 .19 3.7.2 中断程序流程图 .19 3.7.3 电梯运行流程图 .20 第四章 系统的调试21 4.1 系统调试过程21 4.1.1 软件调试 21 4.1.2 系统仿真 21 4.1.3 硬件调试 21 4.2 系统调试成果22 结束语.25 参考文献26 致谢.27 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 4 附录一:系统电路总图28 附录二:pcb 图.29 附录三:源程序30 引 言 现代人们的生活水平显著提高,科学技术的发展越来越快。因此电梯在我们的生活中的作用越 来越大。电梯已不仅是一种生产环节中的重要设备,更是一种人们频繁乘用的交通运输设备。因此 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 5 电梯厂也在不断的改进设计,修改工艺,电梯常用的控制技术主要的有两种技术:基于 plc 控制和 基于单片机控制两大技术。用 plc 控制的电梯性能可靠、稳定,但是造价太高。基于单片机控制的 电梯可以大大的降低成本而且运行也较可靠,所以现在电梯控制中大多数采用单片机控制8。本设 计是使用宏晶公司的 stc89c52rc 加外围器件作控制单元,用数码管显示,制作的经济实惠的电梯 模拟系统。硬件部分主要由单片机最小系统模块、按键模块、电动机驱动模块、报警模块,楼层显 示模块,电源模块等 6 部分组成。该系统采用单片机作为控制核心,芯片一旦检测到某楼层的按键 被按下,就会在对应端口驱动电机来到该楼层,并延迟几秒,等人进入电梯后,关门,去到要去的 楼层。在整个过程中,数码管会显示楼层数。最小系统为单片机提供时钟信号和复位功能。单片机 控制电动机转动,控制电梯停在目标楼层,电动机控制部分采用 h 桥驱动。软件使用单片机 c 语言, 利用中断方式来检测用户请求的按键信息提供给单片机信号来确定要到楼层数,之后送到数码管进 行显示。硬件设计简单可靠,结合软件,基本实现了四层电梯运行的模拟。本设计是使用宏晶公司 的 stc89c52rc 加外围器件作控制单元,用数码管显示,制作的经济实惠的电梯模拟系统。芯片一 旦检测到某楼层的按键被按下,就会在对应端口驱动电机来到该楼层,并延迟几秒,等人进入电梯 后,关门,去到要去的楼层。在整个过程中,数码管会显示楼层数。最小系统为单片机提供时钟信 号和复位功能。 第一章 电梯系统的方案设计 1.1 系统设计阐述 电 源 5v9v 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 6 图 1-1 模拟电梯系统组成框图 本次设计采用 stc89c52 单片机为核心,晶振电路跟复位电路是单片机最小系统的组成,晶振 电路用外部时钟电路和单片机内部振荡电路位单片机提供时钟脉冲;复位电路采用手动复位电路为 单片机提供复位动作。判断按键电路引起电平的改变发送到单片机,通过单片机输出信号控制电机 控制电路,报警电路,显示电路和灯光模拟电路。此次灯光模拟是模拟电梯的上下行和开关门状态。 电源模块是分别给单片机和 h 桥驱动电机供电。 1.2 系统设计任务 此次设计的任务是用单片机模拟电梯的运行状态,用电机模拟现实中电梯运行时带动电梯的上 升与下降,用发光二极管来模拟电梯中的开关门和上下行,用数码管显示并模拟电梯所在位置。电 源模块中的 9v 电压与 5v 电压分别模拟驱动大功率电机和小功率芯片。 1.3 系统功能设计 此次设计的功能就是实现人在现实中使用电梯时的部分功能。当我们需要乘坐电梯时,会在, 门外召唤电梯,当电梯到达人所在楼层后,电梯开门,人进入电梯,然后选择要到达的楼层,之后 电梯开始关门,然后运行到所需楼层。所以,这次设计用按键代替门内召唤和门外召唤按钮,数码 管显示并模拟电梯的运行状态。 1.4 系统方案论证 此次设计驱动电机部分有以下两种方案。 方案一 驱动电机可以用 l298n 驱动芯片驱动,该芯片采用 15 脚封装。主要特点是:工作电压高,最 高工作电压可达 46v;输出电流大,瞬间峰值电流可达 3a,持续工作电流为 2a;额定功率 25w。内 含两个 h 桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等 感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许 stc89c52 单片机 按键输入 电机驱动 led 数码管显示 复位电路 晶振电路 灯光模拟 蜂鸣器报警 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 7 或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻, 将变化量反馈给控制电路。使用 l298n 芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步 进电机,也可以驱动两台直流电机。 特点: 1具有信号指示。 2转速可调 3抗干扰能力强 4具有过电压和过电流保护 5可单独控制两台直流电机 6可单独控制一台步进电机 7pwm 脉宽平滑调速 8可实现正反转 输入信号端 in1 接高电平输入端 in2 接低电平,电机 m1 正转。如果信号端 in1 接低电平, in2 接高电平,电机 m1 反转6。 方案二 用 h 桥驱动电路驱动电机,通过 h 桥三极管的通断来控制电机的正转反转。 由于考虑到使用芯片驱动电机,自己的动手能力大大减少,自己也想趁此机会了解一下 h 桥电 路,所以就采用了方案二。 第二章 电梯系统控制电路设计 2.1 单片机 stc89c52 的介绍 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 8 2.1.1 单片机 stc89c52 的特点 stc89c52rc单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全 兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。 主要特性如下: (1)增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼 容传统8051. (2)工作电压:5.5v3.3v(5v单片机)/3.8v2.0v(3v单片机) (3)工作频率范围:040mhz,相当于普通8051的080mhz,实际工作频率可达48mhz (4)用户应用程序空间为8k字节 (5)片上集成512字节ram (6)通用i/o口(32个),复位后为:p1/p2/p3/p4是准双向口/弱上拉,p0口是漏极开路输出, 作为总线扩展用时,不用加上拉电阻,作为i/o口用时,需加上拉电阻。 (7)isp(在系统可编程)/iap(在应用可编程),无需专用编程器,无需专用仿真器,可通 过串口(rxd/p3.0,txd/p3.1)直接下载用户程序,数秒即可完成一片 (8)具有eeprom功能 (9)具有看门狗功能 (10)共3个16位定时器/计数器。即定时器t0、t1、t2 (11)外部中断4路,下降沿中断或低电平触发电路,power down模式可由外部中断低电平触发 中断方式唤醒 (12)通用异步串行口(uart),还可用定时器软件实现多个uart (13)工作温度范围:-40+85(工业级)/075(商业级) stc89c52rc单片机的工作模式 (1)掉电模式:典型功耗 ungined char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x8 6,0x8e; sbit s1_up=p30; /1 楼上按键 sbit s2_up=p31; /2 楼上按键 sbit s2_down=p32; /2 楼下按键 sbit s3_up=p33; /3 楼上按键 sbit s3_down=p34; /3 楼下按键 sbit s4_down=p35; /4 楼下按键 sbit fast_open=p14; /开门 sbit fast_close=p15; /关门 sbit s1=p10; /1 sbit s2=p11; /2 sbit s3=p12; /3 sbit s4=p13; /4 sbit beep=p16; #define nokey0 #define s1up1 #define s2up2 #define s2down3 #define s3up4 #define s3down5 #define s4down6 #define fastopen 7 #define fastclose8 #define f19 #define f210 #define f311 #define f412 sbit state=p26;/电梯升降状态 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 31 sbit doorstate1=p25;/开门关门状态指示灯 sbit doorstate2=p24;/开门关门状态指示灯 sbit lp=p20; sbit ln=p21; sbit led=p27; #define stop 0 #define up 1 #define close 2 #define closing 3 #define down 4 #define open5 #define opening 6 #define rise() dolp=1;ln=0;state=0;while(0) /上升 #define down() dolp=0;ln=1;state=1;while(0) /下降 #define stop() dolp=0;ln=0;while(0)/停止 #define open() dodoorstate1=0;doorstate2=1;while(0) /开 #define opening() dodoorstate1=0;doorstate2=0;while(0) /正在开 #define close()dodoorstate1=1;doorstate2=0;while(0) /关 #define closing() dodoorstate1=1;doorstate2=1;while(0) /正在关 unsigned char gcount,floor20=1; unsigned char wait=0; unsigned char time; unsigned char buttom=0; unsigned char timer; unsigned char currentfloor=1; unsigned char state; unsigned char keynum; bit flag; void init(); unsigned char getkey(); unsigned char keyscan(); void stop(); void up(); void close(); void closing(); void opening(); 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 32 void open(); void down(); void beep(); void display(); void delay(unsigned char a); void main() init(); while(1) keynum=keyscan(); display(); /数码管显示 switch(state) /判断状态 case stop: stop(); break; case up: up(); break; case down: down(); break; case close: close(); break; case closing: closing(); break; case open: open(); break; case opening: opening(); 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 33 default: break; void init() /定时器初始化 tmod=0x01; th0=15536/256; tl0=15536%256; tr0=1; et0=1; stop(); unsigned char getkey()/判断哪个按键按下 if(s1_up=0)return s1up; if(s2_up=0)return s2up; if(s2_down=0)return s2down; if(s3_up=0)return s3up; if(s3_down=0)return s3down; if(s4_down=0)return s4down; if(fast_open=0)return fastopen; if(fast_close=0)return fastclose; if(s1=0)return f1; if(s2=0)return f2; if(s3=0)return f3; if(s4=0)return f4; return nokey; unsigned char keyscan() static unsigned char keynum=nokey; 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 34 static unsigned char count=0; unsigned char key; key=getkey(); if(keynum=key) count+; if(count=20) keynum=nokey; count=0; return key; else keynum=key; return nokey; void timer0() interrupt 1 /定时器 1 中断 th0=15536/256; tl0=15536%256; gcount+; if(gcount=20) gcount=0; timer+; void stop()/停止状态 switch(keynum) 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 35 case s1up: if(currentfloor!=1) floorwait=1; state=closing; break; case s2up: if(currentfloor!=2) floorwait=2; state=closing; break; case s2down: if(currentfloor!=2) floorwait=2; state=closing; break; case s3up: if(currentfloor!=3) floorwait=3; state=closing; break; case s3down: if(currentfloor!=3) floorwait=3; state=closing; break; case s4down: 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 36 if(currentfloor!=4) floorwait=4; state=closing; break; default: break; void opening() /正在开状态 opening(); ea=1; if(timer=4) state=open; timer=0; ea=0; switch(keynum) case fastopen: state=open; ea=0; timer=0; break; case f1: floorwait=1; break; case f2: floorwait=2; break; case f3: floorwait=3; break; 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 37 case f4: floorwait=4; break; case s1up: if(currentfloor!=1) wait=wait+%20; floorwait=1; state=closing; break; case s2up: if(currentfloor!=2) wait=wait+%20; floorwait=2; state=closing; break; case s2down: if(currentfloor!=2) wait=wait+%20; floorwait=2; state=closing; break; case s3up: if(currentfloor!=3) wait=wait+%20; floorwait=3; state=closing; break; case s3down: 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 38 if(currentfloor!=3) wait=wait+%20; floorwait=3; state=closing; break; case s4down: if(currentfloor!=4) wait=wait+%20; floorwait=4; state=closing; break; default: break; void open()/开 open(); switch(keynum) case fastclose: state=closing; break; case f1: floorwait=1; state=closing; break; case f2: floorwait=2; state=closing; break; case f3: 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 39 floorwait=3; state=closing; break; case f4: floorwait=4; state=closing; break; case s1up: if(currentfloor!=1) wait=wait+%20; floorwait=1; state=closing; break; case s2up: if(currentfloor!=2) wait=wait+%20; floorwait=2; state=closing; break; case s2down: if(currentfloor!=2) wait=wait+%20; floorwait=2; state=closing; break; case s3up: if(currentfloor!=3) wait=wait+%20; floorwait=3; 基于单片机的模拟电梯系统设计 丽水学院 2013 届学生毕业设计(论文) 40 state=closing; break; case s3down: if(currentfloor!=3) wait=wait+%20; floorwait=3; state=closing; break; case s4down: if(currentfloor!=4) wait=wait+%20; floorwait=4; state=closing; break; default: break; void closing() /正在关 closing(); ea=1; if(timer=3) ea=0; timer=0; st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论