基于单片机三层电梯控制器的设计
诚信承诺书
本人郑重承诺和声明:
我承诺在毕业论文撰写过程中遵守学校有关规定,恪守学术规范,此毕业设计中均系本人在指导教师指导下独立完成,没有剽窃、抄袭他人的学术观点、思想和成果,没有篡改研究数据,凡涉及其他作者的观点和材料,均作了注释,如有违规行为发生,我愿意承担一切责任,接受学校的处理,并且承担相应的法律责任。
毕业设计作者签名:
年 月 日
摘 要
电梯是现代生活中重要的交通运输工具,是集自动控制原理、机械原理应用、电气控制技术、微处理器技术、系统工程学等多学科和技术分支于一体的机电设备。
本设计选用STC89C52单片机为核心控制元件,设计一个三层电梯控制系统,使用C语言进行编程,实现运送乘客到任意楼层,显示电梯当前楼层及上下行等基本功能。利用单片机设计电梯控制系统,具有通用性强,灵活性大、成本低及易于实现复杂控制等优点。由于其系统实现的功能简单,因此具有一定的可扩展性。
关键词:电梯、STC89C52、控制系统
I
ABSTRACT
Elevator is a important transport of daily life, that application of the principleset
machinery,
electrical
conrtl
technology,microprocessortechnology,systems engineering an other technical disiplines and branches of the integration of mechanical and electrica equipment.
This paper choices STC89C52 control of the core components, designed a new 3 storey lift systems, using C language programming, transporting passengers arrived a floor, it also shows the elevator floor and downlink SCM contrors elevator low cost, versatility and flexibility and ease of large complex control advantages. Because ofthe function of the system is simple, so it has certain scalality.
Keywords: Elevator、STC89C52、controller system
II
目 录
1.1 课题研究的意义及目的 ......................................................................................................................... 1 1.2 课题研究方向 ......................................................................................................................................... 1 1.3 总体设计要求及设计方案 ..................................................................................................................... 2 第二章 电梯的概述 ....................................................................................................................................... 3 2.1 电梯的发展史 ......................................................................................................................................... 3 2.2 电梯的发展方向 ..................................................................................................................................... 3 第三章 硬件设计 ........................................................................................................................................... 4 3.1 系统方案分析 ......................................................................................................................................... 4 3.2 硬件系统 ................................................................................................................................................. 5 单片机最小系统 ......................................................................................................................................... 5 STC89C52单片机 .................................................................................................................................... 5 时钟电路 ................................................................................................................................................. 6 复位电路 ................................................................................................................................................. 7 显示模块 ..................................................................................................................................................... 7 按键模块 ..................................................................................................................................................... 8 电机模块 ..................................................................................................................................................... 8 第四章 软件设计 ......................................................................................................................................... 10 4.1 软硬件开发环境 ................................................................................................................................... 10 4.1.1 STC89C52程序开发软件KEIL ..................................................................................................... 10 4.1.2 PROTEUS硬件仿真软件 .................................................................................................................. 10 4.2 程序设计思路 ....................................................................................................................................... 11 4.3 程序流程图 ........................................................................................................................................... 11 4.4 程序设计 ............................................................................................................................................... 13 4.4.1 端口初始化设计 ........................................................................................................................... 13 4.4.2 显示模块程序设计 ....................................................................................................................... 14 4.4.3 延时程序设计 ............................................................................................................................... 14 4.4.4 定时器程序设计 ........................................................................................................................... 15 4.4.5 主函数 ........................................................................................................................................... 15 第五章 系统调试 ......................................................................................................................................... 18 5.1 软件调试 ............................................................................................................................................... 18 5.2 硬件调试 ............................................................................................................................................... 18 第六章 结 论 ............................................................................................................................................... 19 致 谢 ............................................................................................................................................................. 20 参考文献 ....................................................................................................................................................... 21 附录一 原理图 ............................................................................................................................................. 22 附录二 PCB图 .............................................................................................................................................. 23
第一章 绪 论 ................................................................................................................................................. 1
III
1 绪论
第一章 绪 论
1.1 课题研究的意义及目的
随着城市化进程的不断加快,高层建筑已不知不觉地进入了我们的生活中,然而电梯便成了这个时代的必需品。因为电梯的高效、方便、快捷,所以电梯受到了大家的热烈欢迎。电梯已被应用于宾馆、饭店、办公大楼、商场、娱乐场所、仓库以及居民住宅大楼等。未来的社会发展趋势是城镇与城市渐渐融合,相互影响。电梯的应用将会不断拓展,款式将各种各样,其目的就是为了满足人们的多种多样的需求。 随着科技的不断进步,经济的深入发展,科技将引领电梯进行质的飞跃,电梯将越来越智能化,越来越安全稳定。电梯将是现代人不可或缺的代步工具。
本次设计的目的是为了对四年来所学的专业知识做一个系统的贯穿,把所学知识应用于实际当中。掌握如何利用单片机控制LED动态显示及C语言程序对硬件部分的控制。由可编程控制器(PLC)或微型计算机组成的电梯运行逻辑控制系统,正以很快的速度发展着。可编程控制器,是微机技术与继电器常规控制技术相结合的产物,是在顺序控制器和微机控制器的基础上发展起来的新型控制器,是一种以微处理器为核心用作数字控制的专用计算机,它有良好的抗干扰性能,适应很多工业控制现场的恶劣环境,所以现在的电梯控制系统主要还是由可编程控制器控制。但是由于PLC的针对性较强,每一台PLC都是根据一个设备而设计的,所以价格较昂贵。而单片机价格相当便宜,如果在抗干扰功能上有所提高的话完全可以代替PLC实现对工控设备的控制。当然单片机并不象PLC那么有针对性,所以由单片机设计的控制系统可以随着设备的更新而不断修改完善,更完美的实现设备的升级。在科技的不断发展下,单片机控制系统很快可以解决抗扰性,成为方便有效的电梯控制系统。 1.2 课题研究方向
早期的电梯系统一般是采用继电器和PLC系统控制,由于PLC的针对性强,所以对于设备的改进和扩充都比较困难,势必造成资源的浪费,不符合可持续发展的时代潮流。所以本课题的研究将朝着资源可持续利用的方向进行,单片机价格便宜并且运用灵活,可以通过C语言编程对其控制,实现设备的改进和扩充,C语言编程简单,开发周期短,使得设备更新换代快,提供给人们更加方便舒适的生活,所以利用单片机实现对电梯设备的控制是本次课题研究的方向。
本文主要研究内容有以下几个方面:
1、将电梯控制功能分为若干模块,用不同控制器完成各部分特定的功能
1
1 绪论
2、分析电梯运行的特性,设计以STC89C52为核心控制器即电梯控制器。 3、研究设计电梯实现的各种功能及软件说明 4、实现功能调试。 1.3 总体设计要求及设计方案
设计一个自动电梯模拟升降控制系统,通过乘客的自行按键达到电梯的升降功能。结合硬件与软件对应。端口P0.0-0.6用来控制LED灯的亮与灭,其中从低位到高位分别为一层灯,二层灯,三层灯(前述三个信号为电梯内请求信号,乘客在电梯内部方可置为有效),一层上灯,二层上灯,二层下灯,三层下灯(上述四个信号为电梯外部信号,乘客在电梯外部方可置为有效)P2口与键盘对应连接,数码管采用串行输入方式,键盘从低位到高位分别为一层按键,二层按键,三层按键,一层上升按键,二层上升按键,二层下降按键,三层下降按键.P1.0与数码管的时钟输入端相连,P1.1与数码管的串行口相连,用来显示电梯的上升下降和当前所在楼层,电梯门是否开启三种状态。
电梯是根据外部呼叫信号(呼梯信号)以及自身控制规律等运行的,而呼叫是随机的,电梯实际上是一个人机交互式的控制系统,单纯用顺序控制或逻辑控制是不能满足控制要求的,因此,大部分电梯控制系统都采用随机逻辑方式控制。在目前广泛使用的电梯控制系统中,绝大多数为继电器控制型,所有的逻辑及控制关系完全由诸多继电器互相配合来完成,该控制系统的缺点是:(1)随着楼层的增高,使用继电器的数量越来越多,造价和体积也越来越大;(2)继电器这种触点式的电控元器件不宜长时间频繁工作,因而采用在电梯系统当中常发生触电表面烧结、控制失灵的故障。 因此我们设计一个3层自动电梯模拟升降控制系统,通过乘客的自行按键达到升降功能。采用单片机作为控制核心进行仿真。 单片机不像PLC那么有针对性,利用单片机设计的控制系统可以随着设备的更新而不断修改完善,更完美的实现设备的升级,减少元器件的浪费,实现绿色环保。并且单片机价格较低,大大减低成本,将更能适应可持续发展的大环境。
本次设计是应用STC89C52芯片进行设计制作的模拟电梯控制系统,通过乘客的按键达到对电梯升降的控制,并且模拟电梯的运行状态。在设计方案中,通过对各个P口的合理安排和统一协调,通过按键、和LED数码管来实现对设计方案的仿真演示。另外在实验程序中通过对不同按键键码在功能上的分配,在按键按下之后使CPU做相应的工作,即LED数码管显示与之相应的楼层和使彩灯显示相应的电梯状态。最后,结合PCB板的实际接线情况进行编程。使实验顺利完成。
2
2 电梯的概述
第二章 电梯的概述
电梯是一种以电动机为动力的垂直升降机,用于多层建筑乘人或载运货物。也有台阶式,踏步板装在履带上连续运行,俗称自动扶梯或自动人行道。服务于规定楼层的固定式升降设备。 2.1 电梯的发展史
科技在发展,电梯也在进步。电梯的材质、样式,功能都在发生着变化。一个半世纪的风风雨雨,翻天覆地的是历史的变迁,永恒不变的是电梯提升人们生活质量的承诺。100多年来,电梯的发展经历了几个阶段:1853年9月20日,在纽约的杨克斯先生在一家破产公司办起了自己的车间,奥的斯电梯公司由此产生;1862年,奥的斯公司采用单独蒸汽机控制的升降机问世;1902年,瑞士迅达电梯公司开发了自动按钮控制的乘客电梯;1076年,日本富士达公司开发了直流无齿轮拽引电梯;1985年,三菱电机公司研制出曲线运行的螺旋形自动扶梯,已成功投入生产[2]。 2.2 电梯的发展方向
21世纪将会发展多用途,全功能的塔式建筑,超高速电梯继续成为研究方向。除了拽引式电梯外,直线电动机驱动电梯也有较大研究空间。随着计算机技术,通讯技术与控制技术的发展使大厦的智能化成为现实,而电梯是智能建筑中重要的交通工具。从电梯运行的控制智能化角度讲,要求电梯有优质的服务。未来电梯的发展方向:系统将更加智能化;电梯的运行速度也会越来越高;蓝牙技术是一种全球开放的,短距无线通讯技术,也将应用于电梯设备之中,把电梯的各种电子设备连接起来,无需纵横交错的电缆线;绿色环保一直是全世界关注的问题,绿色电梯要求电梯成本低,污染小,噪声低,寿命长,太阳能作为电梯的补充能源将是电梯的重要研究方向;科技不断在进步,相信未来电梯设备将会更好的服务于人类。
3
3 硬件系统
第三章 硬件设计
3.1 系统方案分析
设计一个自动电梯模拟升降控制系统。本设计是应用STC89C52芯片进行设计制作的模拟电梯控制系统,通过乘客的按键达到对电梯升降的控制,并且模拟电梯的运行状态。在实验程序中通过对不同按键键码在功能上的分配,在按键按下之后使CPU做相应的工作,即LED数码管显示与之相应的楼层和使彩灯显示相应的电梯状态。最后,结合PCB板的实际接线情况进行编程。使实验顺利完成。
根据电梯控制的要求,可将本系统分为三个模块,第一模块是控制模块,主要负责整个系统的控制,从而使各模块正常工作,第二个模块式LED和数码管显示模块;第三是电源模块,给各模块提供电源,让各模块工作;第四是电机模块,正反转控制电梯的上下。其系统功能设计结构如图:
上电复 STC89C52
数据信号 LED显示模块 和数码管显示 振荡 按键电机模图3.1 总体功能结构框图
本系统采用一个STC89C52芯片,一个由64个发光二极管组成的8*8点阵,一个102排阻,两个30pf电容和一个10uf电容,一个10k电阻,一个12mHz晶体振荡器,一个自锁开关和4个按键,用红色发光二极管组成的箭头和数字来显示当前电梯处于上升状态还是下降状态及当前所处的楼层。
根据系统的原理框图,分别分析各部分电路的元器件的功能以及选择合适的元件。具体设计思路如下:收集并整理资料,硬件设计,软件设计,Proteus仿真,做出实物,设计体会与总结。
4
3 硬件系统
3.2 硬件系统 单片机最小系统
STC89C52单片机
Protues下的STC89C52引脚图:
图
STC89C52引脚图
引脚说明: ①电源引脚
Vcc(40脚):典型值+5V。 Vss(20脚):接低电平。 ②外部晶振
3.2
X1、X2分别与晶体两端相连接。当采用外部时钟信号时,X2接振荡信号,X1接地
③输入输出口引脚:
P0口:I/O双向口。作输入口时,应先软件置“ 1”。
5
3 硬件系统
P1口:I/O双向口。作输入口时,应先软件置“ 1”。 P2口:I/O双向口。作输入口时,应先软件置“ 1”。 P3口:I/O双向口。作输入口时,应先软件置“ 1”。 ④控制引脚:
RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。 RST/Vpd(9脚):复位信号输入端(高电平有效)。
第二功能:加+5V备用电源,可以实现掉电保护RAM信息不丢失。 ALE/-PROG(30脚):地址锁存信号输出端。 第二功能:编程脉冲输入。
-PSEN(29脚):外部程序存储器读选通信号。 -EA/Vpp(31脚):外部程序存储器使能端。
时钟电路
图3.3时钟电
路(晶振)
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,
6
3 硬件系统
电容值约为22μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
复位电路
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。复位操作不会对内部RAM有所影响。 本设计采用的复位电路如下图所示:
图3.4 复位
电路图
显示模块
本系统采用一个8*8的点阵,是由64个发光二极管组成,通过红色的发光二极管组成不同的图案来判断电梯处于上升状态还是下降状态及所处楼层。
7
3 硬件系统
图3.5 显示电路
按键模块
方案一:由于本系统设计需要用较多的单片机接口,所以需要扩展I/O口,在这里采用74LS373芯片进行I/O口扩展,虽然可以达到预期的目的但是增加了电路的复杂性,不可靠因素增加。
方案二:采用4×4矩阵键盘,通过逐行扫描,不断检测是否有按键按下而引起电平的改变并把信息传送到单片机从而做出动作来响应用户的请求,这样设计简单实用。
综上分析,选择方案二。电机模块
方案一:采用步进电机作为本设计的执行元件,步进电机在定位性能方面十分优越。步进电机和普通电机的区别主要就在于其脉冲驱动的形式,步进电机不需要A/D 转换,能够直接将数字脉冲信号转化成为角位移。在应用中,步进电机可以同时完成两个工作,其一是传递转矩,其二是传递信息,升降精度很高。
8
3 硬件系统
方案二:采用直流电机作为本设计的执行元件,直流电机工作是让线圈始终交替地处于稳定状态和非稳定平衡状态,通过控制电流的方向可以实现电机的正反转。直流电机在高起动转矩、大转矩、低惯量的系统中经常使用到。
由于此系统电机要带的的负载较大,对升降精度要求不是很高,所以采用方案二。
9
4 软件系统设计
第四章 软件设计
本设计采用C语言来编写程序,编程及调试简单,C语言是在国内外广泛使用的一种计算机语言,也是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。
本设计采用C语言来编写程序,编程及调试简单,大大缩短开发周期;而且软件可读性强,便于改进和扩充,生成目标代码质量高,程序执行效率高。C语言有一个突出的优点就是适合于多种操作系统,使得运用比较灵活。 4.1 软硬件开发环境
4.1.1 STC89C52程序开发软件keil
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的。
Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。
4.1.2 proteus硬件仿真软件
Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好
10
4 软件系统设计
者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一设计平台,其处理器模型支持 8051、HC11PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是: (1)原理布图 (2)PCB自动或人工布线 (3)SPICE电路仿真 革命性的特点(1)互动的电路仿真 用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 (2)仿真处理器及其外围电路 可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型 加上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。
4.2 程序设计思路
首先,设计程序时必须得合理考虑按键的响应问题。一段时间内可能有多个不同的按键有动作,程序必须记录每一个按键的动作,并根据电梯本身所处的楼层情况与按键楼层之间的位置关系,合理判断出电梯应当做出上升或下降的响应动作。
其次,电梯系统还有一个判断是否无人的情况。即电梯到达某楼层后,其他楼层无按键动作,且电梯内也无楼层选择按键动作,那么就可以判断此时电梯内无人。若电梯内无人,电梯应自动返回到1层等待。
然后,两个楼层之间应考虑有一段运行时间,而且也要设置在一个楼层的停留时间。本设计中两个楼层之间的运行时间设为1s,每层停留时间设为5s。当执行结束之前命令,进入定时0中断后,可利用此发送电动机PWM脉冲信号,经驱动器驱动后,直流电机正反转执行相应的动作指令。
另外,当电梯上升或者下降时,相应的状态指示灯应及时同步点亮[5]。 4.3 程序流程图
本设计程序流程图主要包括主程序流程图、启动电梯子程序流程图、选择当前要去楼层子程序流程图。程序流程图画法简单,结构清晰,逻辑性强,便于描述,容易理解。通过不同的流程图来充分说明电梯控制器的运行方式及实现的功能。
11
4 软件系统设计
1、设计所实现的功能有:
⑴初始化程序使其显示为零,其他处于等待工作状态。 ⑵主程序主要功能有:
①判断电梯所在的位置,根据呼叫和选层情况决定电梯的运行。 ②判断电梯所在楼层并进行相应显示。 ③根据操作需要进行开关门的控制。 2、软件流程图如下:
开始 N 喂Y 显示电梯 电梯未运行 或运行却没停止 电梯停N Y 调用选择当前 调用启动 已到Y 停留
N 图4.1 主程序流程图
12
4 软件系统设计
本程序设计一个自动电梯模拟升降控制系统,通过乘客的自行按键达到电梯的升降功能。结合硬件与软件对应。STC89C52芯片自带看门口功能,防止程序跑飞。在喂狗没问题的前提下,功能程序正常运行。端口P0.0-0.6用来控制LED灯的亮与灭,其中从低位到高位分别为一层灯,二层灯,三层灯(前述三个信号为电梯内请求信号,乘客在电梯内部方可置为有效),一层上灯,二层上灯,二层下灯,三层下灯(上述四个信号为电梯外部信号,乘客在电梯外部方可置为有效)P2口与键盘对应连接,数码管采用串行输入方式,键盘从低位到高位分别为一层按键,二层按键,三层按键,一层上升按键,二层上升按键,二层下降按键,三层下降按键.P1.0与数码管的时钟输入端相连,P1.1与数码管的串行口相连,用来显示电梯的上升下降和当前所在楼层,电梯门是否开启三种状态。
4.4 程序设计
采用C语言通过对每个模块编写程序,简单易于理解,并且刷记录清晰,让人一目了然。包括显示模块、系统延时、定时器模块,最后是主函数调用。 4.4.1 端口初始化设计
#include #define uchar unsigned char #define uint unsigned int 基础定义 uchar m=0,n=0; uchar o,p,d; uchar time=0; //宏定义 //宏定义 void init() //端口初始化 { P0=0xff; P1=0xf8; P2=table[lc]; P3=0x00; } 13 4 软件系统设计 4.4.2 显示模块程序设计 通过对8*8LED点阵屏仿电梯数字滚动系统的设计,模拟电梯显示屏上下滚动显示楼层数及上下运行状态的效果,当目标楼层大于当前楼层时,将向上滚动显示,反之向下滚动显示。 #include #define uchar unsigned char //宏定义 #define uint unsigned int //宏定义 基础定义 uchar m=0,n=0; uchar o,p,d; uchar time=0; uchar code taba[]={ 0xff,0xef,0xef,0xef,0xab,0xc7,0xef,0xff}; //编码定义 uchar code tab1[]={ 0xff,0xef,0xcf,0xef,0xef,0xef,0xef,0xc7}; //编码定义 uchar code tab2[]={ 0xff,0xc7,0xbb,0xfb,0xf7,0xcf,0xbf,0x83}; //编码定义 uchar code tab3[]={ 0xff,0xc7,0xbb,0xfb,0xe7,0xfb,0xbb,0xc7}; //编码定义 4.4.3 延时程序设计 每执行一次指令都有固定的时序这一特征,令其重复执行某些指令从而达到延时的目的。较长时间的延时子程序,可以采用多重循环来实现。其延时子程序如下: #include #define uchar unsigned char //宏定义 #define uint unsigned int //宏定义 基础定义 uchar m=0,n=0; uchar o,p,d; uchar time=0; void delay(uchar n) //延时子函数 { uchar i,j; for(i=n;i>0;i--) { 14 4 软件系统设计 for(j=255;j>0;j--); } } 4.4.4 定时器程序设计 定时器是单片机的重要功能模块之一,在控制领域有广泛的应用。定时器的事件源若是周期固定的脉冲,就可以实现定时功能,其程序代码如下: #include #define uchar unsigned char //宏定义 #define uint unsigned int //宏定义 基础定义 uchar m=0,n=0; uchar o,p,d; uchar time=0; void com_initialize(void)//定时器初始化 { TMOD = 0x01;//设定定时器0为工作方式1 TH0 = (65536-50000)/256;//装初值 TL0 = (65536-50000)%256;//装初值 EA = 1; //开总中断 ET0 = 1;//开定时器0中断 TR0 = 1;//启动定时器0 } 4.4.5 主函数 主函数主要是一个循环结构,判断轿厢是否已到当前楼层,然后经过一段时间延时做出响应,执行循环体。 void main()//主函数 { uchar i=0,j=0,k=0; uchar tmp=0; uchar om=0; d=0; 15 4 软件系统设计 m=0; o=1; p=1; n=0xff; com_initialize(); while(1) //主循环 { for(i=0;i<8;i++) { P1=0xff; P0=0x80>>i; //刷新 if(++k==50) //延时 { k=0; } m=P1; //记录按键 if(m != 0xff && d==0 && m!=om) { om=m; } switch(m) //开关语句 { case 0xfb: tmp=1;break; case 0xf7: tmp=2;break; case 0xef: tmp=3;break; default: tmp=o;break; } if(o!=tmp) { p=o; o=tmp; time=0; } n=m; 16 4 软件系统设计 if(n==0xfe) //识别按键值 } } } { if(k==0) j=++j%8; P2=taba[7-(i+j)%8]; } else if(n==0xfd) { if(k==0) { if(j>0) j--; else j=7; } P2=taba[(i+j)%8]; } else if(n==0xfb) { P2=tab1[i]; } else if(n==0xf7) { P2=tab2[i]; } else if(n==0xef) { P2=tab3[i]; } delay(5); 7 15 系统调试 第五章 系统调试 5.1 软件调试 Proteus软件是英国Labcenter electronics公司出版的EDA工具软件它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。 选择要使用的元器件时,只需在Pick Device窗口双击相应元件名称,即可将元件添加到主界面右侧的列表中,使用很方便。实验步骤如下: 1、在Proues软件中按照系统硬件连线图连好。 2、把编写好的程序在KEIL编译器下进行编译并生成.hex文件,输入STC89C52单片机仿真器,最后对其进行初始化。 3、先按下开启键,观察LED能否正常显示,在观察发光二极管形成的上升下降信号和LED显示的数字增大或减小是否一致,当这些都符合指标后,在按下任意键,看其是否能达到预想目的。接着试验复位开关,检验能否完成清零的功能,并做出相应调整[11]。 5.2 硬件调试 硬件调试是利用开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。硬件调试可分为动态与静态调试两步进行。 1、静态调试 静态调试是在用户系统未工作时的一种硬件检测。 第一步:检查外部的各种元件或者是电路是不是有虚焊点或漏焊。 第二步:用万用表复核目测中可疑的连接点。 第三步:给板加电,检测所有的插座或是器件的电源端是否符合要求的值。 2、动态调试 动态调试是在用户系统工作的情况下,发现和排除系统硬件中存在的器件问题、器件连接逻辑错误等的一种检查。动态调试的一般循序渐进的方法是由近及远,有分到合顺序,逐步进行。由近到远是将信号流经的各元器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。有分到合是指首先按逻辑功能将硬件电路分为若干块。当调试电路时,与该元件无关的器件暂时全部去掉,这样可以快速将故障限定在局部的电路上[11]。 18 5 系统调试 第六章 结 论 本文充分利用stc89c52芯片的各引脚功能来设计,以实现模拟简单的电梯控制系统。系统设计简便、实用性强、操作简单,基本完成模拟电梯的基本功能。本次毕业设计是对传统电梯设计的部分改进,可以降低电梯的设计成本,实现楼层快速通行的模拟控制。另外由于此次设计实现的功能简单,简化处理了一些实际情况,没有去考虑这种电梯在实际应用中的故障问题,及一些更智能的硬件与软件的安装与调试。单片机在接口性能和计算速度等方面均有资源不足的问题,仍然不能适应复杂控制算法和故障诊断等要求,但单片机控制电梯有成本低,通用性强,灵活性大及易于实现复杂控制等优点。科技不断发展,单片机控制系统应该很快就可以解决抵抗性,成为方便有效的电梯控制系统。 总体来说,该单片机系统设计很好的完成了简单电梯控制系统,但是不论是在硬件还是软件,都可以通过后续的努力加以改进,主要为以下几个方面:1.在硬件上,通过设计更为复杂的外围电路来实现电梯控制的智能化处理,考虑加入控制器来完成电梯的多信息采集处理功能。2.在软件上,目前软件运行的效率不是很高,可以考虑通过对算法的分析,简化程序,提高单片机调试的速度。3.在总体设计上,考虑到更为智能的电梯系统,可以通过调研了解电梯的智能化发展方向,提出更为全面复杂的电梯控制方案及多电梯协同运行策略分析等功能。 19 致谢 致 谢 本次毕业设计的完成,非常感谢我的指导老师老师,他以渊博的知识、诚恳的为人、耐心的指导和谆谆教诲使我受益匪浅,在元器件的选取和焊接方面给予我很多的宝贵意见。同时本设计还得到室友们和同学们的支持和帮助,帮助我回顾很多 遗忘的知识,使得本次论文得以顺利完成,值此我表示诚挚的谢意! 在大学校园里,我不仅学到了丰富的专业知识,更重要的是学到了终身受用的学习方法和积极乐观的生活态度,通过与相关专业老师的沟通,使我获益匪浅。母校严谨的学风和老师广博丰富的知识令我敬佩,各位老师的悉心授课使我对电子信息工程专业有了更多、更深层的认识与了解,特别是毕业设计的顺利完成使我获得了很多平时没有学到的知识。毕业设计是大学四年所学知识的综合运用,也是从理论走向实践的第一步,这样就可以为以后的学习和工作打下了一个坚实的基础。本次毕业论文的设计,不仅仅是知识的回顾与积累,更多的是与实际情况的接轨。生活中处处应用到科技知识,只有掌握了科技知识,灵活运用,才能做到科技改变生活,生活推动科技。 最后,鉴于我的水平有限,毕业设计中难免会存在一些错误和漏洞,望各位老师不吝赐教,再次向所有帮助过我的老师、同学表示衷心的感谢!谢谢你们! 20 致谢 参考文献 [1] 赵全利,单片机原理及应用教程[M].北京机械工业出版社,2012. [2] 朱昌明,张惠乔,洪致育等,电梯的原理及结构[J].上海:交通大学出版社,2008. [3] 肖婧.单片机系统设计与仿真—基于proteus[M].北京航空航天大学出版社,2010. [4] 彭伟.单片机C语言程序设计实训100例—基于8051+Proteus仿真[D].电子工业出版社,2009. [5] 耿永刚.单片机C51应用技术[M].北京:电子工业出版社,2011. [6] 周润景,张丽娜,刘映群.Proteus入门实用教程[M].北京:机械工业出版社,2007. [7] 朱清慧.Proteus电子虚拟实验室[J].北京:中国水利水电出版社,2010. [8] 张鹏,王雪瑞.单片机原理与应用实例教程[M].北京:海洋出版社,2008. [9] 李海滨,片春媛,许瑞雪.单片机技术教程与项目实例[J].北京:中国电力出版社,2009. [10] 周润景,徐宏伟,丁莉.单片机电路设计、分析与制作[D].北京:机械工业出版社,2010. [11] 杜立,张俊亮.单片机原理及应用基于Proteus和KeilC[M](第二版).北京:电子工业出版社,2013. 21 2VCC13R12.2KP1D1LEDK1附录一 135V1POWERSWITCH24S113VCCK212246246VCC135135(AD0)P0.0(AD1)P0.1(AD2)P0.2V(AD3)PC0.C3(AD4)P0.4(AD5)P0.5(AD6)P0.6(AD7)P0.7COM22413VCCK3C410uFVCC1K102123456789R1R2R3R4R5R6R7R83+K013(A9)P2.1XTAL2(A8)P2.0XTALC189C51STGNDU124P1.0P1.1P1.2P1.3P1.4P13.50(RXD)P3.1((ITXDP13.62NT0))ALE/PROGPEA/VPPP13..73(INT1)RST(A15)P2.7(A14)P2.6P3.4(T0)(A13P2.5P)SENP3.5(T1)(A12)P2.4P3.6(WR)(A11)P2.3P3.7(RD)(A10)P2.224 附录一 原理图 22 R2Y1C212MHz30C33010K12345678910111213141516171819204039383736353433323130292827262524232221910111213141516U2DZ87654321 附录一 附录二 PCB图 23 因篇幅问题不能全部显示,请点此查看更多更全内容