毕业论文-基于80C51单片机的自动升降电梯控制系统设计

上传人:a**** 文档编号:139503765 上传时间:2022-08-22 格式:DOC 页数:37 大小:808.50KB
收藏 版权申诉 举报 下载
毕业论文-基于80C51单片机的自动升降电梯控制系统设计_第1页
第1页 / 共37页
毕业论文-基于80C51单片机的自动升降电梯控制系统设计_第2页
第2页 / 共37页
毕业论文-基于80C51单片机的自动升降电梯控制系统设计_第3页
第3页 / 共37页
资源描述:

《毕业论文-基于80C51单片机的自动升降电梯控制系统设计》由会员分享,可在线阅读,更多相关《毕业论文-基于80C51单片机的自动升降电梯控制系统设计(37页珍藏版)》请在装配图网上搜索。

1、毕业设计论文论文题目:基于80C51单片机的自动升降电梯控制系统设计【摘要】本设计采用单片机技术来模拟电梯控制系统,使用80C51为最小系统,通过外部扩展8255A芯片来当做按键模块,并使用了74LS373芯片来驱动数码显示管和控制指示灯的亮暗,采用直流电机标志机箱的运行情况和电梯门的运行情况。系高统采用C语言来编写的,加快了设计的进度。根据以上的设计,本设计实现了电梯的自动控制和效运行。【关键字】自动升降;单片机;按键;模块;80C51目 录1课题的背景和概述1电梯的发展历史1电梯的分类1根据电梯的用途分类1根据驱动方式分类1根据速度分类2根据电梯有无司机分类2根据操纵控制方式分类2其它分类

2、方式2特殊电梯2课题的研究内容3设计思路与比较3思路3设计比较3课题的设计步骤4课题的开发环境介绍4软件41.6.2 Keil程序研发软件5功能要求52课题总体设计5系统总设计框图5系统元器件清单6必备知识点6相关芯片说明6最小系统80C516扩展芯片8255A7电机驱动专用芯片L29893系统硬件设计10各模块功能选择与设计10数码管显示电路103.1.2 LED灯显示电路10电机驱动电路11按键电路12晶振电路12复位电路13电路总设计图134系统的软件设计134.1 80C51资源的分配13软件流程图14主程序流程图14中断流程图155部分程序15主程序15初值定义程序15原函数声明程序

3、16外部中断0程序166系统仿真及调试237系统运行结果248心得体会259致谢语25附录一:总硬件设计原理图271课题的背景和概述历史上最高的一部电梯是美国人伊莱沙格雷夫斯奥的斯发明的,他在1854年展示了第一部安全升降电梯,从此升降电梯在世界范围的各个领域都等到广泛的使用。自动升降从这一时刻慢慢的发展起来了。人民生活水平的提高,工业的发展,科技的进步,电梯也一直在进步,电梯的技术也一直在进步。经过上百年的发展,电梯在材质上有黑白的到彩色的,运行方式有垂直式到倾斜式的,在操控方面也出现了很多方式,例如:人机对讲,集选控制,信号控制,按键控制,手柄控制等等;很多台电梯还实现了智能群控并联控制;

4、双控机箱电梯体现出了节省井道空间,提升了运输能力的优势,变速式的自动人行电梯很大一定程度节省了乘客的时间;电梯的外形也分为很多种,有圆形、半菱形、三角形、扇形、等等,圆形观光电梯则使身处其中的乘客的视线不会受到约束。现在以美国的奥的斯公司为主的世界各个大著名电梯公司各战风资,一直在进行研究新产品的电梯,不断地在完善电梯的维修和保养服务系统。一款款崭新的电梯一直在问世,使得冷冰冰的建筑因此出现人行而温馨的感觉,人们的生活也过得越来越好了。中国历史上最早出现了是在上海,是由美国的奥的斯公司在1901年安装的。美国的奥的斯公司在1932年在天津顺德酒店安装了一步电梯至今还在运行着。在1951年,中共

5、党中央提出要在天安门安装一部由我国自己制造的电梯,天津的从庆生电机厂荣幸接此任务,经过四个月的努力,顺利完成了任务。十一届三中全会后,改革时代的到来,我国的电梯行业进入了飞速发展的阶段。现今,在我国任何一个大小城市,电梯都会被广泛应用着。电梯会给人们带来生活的便利,工业的发展,也为了我国现代化建设的加速发展提供了强大的保障和推动力量。电梯是高层建筑中安全、可靠、垂直上下的运载工具,对改善劳动条件、减轻劳动强度起到很大的作用。电梯的应用很广泛,可用于宾馆、酒店、办公大厦、商场、娱乐场所、工地以及住宅等。在经济高速发展的社会中,电梯已经成为人类必不可少的运输交通工具。根据电梯使用的环境和客流量来决

6、定采用何种电梯,在当今社会中的电梯基本上分为以下几种方式:根据电梯的用途分类观光型电梯,机箱壁需要采用透明的材料,电梯的速度不能太快,最好采用圆形的外形,这样使得游客可以慢慢观赏。乘客型电梯,主要是接送乘客到所要求的目的地,应具有完善的安全保障措施以及一定的内部装修装饰。载货型电梯,主要实现了接送货物的电梯,一般都需要有人伴随在电梯里面。医用型电梯,主要是为了运送医用车、病床、担架等等而设计的电梯,机箱具有长而窄的特点。杂物型电梯,一般都使用在饭馆、图书馆、办公楼用于运送食物、图书、文件等。船舶型电梯,一般都是使用在船舶上的电梯。建筑施工型电梯,一般指着的建筑工地上使用的电梯。其它类型的电梯,

7、除了以上所讲述的电梯之外,还有很多特殊的电梯,如冷库型电梯、防爆型电梯、矿井型电梯、消防员专用型电梯等等。根据驱动方式分类交流型电梯,是用交流感应的电动机作为驱动力的电梯,根据拖动驱动的方式一般可分为交流单速、交流双速、交流调压调速=交流变压变频调速等等。直流型电梯,是用直流电动机作为驱动力的电梯。这种类型的电梯额定速度一般都是在/s以上。液压型电梯,一般都是利用电动泵驱动液体流动的,由柱塞促使机箱升降的电梯。齿轮型电梯,将运输路线弄成齿条行的,机箱装上与齿条相吻合的齿轮,电机带动齿轮的旋转,从而使得电梯的升降。螺杆型电梯,是将电梯的柱塞加工成矩形螺纹,再用带有推力推力轴承的大螺母安装于油缸顶

8、,在经过电梯经减速机带动螺母旋转。从而使得电梯的升降。直线型电梯,一般是采用直线电机直接驱动电梯,使得电梯升降的。在电梯问世初期时,也采用过了蒸汽机、内燃机等作为动力能源来直接驱动电梯,如今已经都不适用了。根据速度分类电梯的速度分类没有严格区分,中国习惯上按下面的方法进行分类:时速在/s以下的速度的电梯一般分为低速型电梯;时速在1.002.00m/s的电梯一般分为中速型电梯;时速在/s以上的电梯一般分为高速型电梯;时速在/s以上的电梯一般分为超高速型电梯;在电梯技术的不断发展时代中,电梯的速度越来越高,区分低、中、高型速度的电梯也应回会对地高值进行比较。根据电梯有无司机分类有司机的电梯,电梯的

9、运行方式有专职的司机进行操纵。无司机的电梯,电梯的运行方式根据乘客的要求进行运行,乘客必须按键操纵盘上面所显示的按键,电梯才会运行到所要达到的目的层,这种电梯一般都具有集选功能。有司机的电梯和无司机的电梯,电梯是可变换控制电路,乘客流动量小的是由乘客自行操纵,在乘客流动量大的时候有必须有司机进行操纵。根据操纵控制方式分类手柄开关操纵型电梯,是由电梯里面的司机按机箱内的控制操纵手柄开关进行操作,让电梯启动、上升、下降、开门、关门等等运行状态。按键控制型电梯,是一种常用比较简单的自动控制电梯,具有自动平层运行的功能,常见的有机箱外按键控制、机箱内按键控制两种控制方式。信号控制型电梯,是有司机的自动

10、控制程度比较高的电梯。除了具有自动平层运行功能之外,还有自动开关门功能之外,还有机箱命令登记的功能,每层召唤功能,自动停止功能等等。集选控制型电梯,是在信号控制基础上发展起来的全自动控制的电梯,与信号控制型电梯的主要区别是不用司机的操纵。并联控制型电梯,一般是指有23台电梯的控制线路并联在一起进行逻辑控制,共用每层召唤按键,电梯本身也有集选的功能。群控型电梯,是采用微型控制和统一控制多台集中并列的电梯,群控型电梯有梯群的程序控制、梯群智能控制等等形式。其它分类方式按机房位置分类,则有机房在井道顶部的(上机房)电梯、机房在井道底部旁侧的(下机房)电梯,以及有机房在井道内部的(无机房)电梯。按机箱

11、尺寸分类,则经常使用“小型”、“中型”、“大型”等抽象词汇表示。此外,还有双层轿厢电梯等。特殊电梯(1)斜行型电梯,轿厢在倾斜的井道中沿着倾斜的导轨运行,是集观光和运输于一体的输送设备。特别是由于土地紧张而将住宅移至山区后,斜行电梯发展迅速。(2)立体停车场用型电梯,根据不同的停车场可选配不同类型的电梯。(3)建筑施工型电梯,是一种采用齿轮齿条啮合方式(包括销齿传动与链传动,或采用钢丝绳提升),使吊笼作垂直或倾斜运动的机械,用以输送人员或物料,主要应用于建筑施工与维修。它还可以作为仓库、码头、船坞、高塔、高烟囱的长期使用的垂直运输机械。(4)消防型电梯,在发生火警时,用来运送消防人员,乘客和消

12、防器材等等。(5)冷库型电梯,在大冷库或制冷车间,运送冷冻货物.但是需要满足门扇及导轨等活动处密封 ,浸水等要求。(6)矿井型电梯,供矿井运送人员及货物之用。(7)特殊型电梯,供特殊环境条件下使用,如防爆,防腐,耐热等特殊用途的电梯。(8)滑道型电梯,在建筑物内配置,常与建筑物,人行道平行使用。(9)运机型电梯,能不机库中几十吨或者上百吨重量的飞机,垂直提升到飞机场跑道上。(10)门吊型电梯,在大型门式起重机的门腿中,运送在门机中的工作人员及检修机件等。(11)自动型扶梯。(12)座椅型电梯,人坐在电动机驱动的椅子上,控制椅子手柄上的按扭,使椅子下部的动力驱动装置驱动人椅,沿楼梯扶栏的导轨上下

13、运动。1.3课题的研究内容本课题主要完成电梯的自动升降的功能,即根据每个楼层不同的乘客的按键要求,使电梯做出合理的判断,正确高效地完成各项任务,从而实现电梯的高效、安全运行。依据课题的任务,本课题需要研究的内容有:1、收集系统的相关资料,并进行实地调查;2、根据系统技术的要求,进行系统硬件的总体设计;3、学习和完善单片机的相关知识,并且加以运用;4、巩固C语言编程知识,并且规定电梯的工作规则,本设计编程语言采用的是C语言实现;5、对软件和硬件进行调试,完成课题任务。思路系统主要是为了实现电梯的自动控制和高效运行,根据具体要求和实地考察,最后确定了总体的思路。使用80C51为最小系统,采用C语言

14、进行编写程序,系统采用的外部中断0的方式进行对按键的处理,采用LED灯来表示按键响应情况,LED亮表示当前的按键被按下,LED灭表示当前的按键被处理完毕或者按键无响应,通过八段数码管来同步显示当前机箱所处在的位置,为了进一步形象的表示出电梯的运行情况,系统采用了两个电机来表示电梯的运情况,电机1正传表示电梯上升,反转表示电梯下降,电机2正传表示开门,反转表示关门。由于系统的按键比较多,故本采用8255A才扩展用于按键中。设计比较在系统的设计中总会出现一些争议,为什么要使用C语言而不使用汇编语言来编写程序呢?为什么选择80C51作为最小系统等等这些都是值得探讨的一个问题。下面就根据系统的存在的一

15、些争议问题进行详细的说明。1、C语言和汇编语言在开发中的优缺点。汇编语言是用文字助记符来表示机器指令的符号语言,是最近于机器码的一种语言。主要的优点是占用的资源少、程序的执行的效率高。但是不同的CPU,汇编语言可能存在某些差异,所以汇编语言比较不容易移植。C语言是一种编译型程序设计语言,并具备汇编语言的功能。C语言有丰富的库函数、运算速度快、编译效率高、良好的移植性,而且可以直接实现对系统硬件的控制。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。C语言还具有完善的模块化程序结构,在软件编写的时候采用模块化程序设计提供了有力的保障。C语言主要的优点是可

16、读性好,移植比较容易,不太需要考虑外界因素,是普遍使用的一种计算机语言。缺点是占用资源比较多,执行效率没有汇编的高。根据以上的对比,故此系统才用的是C语言进行程序编写,只要是C语言的在进行程序设计的时候会大大缩短设计的周期,并且增加了软件的可读性,便于改进和扩充,系统还可以进行更新等,从而使系统的性能更为强大。2、最小系统的选择在选择最小系统的控制核心、价格、性能、稳定性、能否满足本系统的要求为主才进行选择的,本系统采用的80C51为最小系统,性能价格和稳定性都满足了系统的要求,故选择了80C51为最小系统。3、按键的处理方式按键是实现人机交互的主要设备,按键的处理方式在一定程度上会影响倒系统

17、的性能,故选择一个合适的处理方式还是很重要的。按键的处理方式一般分为三种:程控扫描方式、定时扫描方式、中断扫描方式。程控扫描方式首先是判断按键是否有按键,如果在进行逐行逐列的判断,还要进行按键消抖的处理,最终才能读出按键的值,而且还需要编写一大推的程序进行按键的判断,占用了很多CPU。定时扫描方式是CPU每隔一段时间对按键扫描一遍,当有发现按键按下的时候就进行按键操作,读去按键值,定时器时间间隔由单片机内部定时/计数器产生,这样可以减少计算机扫描按键的时间,减少CPU的开销。中断扫描方式当有按键响应时就向CPU申请中断,CPU响应中断后立刻转到中断的服务程序对按键进行扫描,进行按键值的读取。此

18、系统对实时性的要求很高,所以CPU的占用时间要尽量的少才是主要的,在以上三种处理方式中程控扫描方式占用的CPU最多,定时扫描方式占用的CPU相对比较少,而中断扫描方式占用的CPU是最少的,故本系统采用中断扫描方式对按键进行处理。4扩展芯片的选择由于很系统的特点,需要较多的按键,故需要扩展I/O口,在开发中一般都是使用8255A作用I/O扩展的芯片。8255A在一定程度上满足的本系统的要求。5电机的选择按电梯的驱动方式有很多种如直流电梯、液压电梯、齿轮齿条电梯、螺杆式电梯等等,但是此设计是采用仿真来实现的,没有办法真正实,故在本系统中采用用的是直流电机驱动的方式来模拟电梯的自动运行。1.5课题的

19、设计步骤根据课题的研究内容,本课题的设计方案步骤:硬件部分:对实际电梯控制系统进行模拟,一般情况下,一个标准的电梯都应该具备相关按键,数码显示管,拖动电机,机箱等等。由于采用的软件仿真方式,有很多无法实现的功能,如自动检测超载,安装监控等相关功能等。本课题只是实现了电梯的自动升降,在硬件方面选择了80C51为主芯片,晶振采用12MHZ,按键部分采用8255A扩展,显示采用了八段数码管显示和LED灯显示,并采用74LS373进行输出数据锁存。软件部分:根据实地考察,并对电梯的流程进行了严格的反复思考,完成了电梯的软件设计部分。假设机箱要上就要上升要上响应的最高层,下就要下降到下响应的最底层,这样

20、才能实现电梯的高效运行,才不会出现电梯运行的复杂化。硬件设计和软件设计是密不可分的,二者是相辅相成的,硬件是根据软件才验证的,软件是根据硬件才实现的,经过长期的研究,发现问题,解决问题,最终完成了电梯的设计。1.6课题的开发环境介绍1.6.1 PProteus软件是由英国Labcenter electronics公司出版的EDA工具软件。Proteus软件是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cor

21、tex和DSP系列处理器,并持续增加其他系列处理器模型。Proteus软件不仅具有其它EDA工具软件的仿真功能,且还能仿真单片机及外围器件。Proteus软件是至今最好的仿真单片机及外围器件的工具。Proteus软件从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。在编译方面,Proteus软件也支持IAR、Keil和MPLAB等多种编译器。Proteus软件在中国的推广比较晚,但是已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的学习和开发的良好工具。Proteus软件的主要特点:(1)互动的电路仿真用户甚至可

22、以实时采用诸如AD,ROM, RAM,马达, LCD,DA,键盘,LED,部分IIC器件,部分SPI器件。(2)仿真处理器及其外围电路可以仿真PIC、ARM 、51系列、AVR等等一些常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果,并且系统配置了示波器、虚拟逻辑分析仪等,Proteus软件可以建立一个完备的电子设计开发环境。Proteus软件功能模块:(1)独特的单片机协同仿真功能;(2)智能原理图设计;(3)完善的电路仿真功能;(4)实用的PCB设计平台。Proteus软件资源丰富:(1)Proteus软件可提供的仿真仪表资源 :交直流电

23、流表、交直流电压表、模式发生器、信号发生器、I2C调试器、SPI调试器、虚拟终端、逻辑分析仪、示波器。在原理上同一种仪器可以在一个电路中任意的使用。(2)除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。(3)Proteus软件可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。(4)Proteus软件可提供的调试手段:Proteus提供了比较丰富的测试信号

24、用于电路的测试。这些测试信号包括数字信号和模拟信号。Proteus软件与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。本系统采用Proteus7.0版本进行硬件的构造,根据以上所阐述的Proteus软件的功能和用途,在加上有强大的外围设备,在一定程度上已经满足了系统研究的需要了。1.6.2 Keil程序研发

25、软件开发过程中除了必要的硬件之外,还需要软件。汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是机器汇编,另一种是手工汇编。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部份组合在一起。Keil也有一定的硬

26、件配置要求,运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。Keil软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C语言的程序设计,界面美观,易学易用,是编写软件与系统调试的好软件。所以在编写程序的时候采用Keil软件进行编写程序的工具。1.7功能要求本课题是设计一个八层的自动升降电梯控制系统,使得电梯能够合理高效地运行,完成每个楼层的接送任务。具体的说是满足不同楼层乘客的不同需求,作出合理高效的判断,让所有乘客在整体运用时间最短的条件下达到所

27、要到达的楼层。本设计采用的是Proteus软件仿真,用Keil软件编写程序,严格按照两个原则:一是高效性,二是人性化。然而实际中,电梯还存在很有很多比较复杂的情况,在仿真中没有办法完成,这是本设计存在的瓶颈。总体来说本系统设计合理,效果不错。2课题总体设计本设计是利用80C51为最小系统,采用外部中断0,80C51的P0口接8255A扩展芯片,P1口两个八段数码管,用于显示响应楼层的情况8255A8255A8255A的CS相连,用于片选8255A,P2.2、P2.3、P2.4、P2.5用于74LS373的控制选择端口,P3.0、P3.1、P3.4、P3.5用于两个电机的控制。系统刚开始运行的时

28、候,电梯处在第一层。其总设计框图如图2-1所示。图2-1系统总设计框图在硬件的设计的时候,要很据实际情况选择相应的元器件,在现实中可能要考虑到很多问题,如成本问题,功率问题,环境问题等等,这些都是在开发中存在的一些细节问题,但是在仿真中就没有那么的要求,所以在选择元器件的时候有多种方案,现在的一些模拟型器件在仿真中也是没有办法实现的,所以在选择元器件的时候还是要根据实际情况,选择相应的元器件。表2-1为本设计的元器件清单。表2-1系统元器件清单元器件型号数量/个用途单片机80C511控制核心晶振CRYSTAL(12MHZ)1晶振电路电容CAP2晶振电路电容CAP-ELEC1复位电路集成电阻RE

29、SPACK-82上拉电阻按键BUTTON23按键电路、复位电路非门NOT1用于选中8255A锁存器74LS3734数码管、LED灯显示电路8255A8255A1按键电路与门AND_31用于中断与门AND_83用于中断数码管7SEG-COM-CATHODE2数码管显示LED灯LED-RED22LED灯显示电路电机MOTOR2电机驱动电路电阻RES1复位电路电机驱动芯片L2981电机驱动电路单片机复位电路工作原理及设计单片机晶振电路工作原理及设计按键电路设计LED灯和数码管的使用方法80C51的使用方法单片机C语言及程序设计相关知识电机驱动电路的原理(L298专用芯片)8255A的使用方法74LS

30、373的使用方法与门的使用方法最小系统80C5180C51单片机属于MCS-51系列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(PUSH)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。采用40引脚双列直插式DIP(Dual In Line Package),内有128个RAM单元及4K的ROM。80C51有两个16位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有4个8位并行输入口。80C51内部有时钟电路,但需要石英晶体和微调电容外接,本系统中采用12MHz的晶振频率

31、。由于80C51的系统性能满足系统数据采集及时间精度的要求,而且产品产量丰富来源广,应用也很成熟,故采用来作为控制核心,基本构架如图2-2最小系统80C51引脚图。当输入口不够的话可以采用8255A进行扩展。图2-2最小系统80C51引脚图扩展芯片8255A8255A是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其各口功能可由软件选择,使用灵活,通用性强。8255A可作为单片机与多种外设连接时的中间接口电路,也可以与其他系列的微处理器配套使用。由于8255A的通用性强,与微型计算机借口方便,且可通过程序制定完成

32、各种不同输入和输出操作,因此获得非常广泛的应用。8255A是可编程的并行输入输出接口芯片,它具有三个8位并行端口,分别为A口、B口和C口,且具有40个引脚,双列直插式封装,采用+5V供电,其引脚与功能示意图如图2-38255A引脚分布图所示。图2-3为8255A引脚分布图D0D7:三态双向数据总线,8255A与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。A1,A0;地址选择线,用来选择8255A的PA口,PB口,PC口和控制寄存器。A1,A0;地址选择线,用来选择8255A的PA口,PB口,PC口和控制寄存器;当A1=

33、0,A0=1时,PB口被选择;当A1=1,A0=0时,PC口被选择;当A1=1,A0=1时,控制寄存器被选择。/CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255A与CPU进行通讯;/CS=1时,8255A无法与CPU做数据传输。/RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255A通过数据总线向CPU发送数据或状态信息,即CPU从8255A读取信息或数据。/WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255A。RESET:复位输入线,当该输入端处于高电平时,所有内

34、部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。根据以上说明列出扩展8255A个端口的读/写操作的信息关系如表2-2所示。表2-2扩展8255A个端口的读/写操作的信息关系/CS/RD/WRA1A0操作01000写端口A01001写端口B01010写端口C01011写控制存储器00100读端口A00101读端口B00110读端口C00111无操作8255A在使用前要先写入一个工作方式控制字,用于指定A口、B口、C口三个端口各自的工作方式,三个端口是相互独立的输入输出通道端口。8255A共有三种工作方式:方式0基本输入输出方式,即无须联络就可以直接对8255A与外设之间的数据输

35、入输出操作。A口、B口、C口和高4位和低4位均可设置为方式0。方式1选通输入/出方式,此时8255A的A口和B口与外设之间进行输入或者输出操作时,需要C口的部分I/O线提供联络信号。只有A口和B口可工作于方式1。方式2双向选通输入/输出方式,即同一端口的I/O线即可以输入也可以输出,只有A口可以工作于方式2.这种工作方式需要C口的部分I/O线来提供联络信号。PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。 工作于三种方式中的任何一种;PB0PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。不能工作于方式二;PC0PC7:端口

36、C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。不能工作于方式一或二。8255A作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255A可编程,所以必须具有逻辑控制部分,因而8255A内部结构分为3个部分:与控制部分、CPU连接部分、与外设连接部分。1)控制器8255A将3个通道分为两组,即PA0PA7与PC4PC7组成A组,PB

37、0PB7与PC0PC3组成B组。A组控制器:控制A口与上C口的输入与输出。B组控制器:控制B口与下C口的输入与输出。2)与CPU连接部分根据定义,8255A能并行传送8位数据,所以其数据线为8根D0D7。由于8255A具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0A1。此外CPU要对8255A进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下:(1)数据总线DB:编号为D0D7,用于8255A与CPU传送8位数据。(2)地址总线AB:编号为A0A1,用于选择A、B、C口与控制寄存器。(3)控制总线CB:片选信号、复位信

38、号RST、写信号、读信号。当CPU要对8255A进行读、写操作时,必须先向8255A发片选信号选中8255A芯片,然后发读信号或写信号对8255A进行读或写数据的操作。3)与外设接口部分根据定义,8255A有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255A可以用24根线与外设连接,若进行开关量控制,则8255A可同时控制24路开关。各通道的引脚编号如下:(1)A口:编号为PA0PA7,用于8255A向外设输入输出8位并行数据。(2)B口:编号为PB0PB7,用于8255A向外设输入输出8位并行数据。(3)C口:编号为PC0PC7,用于8255A向外设输入输出8位并行数

39、据,当8255A工作于应答I/O方式时,C口用于联络信号的通信。以上阐述的是8255A的相关资料,根据系统的需求,采用了8255A的方式0基本输入输出方式,根据表2-2的信息才选择对应8255A的控制字,通过总线控制的方式来实现8255A的读写,当然系统在对8255A的使用时,只是对PA、PB、PC的输入数据进行读取值而已。电机驱动专用芯片L298L298是意大利SGS半导体公司生产的步进电机专用控制器,它能产生4相控制信号,可用于计算机控制的两相双极和四相单相步进电机,能够用单四拍、双四拍、四相八拍方式控制步进电机。芯片内的PWM斩波器电路可开关模式下调节步进电机绕组中的电机绕组中的电流。该

40、集成电路采用了SGS公司的模拟/数字兼容的I2L技术,使用5V的电源电压,全部信号的连接都与TFL/CMOS或集电极开路的晶体管兼容。图2-4为L298引脚分布图。图2-4为L298引脚分布图L298芯片引脚说明1脚(SENSA)-IN1、IN2电流检测电压反馈输入端2脚(OUT1)-第一个输出3脚(OUT2)-第二个输出4脚(VS)-外部电压5脚(IN1)-第一个输入6脚(ENA)-IN1、IN2阻止电机驱动7脚(IN2)-第二个输入8脚(GND)-接地端9脚(VCC)-+5V电源输入端10脚(IN3)-第三个输入11脚(ENB)- IN3、IN4阻止电机驱动12脚(IN4)-第四个输入13

41、脚(OUT3)-第三个输出14脚(OUT4)-第四个输出15脚(SENSB)-IN3、IN4电流检测电压反馈输入端根据以上引脚说明,列举出L298控制表如表2-3所示。表2-3 L298控制表ENA/ENBSENSA/SENSBIN1/IN3IN2/IN4直流电机运行状态+5V接地00滑行+5V接地10正转+5V接地01反转+5V接地11刹车以上阐述了L98的功能,系统的两个直流电机分别是连接到L298的输出端口,通过L298的输入对应来控制直流电机的运行状态。主要采用了正传、反转和刹车这三个运行状态。3系统硬件设计本设计在硬件设计中分为数码管显示电路、LED灯显示电路、电机驱动电路、按键电路

42、、晶振电路、复位电路。数码管显示电路根据设计的需要,本设计采用的八段数码管来显示,楼层分配一个数码管,机箱里面也分配一个数码管,总共使用了2个八段数码管,使用74LS373来进行锁存当前数据,数码管同步显示当前机箱所在的楼层数。设计如图3-1所示。图3-1数码管显示电路80C51的P1口与74LS373的数据端口相连,P来控制74LS373读取数据和显示数据,数码管采用共阴极接法。74LS373具有锁存数据的功能。单片机在驱动数码管有很多种方法,一般可以分为静态输出驱动、动态输出驱动和动态扫描驱动着三种方法。一个数码管正常都是需要5mA的电流才能正常显示,两个数码管总的才需要10mA的,但是单

43、片机在20mA的电流之下一般都不需要什么驱动。系统中单片机动态输出静态驱动数码管,也直接给每位数码管加驱动信号了,并且采用了74LS373对单片机输出的数据进行了锁存。 LED灯显示电路LED灯主要是为了显示当前哪些按键有响应,根据设计的需要,总共需要22个LED来显示,分别用于上七个按键、下七个按键、机箱里面的八个按键,并通过三个74LS373来锁存当前响应的数据,设计如图3-2所示。图3-2 LED显示电路80C51的P1口与74LS373的数据端口相连,P2.3、P2.4和P2.5分别来控制三个74LS373读取数据和显示数据,LED灯采用的低电平显示方式。系统使用的是红光LED灯,在3

44、mA的电流就能使得LED很亮的,电流需要控制在10m内,单片机单片机动态输出静态驱动LED灯,就能驱动LED灯了,所以无需在加驱动了,并且采用了74LS373对单片机输出数据进行了锁存。电机驱动电路在此设计中,电机的驱动是十分重要的,也是为了更好的体现出仿真系统的友好性,电机的运行情况反应了机箱的运行情况。本设计采用了两个电机,一个是用于机箱的升降,正传表示机箱上升,反转表示机箱下降,另一个是用于机箱门的开关情况,正传表示开门,反转表示关门。采用L298电机驱动专用芯片进行驱动。设计如图3-3所示。图3-3电机驱动电路80C51的P3.0、P3.1、P3.4、P3.5分别L298电机驱动芯片连

45、接,OUT1与OUT2分别于电机1相接,OU3与OUT4分别于电机2相接。电机1的电压12V,转速为18r/s,负载为200。电机2的电压12V,转速为7r/s,负载为100。按电梯速度的分类柯分为低速梯,常指低于/s速度的电梯,中速梯,常指速度在1.002.00m/s的电梯,高速梯,常指速度大于/s的电梯,超高速梯,速度超过/s的电梯。乘客电梯一般都是为m/s,一层楼一般都是为3m左右,所以上升一层需要的时间一般都是为1.5s的时间,在进行实际的设计时需要根据不同环境不同高度的楼层进行相应的更改。本系统采用的仿真,为了满足人眼视觉的效果,电机1采用的转速为18r/s 18r/s,电机2采用的

46、转速为7r/s,这主要是为了实现仿真视觉效果,故在设计的时候存在着偏差。按键电路在本设计中,使用到的按键比较多,八层总共需要22个按键,所以用8255A扩展来当做按键模块。设计如图3-4所示。图3-4按键控制电路80C51的P0口与8255A8255A8255ATO通过非门反向器接8255A的/CS,使得8255A一直处于被选择的状态8255A的/8255A的/RD,8255A的RESET也需要接地,8255A的PA口与七个上按键相接,8255A的PB口与七个下按键相接,8255A的PC口与机箱里面的八个按键相接。此外按键还需要分别通过与门在与80C51的P3.2(外部中断0)端口相接,当有按

47、键按下时就会产生中断。晶振电路单片机的时钟信号是用来提供单片机内各种微操作的时间基准,80C51片内设有一个由反向放大器所构成的振荡电路,XTAL1和 XTAL2分别为振荡电路的输入和输出端,80C51单片机的时钟信号通常用两种电路形式得到:外部振荡方式和内部振荡方式。外部振荡方式的时钟很少用,如果需要用到外部振荡,只要将XTAL1接地,XTAL2接外部振荡器就行,对外部振荡信号没有什么特殊要求,只要保证脉冲宽度,一般采用频率低于12MHz的方波信号。时钟发生器把振荡频率两分频,产生一个两相时钟信号供单片机使用。一个时钟信号在每一个状态S的前半部分有效,另一个时钟信号在每个状态的后半部分有效。

48、本设计采用的内部振荡方式,内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。只要按照图3-5所示电路进行设计连接就能使系统可靠起振并能稳定运行。图中,电容器C1、C2起稳定振荡频率、快速起振的作用,电容值一般为533pF。但在时钟电路的实际应用中一定要注意正确选择其大小,并保证电路的对称性,尽可能匹配,选用正牌的瓷片或云母电容,如果可能的话,温度系数尽可能低。本设计中采用大小为22pF的电容和12MHz的晶振。图3-5晶振电路复位电路当80C51单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,此时单片机就完成了复位操作的功能。如果RST持续为高电平,单片机就一直处

49、于循环复位状态,而无法执行程序。因此要求单片机复位后能脱离复位状态。而本系统选用的是12MHz的晶振,因此一个机器周期为1s,那么复位脉冲宽度最小应为2s。在实际应用系统中,考虑到电源的稳定时间,参数漂移,晶振稳定时间以及复位的可靠性等因素,必须有足够的余量。根据应用的要求,复位操作功能通常有两种基本形式:上电复位功能、手动复位功能。上电复位功能的要求接通电源后,自动实现复位操作。80C51单片机的上电复位POR(Power On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。在单片机每次初始加电时,首先投入工作的功能部件是复位电路。复位电路把单片机锁定在复

50、位状态上并且维持一个延时,以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟2个机器周期的延时,一般至为2s。标准80C51不仅复位源比较单一,而且还没有设计内部上电复位的延时功能,因此必须借助于外接阻容支路来增加延时环节。当然,外接电阻R还是可以省略的。手动复位功能的要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。本设计采用上电阻开关复位电路,如图3-6所示上电

51、后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。图3-6复位电路根据以上的个个模块原理图构思,通过Proteus软件画出整个硬件设计的图,总的电路设计原理图见附录一。4系统的软件设计4.1 80C51资源的分配接8255A的数据输入输出引脚P1.7-P1.0段控线,接两个八段数码管和四个74LS373的数据端口8255A的A0引脚8255A的A0引脚8255A的/CS引脚8255A的写信号引脚(/WR)8255A的读信号引脚(/WD)主程序流程图根据实地考察,并进行了详细的思考,画出软件主流程图,如

52、图4-1所示。图4-1软件主流程图中断流程图根据系统的要求,画出相应的中断流程图,如图4-2所示。图4-2中断流程图5部分程序/* *函数名:main *功能描述:main主程序 *输入参数:无 *返回值:无 */void main()initkey();/中断初始化,即有一个按键按下则产生中断kuozhan8255chushihua();/8255A初始化P1 = 0xFF;LS1 = 1;/选择74LS373第一片LS1 = 0;/数码管初始化 P1 = 0xFF;LS2 = 1;/选择74LS373第二片LS2 = 0;/LED上灯初始化 P1 = 0xFF;LS3 = 1;/选择74L

53、S373第三片LS3 = 0;/LED下灯初始化 P1 = 0xFF;LS4 = 1;/选择74LS373第四片LS4 = 0;/机箱的LED灯初始化shumaguanxianshi();/数码管显示子程序while(1)key();/按键处理模块在程序开始运行的需要相关的初始化,如外部中断0初始化,8255A初始化,还需要对一些相关值进行初值定义。/*相关初值定义*/uchar aim1 = 0;/表示机箱要处理的最高层,初值为0uchar aim2 = 9;/表示机箱要处理的最底层,初值为9uchar shang = 0;/响应上按键返回值,初值为0uchar xia = 0;/响应下按键

54、返回值,初值为0uchar aim = 0;/响应机箱按键返回值,初值为0uchar persent = 1;/表示机箱目前所在的层数,初值为1,表示在第一层uchar a = 0xFF;/8255A瞬时读取值,初值为0uchar b = 0xFF;/开按键与上按键动态存储,0表示有按下uchar c = 0xFF;/关按键与下按键动态存储,0表示有按下uchar d = 0xFF;/机箱按键动态表示,1表示有按下uchar e = 0;/机箱上升或下降的标志,停止为0,上运行为1,下运行为2,刚好响应当层为3uchar code table = 0x3F, /0 0x06, /1 0x5B,

55、 /2 0x4F, /3 0x66, /4 0x6D, /5 0x7D, /6 0x07, /7 0x7F, /8;/显示数码管1、2、3、4、5、6、7、8的字符段原函数声明是为了程序更加清晰,阅读者更容易的看懂编写者的代码,也是程序模块化的表现。void deleayms(uchar z);/延时n毫秒void deleays(uchar z);/延时n秒void initkey();/按键中断初始化,即有一个按键按下则产生中断void kuozhan8255chushihua();/8255A初始化void externalint0(void);/外部中断0程序void yunxingq

56、ingkuang();/判断机箱是上运行或者下运行或者是响应当前层void panduanshangxiagaodi();/判断上或下的最高层和最低层void shuzushang();/当下响应完的时候判断上是否需要响应void shuzuxia();/当上响应完的时候判断下是否需要响应void key();/按键处理模块void shumaguanxianshi();/数码管显示子程序void LEDshangliang();/LED灯上亮void LEDxialiang();/LED灯下亮void LEDliang();/机箱的LED灯亮void LEDshangmie();/LED上灭

57、void LEDxiamie();/LED下灭void LEDmie();/LED当前层灭void kai();/电梯开门void guan();/电梯关门void yunxingshang();/电机匀速上运行 void yunxingxia();/电机匀速下运行外部中断0本系统一个非常重要的程序,当外部中断0有响应的时候,主程序才可以运行。/*外部中断0程序,当产生中断时,说明有按键按下,识别哪个按键按下,并用b、c、d标注,且进行上下最高低判断,用aim1和aim2返回,aim1表示上最高层,aim2表示下最底层*/void externalint0(void) interrupt 0E

58、A = 0;/禁止所有中断/A口读写数据a = PA_8255;/取出数据if(a != 0xFF)switch(a)/第一层的上按键case 0xFE:LEDshangliang();/响应当前所按下的按键的LED灯if(aim1 = 0) & (aim2 = 9)/判断当前机箱是否所以静止状态e = 0;/机箱停止shang = 1;yunxingqingkuang();/判断电梯上升还是下降panduanshangxiagaodi();/判断电梯上的最高层和下的最底层shang = 0;a = 0xFF; break;/第二层的上按键case 0xFD:LEDshangliang();/

59、响应当前所按下的按键的LED灯if(aim1 = 0) & (aim2 = 9)/判断当前机箱是否所以静止状态e = 0;/机箱停止shang = 2;yunxingqingkuang();/判断电梯上升还是下降panduanshangxiagaodi();/判断电梯上的最高层和下的最底层shang = 0;a = 0xFF; break;/第三层的上按键case 0xFB:LEDshangliang();/响应当前所按下的按键的LED灯if(aim1 = 0) & (aim2 = 9)/判断当前机箱是否所以静止状态e = 0;/机箱停止shang = 3;yunxingqingkuang();/判断电梯上升还是下降panduanshangxiagaodi();/判断电梯上的最高层和下的最底层shang = 0;a = 0xFF; break;/第四层的上按键case 0xF7:LEDshangliang();/响应当前所按下的按键的LED灯if(aim1 = 0) & (aim2 = 9)/判断当前机箱是否所以静止状态e = 0;/机箱停止shang = 4;yunxingqingkuang();/判断电梯上升还是下降panduanshangxiagaodi();/判断电梯上的最高层和下的最底层shang = 0;a = 0xFF; break;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!