论文基于单片机的四层电梯自动控制系统设计.doc

基于单片机的电梯自动控制系统设计与实现

收藏

压缩包内文档预览:(预览前20页/共62页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:27687746    类型:共享资源    大小:2.28MB    格式:ZIP    上传时间:2019-11-28 上传人:遗**** IP属地:湖北
6
积分
关 键 词:
基于 单片机 电梯 自动控制系统 设计 实现
资源描述:
基于单片机的电梯自动控制系统设计与实现,基于,单片机,电梯,自动控制系统,设计,实现
内容简介:
毕业设计说明书毕业设计说明书题 目 : 四层楼电梯自动控制系统的设计 电梯控制系统模型摘 要:本论文主要介绍的是电梯自动控制模型,硬件部分我们使用的是单片机及外围电路组成高度为四层楼的电梯控制系统。单片机采用AT89C51,晶体振荡器选6MHz,C51、C52为30uF瓷片电容与晶体振荡器形成时钟电路。电容C53、电阻R51、R52和按键RESET构成上电复位和手动复位电路。软件部分采用了两种控制方案,简易控制方案只是简单的电梯上升下降,在各楼层短暂停留。而进一步控制方案则考虑各楼层的信号请求,以完成各楼层的升降控制。该系统具有工作稳定,操作简单等优点。关键词:电梯, AT89C51单片机,共阴极数码管,CD4511译码器,发光二极管毕业设计说明书目录第一章 引言 2第二章 设计要求 2第三章 设计方案 3第四章 硬件设计 54.1 单片机 54.2 各楼层电梯间电路 9 4.3 电梯间电路 12 4.4 控制台电路 13 4.5 单片机电路 16 4.6 电路PCB图 17第五章 软件设计 19 5.1 简易控制方案 19 5.2 进一步控制方案 22 5.2.1 控制逻辑流程图 22 5.2.2 说明 25 5.2.3 参考程序 26第六章 软硬件系统的调试 31 6.1 软件调试 31 6.2 硬件调试 32第七章 结束语 33毕业设计总结 34参考文献 36第一章 引言据国外有关资料介绍,公元前2800年在古代埃及,为了建筑当时的金字塔,曾使用过由人力驱动的升降机械。公元1765年瓦特发明了蒸汽机之后,1858年美国研制出以蒸汽为动力,并通过皮带转动和蜗轮减速装置驱动的电梯。1878年英国的阿姆斯特郎发明了水压梯。并随着水压梯的发展,淘汰了蒸汽梯。后来又出现了采用液压泵和控制阀以及直接柱塞式和侧柱塞式结构的液压梯,这种掖压梯至今仍为人们所采用。但是,电梯得以兴盛发展的原因在于采用了电力作为动力来源.。在20世纪初,美国奥梯斯电梯公司首先使用直流电动机作为动力,生产出以槽轮式驱动的直流电梯,从而为今天的高速度,高行程电梯的发展奠定了基础。20世纪30年代美国纽约市的102层摩天大楼建成,美国奥梯斯电梯公司为这座大楼制造和安装了74台速度为6.0MS的电梯。 从此以后,电梯这个产品,一直在日新月异的发展着.目前电梯产品,不但规格品种多,自动化强,而且安全可靠,乘坐舒服.近几年来,随着电子工业的发展,微处理机和电子计算机已成功的应用到电梯的电气控制系统中去,采用无触点元件的电梯电气控制系统已开始批量生产。第二章 设计要求采用AT89C51单片机及外围电路组成高度为四层楼的电梯控制系统。电梯内电路由FS1、FS2、FS3和FS4四个发光二极管作为指示灯,电梯模型上电后,电梯的起始位置为一楼,等待控制台Start按键按下,数码管显示“1”。当Start按键按下后,电梯开始向上运动,控制台的上升指示灯UP亮。2s后到达二楼,数码管显示“2”并在二楼停留5s,然后继续上升。每层楼停留5s,直到四楼。在四楼停留5s后开始下降,控制台的指示灯DOWN亮。每层楼停5s,直到一楼。然后重复上述过程。如果在一个上下循环中按下过Stop键,电梯下降到一楼后停止工作。直到再次按下Start键后重新恢复工作第三章 设计方案电梯控制系统由各层楼的电梯间电路、电梯内电路和控制台电路三部分组成。电梯在各楼层的定位本应采用行程开关,考虑到模型的操作性,采用延时控制。相邻楼层间升降设定为2S。1)各楼层的电梯间电路二、三层的电路间均有“上升”和“下降”选择按键,一楼只有“上升”按键,四楼只有“下降”按键,每个按键配一只发光二极管,作为指示灯。2)电梯内部电路目标楼层14选择按键配又相应的指示灯。3)控制台电路(1)两个按键用于手动控制。控制电路的“开始运行”和“停止运行”(2)两个指示灯,分别指示电梯的升降情况。(3)一只数码管,用于显示电梯当前所在的楼层。4)控制方案(1)简单控制方案(见图1)工作原理:控制台按下START键后,通过AT89C51单片机的控制使得电梯运行,该系统中电梯运行时不受各楼层的控制和影响往复运动,只有在控制台按下STOP键后,电梯降到一楼停止,等待控制台再次启动。该系统使用数码管显示当前楼层。 图1 (2)进一步控制方案(见图2)工作原理:工作台启动电梯,单片机检测各楼层信号请求控制电梯运动,电梯动作完成后数码管显示所在楼层,同时单片机再次检测各楼层请求信号,使的电梯再次动作,直到控制台停止电梯,电梯降到一楼后停止,等待控制台再次启动电梯。 第四章 硬件设计4.1 单片机采用AT89C51单片机及外围电路组成高度为四层楼的电梯控制系统。AT89c51是一种低功耗高性能的8位单片机,片内带有一个4k字节的flash可编擦除只读存储器(perom),它采用了cmos工艺和atmel公司的高密度非易失性存储器(nuram)技术,而且其输出引脚和指令系统和mcu_51系列单片机兼容。片内的flash存储器允许在系统内可改编程序或用常规的非易失性的存储器编程器来编程。同时已具有三级程序存储器保密的性能。在众多的51系列单片机中,要算atmei公司的at89c51更实用,因为它不仅和mcu_51系列单片机指令、管脚完全兼容,而且其片内的4k程序存储器是flash工艺的,这种下艺的存储器用户可以用电的方式瞬间擦除、改写。所以说这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机的程序还可以加密,这又很好地保护了所有者的劳动成果。管脚说明 VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。单片机的基本组成如图3所示振荡器和时钟电路程序储存器(4KB)数据储存器(128字节)两个16位定时器计数器中断控制内部中断总线扩展控制器并行可编程I/O口可编程串行口外部中断扩展控制P0 P1 P2 P3RXD TXD外时钟源外部事件计数AT89C51单片机的基本组成 图3 下面简要说明各部分组成1、 中央处理器单片机的中央处理器是单片机的核心,完成运算和控制操作,中央处理器主要包括运算器和控制器两部分。2、 存储器单片机内部的存储器分为程序存储器和数据存储器。3、外围接口电路CPU与外部设备的信息交换都是通过接口电路来进行。AT89C51单片机的外围接口电路主要包括:4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。4、时钟振荡电路时钟振荡电路是CPU所需要的各种定时控制信号的必备单元。CPU只有在时序信号和控制信号的协调下工作,才能执行各种指令。4.2各楼层电梯间电路如图4所示,R52、R55、R56、R59、R60和R62是上拉电阻,其作用是保证按键未按下时,端口P1.0P1.5为高电平。当按键按下时,端口P1.0P1.5通过按键接地,使得P1.0P1.5变为低电平。电容C51C56的作用是消除抖动和抗干扰。各楼层电梯间的升降选择按键均于单片机P1口连接,上升按键的P1.0P1.2连接。下降按键与P1口的P1.3P1.5连接,即由P1口可以读出电梯间升、降按键的状态。每个上升、下降按键均有一只发光二极管作为指示灯与之配合,发光二极管与P0口的P0.0P0.5连接。每个发光二极管通过一只阻值为470的限流电阻接电源(Vcc),这样流经发光二极管的电流均为7.5mA,有适当的亮度,同时单片机的端口在不加驱动的情况下可以承受。一层二层三层四层图4 电梯间电路4.3电梯内电路 电梯内电路如图5所示,四个目标楼层选择按键F1、F2、F3、F4和四个与之配合的发光二极管作为指示灯,即FS1、FS2、FS3和FS4。按键与P3口的P3.0P3.3连接,指示灯与P2口的P2.0P2.3相连。上拉电阻R11R14和电容C11C14的作用同上。 图5 电梯内电路4.4控制台电路控制台电路如图6所示。发光二极管Power是电源指示灯,用以显示供电是否正常。DISP是0.5in(英寸)共阴极数码管,用来显示当前楼层。采用CD4511作译码器,经R31R37(阻值为470)对数码管限流。UP、DOWN两只发光管用来显示电梯运行的方向。CD4511是BCD-锁存/七段译码/驱动器:有灯测试功能;以反相器作输出级,用以驱动LED或数码管;具有消隐输入;显示数6时,a=0,显示9时,d=0。1-B,2-C,3-LT(为灯测试输入端),4-BI(数据输入端),5-LE(锁存使能,锁存输入使能),6-D,7-A,8-VSS(电源负极)(A,B,C,D为门电路的输入端)9-e,10-d,11-c,12-b,13-a,14-g,15-f, 16-vdd(电源正极)(a,b,c,d,e,f,g为译码输出;显示字符端输出,连接数码管的相应脚)CD4511功能表十进制或功能输 入输 出字型LED C B Aa b c d e f g0123456789000000000011111111110 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 111111111111 1 1 1 1 1 00 1 1 0 0 0 01 1 0 1 1 0 11 1 1 1 0 0 10 1 1 0 0 1 11 0 1 1 0 1 10 0 1 1 1 1 11 1 1 0 0 0 01 1 1 1 1 1 11 1 1 1 0 1 1消 隐锁 定灯 测 试1110 010 0 0 0 0 0 0锁定在上一个LE=0时1 1 1 1 1 1 1图6 控制台电路 4.5单片机电路单片机电路如图7所示,单片机采用AT89C51,晶体振荡器选6MHz,C51、C52为30uF瓷片电容与晶体振荡器形成时钟电路。电容C53、电阻R51、R52和按键RESET构成上电复位和手动复位电路。外部接线图见附图1。图7 单片机电路4.6、电路板PCB图图8所示电路板PCB图的顶层和底层。图8 电梯模型PCB图(顶面)图8 电梯模型PCB图(底面)第五章 软件设计5.1简易控制方案(1)电梯模型上电后,电梯的起始位置为一楼,等待控制台Start按键按下,数码管显示“1”。(2)当Start按键按下后,电梯开始向上运动,控制台的上升指示灯UP亮。2s后到达二楼,数码管显示“2”并在二楼停留5s,然后继续上升。每层楼停留5s,直到四楼。在四楼停留5s后开始下降,控制台的指示灯DOWN亮。每层楼停5s,直到一楼。然后重复上述过程。(3)如果在一个上下循环中按下过Stop键,电梯下降到一楼后停止工作。直到再次按下Start键后重新恢复工作。(4)5s定时由定时器T0和R2一起完成。T0定时100ms,每100ms中断一次。在中断服务程序中将R2加1。当R2加到50时,中断了50次,50100ms=5s,即完成5s定时。(5)定时器T1定时10ms。每10s中断一次,在中断服务程序中检查一次Stop键是否按下,如果按下停止T1计时(TR1=0),并将R3置为非0(程序中间R3写#0FFH)。电梯下降到一楼是检查R3中的内容,如果不是0就停止工作。(6)参考程序 ORG 0000H AJMP START ORG 000BH AJMP TIME ORG 001BH AJMP TIME1START:MOV TMOD,11H MOV IE,#8AH MOV TH0,#3CH ;定时 MOV TL0,#0B0H MOV TH1,0ECH ;定时 MOV TL1,#78H SETB TR0 SETB TR1 MOV SP,#6FHQ1: SETB P0.6 ;下降指示灯灭 SETB P0.7 ;上升指示灯灭 MOV R3, MOV P3,#1FH ;数码管显示 JB P1.7, ;等待开始工作指令 SETB P0.6Q2: CLR P0.7 ;上升指示灯亮 ACALL DLY ;上升 SETB P0.7 ;到达二层,上升指示灯灭 MOV P3,2FH ;数码管显示 MOV R2, ;定时开始 CJNZ R2,50, ;等待延时 CLR P0.7 ;到,继续上升ACALL DLY ;上升SETB P0.7 ;到达三层,上升指示灯灭MOV P3,#3FH ;数码管显示MOV R2,#0 ;定时开始DJNZ R2,#50,$ ;等待延时CLR P0. ;到,继续上升ACALL DLY ;上升SETB P0.7 ;到达四层,上升指示灯灭MOV P3,#4FH ;数码管显示4MOV R2,#0 ;定时开始DJNZ R2,#50,$ ;等待延时 CLR P0.6 ;到,开始下降,下降指示灯亮ACALL DLY ;下降SETB P0.6 ;达到三层,下降指示灯灭MOV P3,#3FH ;数码管显示 MOV R2, ;定时开始CJNZ R2,50, ;等待5延时 CLR P0.6 ;5到,继续下降,下降指示灯亮ACALL DLY ;下降2SETB P0.6 ;达到二层,下降指示灯灭MOV P3,#2FH ;数码管显示 MOV R2, ;定时开始CJNZ R2,50, ;等待延时 CLR P0.6 ;到,开始下降,下降指示灯亮ACALL DLY ;下降SETB P0.6 ;达到一层,下降指示灯灭MOV P3,#1FH ;数码管显示1 MOV R2, ;定时开始CJNZ R2,50, ;等待延时CJNZ R3,#0,Q3 AJMP Q2 ;R3=0转到Q2开始新的循环 AJMP Q2 ;R30转Q停止工作;定时器中断服务程序:定时,为计数器TIME: MOV TH0,#3CH MOV TL0,#0B0H INC R2 RET1;定时器中断服务程序;记录Stop键是否曾经按下过,R3作为标志TIME: JB P1.6,TIME11 MOV R3,#0FFH CLR TH1TIME11:RET1DLY: MOV R4,#200DLY1: MOV R5,#250 DJNZ R5,$ DJNZ R4,DLY1 RET END5.2进一步控制方案5.2.1控制逻辑流程图如图9和图10所示。 开始 图9 主程序流程N停留5S停留5s三、四 楼有请求?停留5s本楼层是请求目标?上升到达二楼二、三、四楼有请求?P1.7=0本楼层请求目标?上升到达三楼四楼有请求?开始到达四楼在一楼初始化一、二、三楼有请求下降到达三楼本楼层是否请求目标?停留5S一、二楼有请求?下降到达二楼本楼层是请求目标?停留5S一楼有请求?下降到达一楼停留5SR3=0?Y Y N Y N Y N Y N Y N 图10定时器T1中断程序流程开始读取所有按键标志R3置非0数清除全部电梯间上升请求清除全部电梯间下降请求清除全部电梯内目标楼层请求修改读入的按键状态使之只有电梯内目标为一楼并关闭T1,不再读取按键Stop按下?取得电梯间上升请求,并刷新指示灯取得电梯间下降请求,并刷新指示灯取得电梯内目标楼层请求,并刷新指示灯 返回 5.2.2说明存储单元分配20H电梯间上升请求;20H.01楼;20H.12楼;20H.23楼;20H.34楼。21H电梯下降请求:21H.01楼;21H.12楼;21H.23楼;21H.34楼。22H电梯内目标楼层请求:22H.01楼;22H.12楼;22H.23楼;22H.34楼。20H22H:0=无请求;1=有请求。堆线栈底:70H单元。T1中断服务程序中6EH单元包袱累加器A的内容。30H、31H单元分别临时存放P1、P3按键状态。32H作为单元按键及指示灯处理的中间单元。R3作为Stop键曾经下过的记录。上电之后,系统一直等待,当Start键按下后开始工作。如果按下Stop键,强制电梯直接下降到一楼,然后电梯停止工作。直到再次按下Start键后重新恢复工作。中断服务程序每10ms一次检查所有按键状态,并记录在相应存储单元,同时控制相应指示灯。定时器T0定时100ms,R2作为5s定时的计数器。T0每中断一次R2加1,当R2=50时,5s计时完成。5.2.3参考程序 ORG 0000H AJMP START ORG 0000BH AJMP TIME1START: MOV TMOD,#11H MOV IE,#8AH MOV TH0,3CH ;定时100ms MOV TL0,#0B0H MOV TH1,#0ECH ;定时10ms MOV TL1,#78H SETB TR0 MOV SP,#6FHS1: CLR P0.6 CLR P0.7 MOV R3,#0 MOV P3,#1F ;数码管显示“1” JB P1.7, ;等待开始工作指令 SETB P0.6 SETB TR1 ;启动T1 ;10ms一次读取按键UP1: MOV A,20H ;目前在一楼 ORL A,21H ;取得1楼请求情况 ORL A,22H ANL A,#0EH JZ UP1 ;无请求,则等待 CLR P0.7 ;上升指示灯亮 ACALL DLY ;上升2sUP2: MOV P3,#2FH ;到达2楼,数码管显示“2” JB 20H.1,UP21 ;是2楼电梯间的上升请求,转UP21 JB 22H.1,U ;是电梯内目标2楼请求,转UP21 SJMP UP22UP21: CLR 20H.1 ;清2楼电梯间上升请求标志位 CLR 22H.1 ;清电梯内目标2楼请求标志位 SETB P0.7 ;上升指示灯灭 MOV R2,#0 ;5s定时开始 CNJE R2,#50, ;等待5s延时UP22: MOV A,20H ORL A,21H ORL A,22H ANL A,#0CH ;取得2楼请求情况 JNZ UP23 AJMP DOWN22 ;2楼无请求,转2楼下降UP23:CLR P0.7 ;上升指示灯亮 ACALL DLY ;上升2sUP3: MOV P3,#3FH ;到达3楼,数码管显示“3” JB 20H.2,UP31 ;是3楼电梯间的上升请求,转UP31 JB 22H.2,UP31 ;是电梯内目标楼请求,转UP31 SJMP R2,#50, UP31:CLR 20H.1 ;清3楼电梯间上升请求标志位 CLR 22H.1 ;清电梯内目标3楼请求标志位 SETB P0.7 ;上升指示灯灭 MOV R2,#0 ;5s定时开始 CJNZ R2,#50, ;等待5s延时UP32:MOV A,20H ORL A,21H ORL A,22H ANL A,#O8H ;取得3楼请求情况 JNZ UP33 AJMP DOWN32 ;3楼无请求,转3楼下降UP33:CLR P0.7 ;上升指示灯亮 ACALL DLY ;上升2sUP4: CLR 20H.3 ;清4楼电梯间下降请求标志位 CLR 22H.3 ;清电梯内目标4楼请求标志位 SETB P0.7 ;上升指示灯灭 MOV R2,#0 ;5s定时开始 CJNZ R2,#50, ;等待5s延时UD4: MOV A,20H ORG A,21H ORG A,22H ANL A,#07H ;取得4的请求情况 JNZ DOWN4 AJMP UD4DOWN4:CLR P0.6 ;下降指示灯亮 ACALL DLY ;下降2sDOWN3: MOV P3,#3FH ;到达3楼,数码管显示“3” JB 21H.2,DOWN31 ;是3楼电梯间的下降请求,转DOWN31 JB 22H.2,DOWN31 ;是电梯内目标3楼请求,转DOWN31 SJMP DOWN32 DOWN31:CLR 21H.2 ;清3楼电梯间下降请求标志位 CLR 22H.2 ;清电梯内目标3楼请求标志位 SETB P0.6 ;下降指示灯灭 MOV R2,#0 ;5s定时开始 CJNZ R2,#50, ;等待5s延时DOWN32:MOV A,20H ORL A,21H ORL A,22H ANL A,#03H ;取得楼请求情况 JNZ DOWN33 AJMP UP32 ;3楼请求,转3楼上升DOWN33:CLR P0.6 ;下降指示灯亮 ACALL DLYDOWN2: MOV P3,#2FH ;到达2楼,数码管显示“2” JB 21H.1,DOWN21 ;是2楼电梯间的下降请求,转DOWN21 JB 22H.1,DOWN22 ;是电梯内目标3楼请求,转DOWN21 SJMP DOWN22DOWN21:CLR 21H.1 ;清2楼电梯间下降请求标志位 CLR 22H.1 ;清电梯内目标2楼请求标志位 SETB P0.6 ;下降指示灯灭 MOV R2,#0 ;5s定时开始 CJNE R2,#50, ;等待5s延时DOWN22:MOV A,20H ORL A,21H ORL A,22H ANL A,#01H ;取得2楼请求情况 JNZ DOWN23 AJMP UP22 ;无楼请求,转2楼上升DOWN23:CLR P0.6 ;下降指示灯亮 ACALL DLYDOWN1: CLR P3,#1FH ;到达1楼,数码管显示“1”DOWN11:CLR 21H.0 ;清电梯内目标1楼请求标志位 SETB P0.6 ;下降指示灯灭 MOV R2,#0 ;5s定时开始 CJNZ R2,#50, ;等待5s延时 CJNZ R3,#0,DOWN12 ;Stop键是否按下过 AJMP UP1DOWN12:CLR P0.6 ;若Stop键按下过,转S1停止工作 CLR P0.7 AJMP S1;定时器T0中断服务程序;5s计时TIME: MOV TH0,#3CH MOV TL0,#0B0H INC R2 ;R2计数器 RETI;定时器T1中断服务程序;按键状态检查TIME1: MOV TH1,#0ECH ;每10ms检查一次按键 MOV TL1,#78H MOV 6EH,A MOV 30H,P1 ;读入所有按键状态 MOV 31H,P3 JB P1.6,TIME11 ;若Stop键按下,则正常运行 MOV R3,#0FFH ;Stop键按下,标志R3置非0数 MOV 20H,#0 ;清除全部电梯间上升请求 MOV 21H,#0 ;清除全部电梯间下降请求 MOV 22H,#0 ;清除全部电梯内目标楼层请求 MOV 30H,#0FFH ;修改读入的按键状态,使之为 MOV 31H,#0FEH ;电梯内目标为一楼 CLR TR1 ;开关闭T1,不再读取按键TIME11: MOV A,30H CPL A ANL A,#07H ;取得电梯间上升请求 ORL 20H,A MOV A,20H ;取得上升指示灯状态 CPL A ANL A,#07H MOV 32H,A MOV A,30H CPL A ANL A,#38H ;取得电椅间下降请求 RR A RR A ORL 21H,A MOV A,21H CPL A ANL A,#0EH RL A RL A ORL 32H,A MOV A,P0 ANL A,#0C0H ORL A,32H ;刷新上升、下降请求指示灯 MOV A,31H ANL A,#0FH ;取得电梯内目标楼层请求 ORL 22H,A MOV A,22H CPL A MOV P2,A ;刷新电梯内目标楼层指示灯TIME12: MOV A,6EH RET1;2s延时程序DLY: MOV R5,#20DLYI: MOV R6,#100DLY2: MOV R7,#250 DJNZ R7, DJNZ R6,DLY2 DJNZ R5,DLY1 RET END 第六章 软硬件系统的调试6.1 软件调试软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现硬件故障。程序的调试应一个模块一个模块地进行,首先单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连接起来总调。联调需要注意的是,各程序模块间能否正确传递参数,特别要注意各子程序的现场保护与恢复。调试的基本步骤如下:(1) 用仿真器修改显示缓冲区内容,屏蔽拆字程序,调试动态扫描显示功能。例如将DISP0DISP5单元置为“012345”,应能在LED上从左到右显示“012345”。若显示不正确,可在DISP子程序相应位置设置断点调试检查。然后用仿真器修改计时缓冲区内容,调用拆字程序,调试显示模块DISPLAY。例如,将HOUR、MIN、SEC单元置为“123456”,检查是否能正确显示“12:34:56”。若显示不正确,应在SEPA子程序相应位置设置断点,调试检查。(2) 运行主程序调试计时模块,不按下任何键,检查是否能从由00:00:00开始正确计时。 若不能正确计时则应在定时器中断服务子程序中设置断点,检查HOUR、MIN、SEC、MSEC单元是否随断点运行而变化。然后屏蔽缓冲区初始化部分,用仿真器修改计时缓冲区内容为23:58:48,运行主程序(不按下任何键),检验能否正确进位。(3) 调试键盘扫描模块KEYSCAN,先用延时10ms子程序代替显示子程序延时消抖,在求取键号后设置断点,中断后观察A累加器中的键号是否正确;然后恢复用显示子程序延时消抖,检验与DISPLAY模块能否正确连接。(4) 调试时间设置/闹钟定时模块MODIFY。首先屏蔽COMB子程序,单独调试键盘设置模块KEYIN,观察显示缓冲区DISP0DISP5单元的内容是否随键入的键号改变,以及键号能否在LED上显示。然后屏蔽KEYIN子程序,单独调试合字模块COMB,分别将R1设置为时间设置缓冲区和闹钟值寄存区的首地址,修改显示缓冲区内容,程序运行后查看时间设置缓冲区HOUR、MIN、SEC单元和闹钟值寄存区AHOUR、AMIN、ASEC单元内容是否正确。最后联调MODIFY模块。(5) 运行主程序联调,检查能否用键盘修改当前时间以及设置闹钟,能否正确计时、启闹、停闹。6.2硬件调试6.2.1 状态灯显示测试当电路连接完毕后,将写好的测试程序刷写到芯片内,分别给端口送高电平和低电平,通电即可检测。6.2.2 数码管的测试将串口的和电路板上的接口连接,将写好的测试程序刷写到芯片内,开电源即可测试。6.2.3 整体电路测试系统上电,刷写好程序即可开始测试,观测一个周期灯的显示状态是否正常,同时观察倒计的计数是否正常。第七章 结束语本设计基本上达到了设计目的。利用通用译码器和单片机实现了对电梯的控制,通过合理的设备选型、参数设置和软件设计,提高了电梯运行的可靠胜,改善了电梯运行的舒适感,并节约了电能。通过本次设计,我的知识领域得到进一步扩展,专业技能得到进一步提高,同时增强了分析和解决工程实际的综合能力。另外,也培养了自己严肃认真的科学态度和严谨求实的工作作风。本次设计还存在一些不足之处,例如:本设计是按楼层定高设计的,而实际每一楼层高度是不一定相等的,因此,设计时应考虑楼层间距自学习功能。但由于时间有限,本人没有考虑。另外,由于实际条件的限制,本设计只能进行简单调试,这也是不足之处。当然,设计中肯定还有其他不足和纸漏之处,请各位专家和老师指正。第八章 毕业设计总结时间飞逝,转眼间就到了毕业答辩的时间,此时的心情很是奇怪,既紧张又兴奋,兴奋的是几个月的辛苦成果终于到了验收的时候了,紧张的是不知道毕业答辩会是什么样子 。到目前为止,我依旧没有太多的把握,只能全力以赴;回想几个月的设计过程还真是怀念啊!虽说是苦了一点,但苦中有甜啊,其中自己查阅了大量的资料,充实了自己的知识,弥补了自己不足。平时总觉得自己已经懂得很多了,一旦设计起来,才发现自己其实还差的远,实践才是最好的证明。在一个多月的设计过程中学到了许多东西,不仅仅是毕业设计中的。设计过程中,我们遇到很多不懂或不明白的地方。除了查阅相关资料, 老师也给了我们很多的指导,在老师的指导下改进了设计方案.为了一个问题苦苦思索,为一个问题的圆满解决而高兴,其中的困惑,苦恼,兴奋,激动只有自己知道。或许开始的时候还有一些胆怯,但当一切将要结束时却又有一丝怀念。我明白了不去试过,怎知道路的艰辛快乐 。通过这大学三年中不算太长时间的毕业设计,我深深的明白了这样一个道理:没有我们不懂的东西,只是我们尚未去了解。总结一个多月来的设计,体会如下:首先,任何工作都的与人打交道,毕业设计也不例外,这就需要我们充分的利用好彼此的力量,充分的协作,针对设计中出现的问题,站在不同的角度分析问题,总结大家的意见,最后达成一致,发挥了团队精神。其次,对待任何工作,责任心是必要的;这次毕业设计的体会,我收获至深。但更重要的是,在责任心的驱使下,又该采用何种方法完成,采用何种方法更省时省力,解决问题的方案很多,永远坚信“方法总比困难多”,我想首先分析任务本身,就拿毕业设计来说,课题有了,关键是何处着手。何时何地查找相关资料等等,寻找突破口充分的解决好问题。再次,遇到不懂的问题,及时请教老师,抓紧设计的每分每秒,需要调整和改变的地方及时做出改动,而不能墨守成规,做人也是同样的道理。第四,时刻保持奋进的头脑,不断接受新事物,挑战新的问题。千万记住秒针不停的划圈,我们的思想也应不断的修正提高。在现代信息化社会中,计算机很重要。以前对计算机不是太熟悉,在这次过程中接触计算机的机会很多,现在不再属于那种“计算机盲”了,对计算机知识有很大的收获,对以后的工作更是一大资本。可以说这次设计涉及的知识面很广,将所学的课程融会贯通了,就拿画图来说,虽然学过用CAD画图,但在运用时还是遇到了困难,对以前所学过的不能很好的掌握,对于元器件库更是不熟悉,所以在画图时就比较困难,一张图往往要花好长时间才能完成,但随着操作机会多了也就慢慢熟练起来了,不再对它有生疏感了。所以我深深体会到学知识不能仅仅是学更要学会运用,只有将所学的运用起来才是真正的学有所用,所以就要靠我们平时的锻炼和运用。在走上工作岗位之际能将所学过的内容通过运用复习一遍就真正做到了理论与实践相结合了,为将来在岗位上更好的发挥提供了基础。所以这次设计不但是对三年来所学知识的一次巩固和考试,更是为我们找工作打下了坚实的基础。对于以上之粗浅体会,进一步的总结和提高需要有更多的社会实践来提供,我也相信在不久即将踏入社会之际,类似这样的设计绝不在少数,只要我们努力学习,勇于实践,勤学好问,我就会懂得以前不明白或不十分明白的道理,就会很快地成长和成熟起来,我也相信,凭着我自强不息,勇于拼搏的精神,定能很快适应类似设计的需要,适应这个多变的社会,充分发挥长处,朝我的方向不断前进,前进,再前进!最后,我想说的是,毕业设计的完成,离不开老师您的谆谆教诲和不断帮助。老师您辛苦了。谢谢!参考文献1、朱昌明,洪致育,张惠荞编著,电梯与自动扶梯原理结构安装测试 21IC中国电子网2、刘连昆,樊运华,冯国庆编著,电梯实用技术手册原理安装维修管理 中国电力出版社3、陈保安主编,电梯维修技术 西安电子科技大学出版社4、毛宗源、彭华、尤裕祥编著微机控制电梯南京:东南大学出版社5、刘载文、李惠升、钟亚林编著电梯控制系统继电器与PC控制原理设计及调试苏州大学出版社6、李秧耕主编电梯基本原理及安装维修 华南理工大学出版社37太原科技大学华科学院毕业论文(论文)目 录摘 要VABSTRACTVII第一章 绪论11.1研究的背景与意义11.2本文主要研究内容及设计步骤2第二章 方案设计52.1电梯控制系统原理52.2总体方案设计52.2.1设计原理52.2.2设计方框图62.3 硬件芯片的选择72.4软件的使用82.4.1电路图制作软件 proteus 7.5 sp382.4.2 C51的程序开发软件Keil92.5本章小结10第三章系统的硬件设计113.1单片机的最小系统模块113.1.1 AT89C51简介113.1.2最小系统模块143.2可编程I/O扩展芯片82C55模块163.3信号输入电路193.3.1内外请求输入电路193.3.2厢体位置模拟输入电路203.4信号模拟输出电路213.4.1楼层显示电路213.4.2电梯外部请求显示电路223.4.3报警部分233.5单片机对芯片82C55的基本读写243.5.1芯片82C55的初始化253.5.2芯片82C55的工作方式273.6本章小结29第四章系统的软件设计314.1软件设计314.1.1电梯判决函数314.1.2电梯运行的主程序流程图334.2 keilc的编程和汇编语言的程序354.2.1 keilc编程的流程354.2.2 部分软件功能的程序374.3本章小结40第五章 功能仿真与结果分析415.1单片机控制电梯的仿真415.2 结果与分析425.3本章小结44第六章 总结45参考文献47附录52III基于单片机的五层电梯控制系统设计摘 要随着现代城市的发展,高层建筑日益增多,电梯成为人们日常生必不可少的代步工具电梯性能的好坏对人们生活的影响越来越显著,因此必须努力提高电梯系统的性能,保证电梯的运行既高效节能有安全可靠。传统的电梯控制系统采用的是继电器逻辑控制电路,这种控制易出故障,维护不便,运行寿命短,占地空间大,正逐步被淘汰。本文设计了基于单片机的电梯控制系统,硬件部分主要由单片机最小系统模块、电梯内外电路按键矩阵模拟检测模块、电梯外请求发光显示模块、楼层显示数码管模块、电梯上下行及开关门模拟显示等部分组成。该系统采用单片机(AT89C51)作为控制核心,内外使用按键按下与否引起的电平改变,作为用户请求信息发送到单片机单片机控制电动机的转动,单片根据楼层检测结果控制电机停在目标楼层。软件部分采用汇编语言,利用查询方式来检测用户的请求信息,根据电梯运行到相应楼层时,引起的电平变化,送到单片机计数来确定楼层,并送到数码管进行显示,硬件设计简单可靠,结合软件,基本实现了五层电梯运行的模拟。关键词:AT89C51,LED数码显示,矩阵式按键,电梯控制 VIIMicrocontroller-based five-story elevator control system designABSTRACT With the development of modem cities ,an increasing number of high-rise building , elevator become an indispensable means of transport of daily life. The quality of the life performance of the impact on peoples lives becoming more and more obvious ,it must strive to improve the performance of elevator systems, and ensure the operation of the life is safe, reliable and energy efficient. The traditional elevator control system uses logic of the relay to control circuit, this kind of controls easily to be crash, maintains inconveniently, the movement life is short, and that occupying a large area of space, it being eliminated gradually. This paper design the elevator control system based on single-chip microcontroller hardware part, mainly by minimum system module, elevator internal and external circuit simulation tests module, buttons matrix light-emitting display module elevator outside request, floor shows digital tube module, elevator downlink and open closed model shows that components. The system USES the monolithic (AT89C51) as control core, internal and external use keys pressed or not cause level change, as users request information sent to single-chip microcontroller control motor rotation, monolithic according to floor detection results in target floor control motor stops. Software part adopts assembly language, using inquires the way to test users, according to request information to the appropriate elevator running, according to floor level changes caused by the keys, to determine the floor to SCM count, and sent to digital tube display, hardware design is simple, reliable, combining software, basically achieved simulation of elevator running five floors. KEY WORDS : AT89C51, LED digital display, Matrix buttons, Elevator control第一章 绪论1.1研究的背景与意义电梯进入人们的生活已经150年了。一个半世纪的风风雨雨,翻天覆地的是历史的变迁,永恒不变的是电梯提升人类生活质量的承诺。 生活在继续,科技在发展,电梯也在进步。150年来,电梯的材质由黑白到彩色,样式由直式到斜式,在操纵控制方面更是步步出新手柄开关操纵、按钮控制、信号控制、集选控制、人机对话等等,多台电梯还出现了并联控制,智能群控;双层轿厢电梯展示出节省井道空间,提升运输能力的优势;变速式自动人行道扶梯的出现大大节省了行人的时间;不同外形扇形、三角形、半菱形、半圆形、整圆形的观光电梯则使身处其中的乘客的视线不再封闭1。如今,以美国奥的斯公司为代表的世界各大著名电梯公司各展风姿,仍在继续进行电梯新品的研发,并不断完善维修和保养服务系统。调频门控、智能远程监控、主机节能、控制柜低噪音耐用,一款款集纳了人类在机械、电子、光学等领域最新科研成果的新型电梯竞相问世,冷冰冰的建筑因此散射出人性的光辉,人们的生活因此变得更加美好2。中国最早的一部电梯出现在上海,是由美国奥的斯公司于1901年安装的。1932年由美国奥的斯公司安装在天津利顺德酒店的电梯至今还在安全运转着。1951年,党中央提出要在天安门安装一台由我国自行制造的电梯,天津从庆生电机厂荣接此任,四个月后不辱使命,顺利地完成了任务。十一届三中全会后,沐浴着改革开放的春风,我国电梯业进入了高速发展的时期。在我国任何一个城市,电梯都在被广泛应用着。电梯给人们的生活带来了便利,也为我国现代化建设的加速发展提供了强大的保障。电梯是高层建筑中安全、可靠、垂直上下的运载工具,对改善劳动条件、减轻劳动强度起到很大的作用3。电梯的应用范围很广,可用于宾馆、饭店、办公大楼、商场、娱乐场所、仓库以及居民住宅大楼等。在现代社会中,电梯已成为人类必不可少的垂直运输交通工具。1.2本文主要研究内容及设计步骤本课题的主要任务是完成一个电梯系统的调度模块,即根据每个楼层不同顾客的按键需求,让电梯做出合理的判断,正确高效地知道电梯完成各项载客任务。根据此任务,本课题需要研究的内容有:1、根据系统的技术要求,进行系统硬件的总体方案设计;2、学习单片机的相关知识,并且加以运用;3、研究汇编语言编程,并且规定电梯的工作规则,用汇编语言加以实现;4、对软件和硬件进行调试,让其协调工作,完成指定任务。设计步骤如下:关于硬件部分首先,对实际的电梯系统进行模拟,一般情况下,一个电梯应该具备相关按键、二极管、数码管等,由于这是一个调度模块,故没有设计具体的轿厢等机械部分。然后,结合这些实物,选择恰当的芯片,并分成若干模块,安排好各自之间的关系。由于其有诸多按键和显示环节,而单片机的I/O口管脚资源实在有限,故需要I/O口扩展,用以管理二极管;同时要有专门的按键控制芯片,从而便于按键管理。在此,我选择了8255和74ls48芯片。接着,要完成电路图的设计.关于软件部分:处于最底层的是对两个芯片的寄存器读写工作,完成后方可进行更高层的应用程序调试。然后是关于电梯调度时所遵循的原则作出规定,其必须基于高效与人性化两个原则。最后是使用汇编语言将规定程序化,以便电梯真正的运作。当然,二者的关系并不是分离的,它们是相辅相成,硬件依据软件来验证,软件依据硬件来调试。经过一个个的发现问题、一个个的解决问题,最终做出完美的电梯调度模块。63第二章 方案设计2.1电梯控制系统原理电梯应用中大多采用交流变频电机拖动原理,其厢体由一曳引钢缆连接,由安装在顶层的曳引轮和曳引电机拖动,电机的功率随着曳引重量的不同大小不等。其主要的拖动及控制系统有:(1)外呼内选系统,外部呼叫信号和指示以及厢体内选层和指示系统;(2)平层换速系统,电梯快速到达指定楼层之前切换为慢速并到达平层位置停车;(3)厢体状态指示系统,随着显示厢体所在位置;(4)开关门控制系统,平层开门,关门行车;(5)安全保护系统,含有上下限位、消防、满载、门电锁等功能;电梯运行的基本过程是:由外部呼叫信号给出呼叫,控制系统判断厢体目前所处位置并与呼叫楼层进行对照,同方向还是反方向。若反方向,则改变方向到呼叫层,如同方向,直接运行到呼叫楼层。在方向上,以同方向呼叫优先,且具有最远方向接车功能。厢体的运行方式:启动慢速快速,到达指定楼层之前则是快速慢速平层停车。在所有呼叫中,消防优先级最高。一旦消防呼叫,电梯就近平层,然后直接返回基站,不在响应任何外呼叫信号,只响应内选操作,以保证消防工作的使用。2.2总体方案设计2.2.1设计原理设计采用AT89C51单片机作为核心,配以适当接口作为输出通道。之所以选用AT89C51单片机作为设计的核心,是因为其在一小块芯片上,集成了一个微型计算机的各个组成部分,包括一个八位的微处理器,数据和程序存储器,4个并行的输入输出口,两个定时记数器,完善的中断控制系统,一个全双工的串行输入输出口,精确的时钟产生电路和具有掉电保护的复位电路,而且该芯片是用静态逻辑来设计的,是一种低功耗低电压、高性能的八位单片机,价格合理,可方便地应用在各种控制领域4. 设计采用AT89C51单片机作为核心,配以适当接口作为输出通道。采用44按键矩阵开关电路作为外呼内选呼叫控制,而后通过74LS48从串口驱动数码管显示楼层数。当电梯到达所选层,电梯开门延时等待进人并选层,然后延时关门执行请求,若无请求则停在本层等待请求。软件部分使用汇编语言,利用查询方式来检测用户请求的按键信息,采用74LS245芯片驱动发光二极管5。2.2.2设计方框图 本设计方框图如图2-1所示,电路由复位电路复位后,电梯初始位置在一楼,通过软件设置显示电路显示1,AT89C51将楼层感应电路的来的数据通过74LS48驱动显示电路显示出来;如有用户在厢外呼叫,经过呼叫电路把信号输入单片机,由楼层感应电路判断电梯为上升还是下降状态,若方向一致则打开电梯门,用户进入后关门执行操作。用户通过选层电路把目的层告知AT89C51,控制电机把用户送至目的层,而后系统等待下次呼叫。系统的正常工作由时钟电路来保证,显示电路实时显示电梯所在楼层位置。图2-1 电路总体方框图2.3 硬件芯片的选择合理的硬件设计是一个设计成功的基石,所以在设计之初,我便把自己的主要任务集中于筹划硬件的搭建工作,当然其中需要兼顾软件设计的需求。由于本设计所模拟的楼层共有五层,其中所需要控制的器件较多,如每层都需有两个上下的指示灯,电梯轿厢内也需有去几层的指示灯等,而现有单片机的管脚资源无法满足需求,故第一步需要想法扩展单片机的I/O口管脚资源。在此,我选择了扩展I/O口最典型的芯片82C55。其可把一组八位I/O管脚扩展为PA、PB、PC三组管脚,并通过寄存器对各组管脚进行配置,从而满足了本次设计的要求。考虑到电梯会有多个按键,而传统的依据单片机自身的I/O口布局键盘的方法显然也是不可行的,故本设计选择了典型的键盘式按键,其重要意义不仅在于减轻了单片机I/O口的开支负担,而且可以代替单片机完成各个按键的键值编写工作,单片机只要从其FIFO寄存器中直接读取键值即可得知哪个按键被按下,进而进行相应的操作。另外,电路板上还有一些扩展的子电路模块,并考虑到电路板的面积与价格问题,一些芯片与二极管、电阻等用的是贴片封装。2.4软件的使用2.4.1电路图制作软件 proteus 7.5 sp3Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/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建立了完备的电子设计开发环境。2.4.2 C51的程序开发软件Keil单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用2.5本章小结 本章介绍了课题设计的总体方案,其中包括课题用到的部分软件和硬件,还介绍了课题的基本方框图第三章系统的硬件设计3.1单片机的最小系统模块3.1.1 AT89C51简介 AT89C51是一种带4字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机6。外形及引脚排列如图所示3-1图3-1AT89C51单片机的引脚排列AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案7。(1)单片机的主要特性:与MCS-51 兼容,4K字节可编程FLASH存储器,寿命:1000写/擦循环,数据保留时间:10年,全静态工作:0Hz-24MHz,三级程序存储器锁定,1288位内部RAM32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路8(2)单片机的管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/69。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。 (3)振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.1.2最小系统模块单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。在本设计中,最小系统应该包括:单片机、晶振电路、复位电路等。如图3-2所示,晶振电路由C1与C2和晶振组成,晶振是给单片机提供工作信号脉冲的。它的速率就是单片机的工作速率,简单地说,没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。并在晶振的两引脚处接入两个10pF-50pF的瓷片电容接地用来削减偕波对电路的稳定性的影响。复位电路采取的为手动按键复位电路,由电容,电阻和开关RESET组成,当单片机的复位引脚RESET出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。每次复位后,单片机的程序都会从第一条开始从新执行。另外,还额外设计了滤波防干扰电路,电源先经过它们再接入单片机的Vcc,可以有效的减少其中的杂波带来的干扰。图3-2 单片机最小系统电路3.2可编程I/O扩展芯片82C55模块8255是Intel公司生产的可编程并行I/O接口芯片10,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。其芯片与与单片机的连接方式如图3-3所示。图3-3 8255与单片机得连接方式 D7D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。CS (chip select):片选信号线,低电平有效时,芯片被选中。A1, A0(port address):地址线,用来选择内部端口。RD(read):读出信号线,低电平有效时,允许数据读出。WD (write):写入信号线,低电平有效时,允许数据写入。RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。PA7PA0(port A):A口输入/输出信号线。PB7PB0(port B):B口输入/输出信号线。PC7PC0(port C):C口输入/输出信号线。VCC:5V电源。 GND:电源地线。 8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。1、与CPU连接部分根据定义,8255能并行传送8位数据,所以其数据线为8根D0D7。由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0A1。此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下:(1)数据总线DB:编号为D0D7,用于8255与CPU传送8位数据。(2)地址总线AB:编号为A0A1,用于选择A、B、C口与控制寄存器。(3)控制总线CB:片选信号CS、复位信号RST、写信号WD、读信号RD。当CPU要对8255进行读、写操作时,必须先向8255发片选信号CS选中8255芯片,然后发读信号RD或写信号WD对8255进行读或写数据的操作。2、与外设接口部分根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下:(1)A口:编号为PA0PA7,用于8255向外设输入输出8位并行数据。(2)B口:编号为PB0PB7,用于8255向外设输入输出8位并行数据。(3)C口:编号为PC0PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。3、控制器8255将3个通道分为两组,即PA0PA7与PC4PC7组成A组,PB0PB7与PC0PC3组成B组。相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:(1)A组控制器:控制A口与上C口的输入与输出。(2)B组控制器:控制B口与下C口的输入与输出。3.3信号输入电路3.3.1内外请求输入电路 现以呼叫信号的输入为例,来说明信号输入及单片机识别原理.如图3-4所示,采用PA口外接上拉电阻的并行输入方式,来输入外呼叫信号,本电路采用44矩阵键盘,行扫描法识别键值的原理,具体原理如下:图3-4矩阵式键盘输入的电路图(1)判断键盘中有无键 将全部行线PA0-PA3置低电平,然后检测列线状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中,若所有列线均为高电平,则键盘中无键按下20。(2)判断闭合键所在位置,在确认有键按下后,即可进入确定闭合键的过程,其方法是,依次将行线置为低电平,即在置某根行线为低电平时,其他线为高电平。在确定某根行线位置为低电平后,在逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处得按键就是闭合的按键。S00-S04为一到五楼的电梯内部呼叫请求按键,S05-S13为电梯外部请求按键。S00-S15的扫描键值分别为01H-0FFH.3.3.2厢体位置模拟输入电路 由于没有电梯控制的硬件模型,只能用按键来模拟电梯到达位置的触发信号。本电路采用独立式按键非编码键盘接口查询方式,当任何一个键按下时,与之相连的输入数据线即被清0 而平时该线为1.要判断是否有键按下,用单片机的位处理指令十分方便。这种键盘结构的优点是电路简单;缺点是当按键数较多时,要占用较多的IO口。查询方式键盘的处理程序比较简单。只包括键查询、键功能程序转移,S16-S20分别为一楼都五楼的厢体位置到达触发信号使用端,当S16按下时,表明厢体已经到达一楼,并使用键功能程序转移到显示电路,并发出数字1的字型码,是是数码管显示1。其余功能按键均如此设置。 具体电路如图3-5所示图3-5厢体位置模拟输入电路电路图3.4信号模拟输出电路3.4.1楼层显示电路在实际中,厢外有五个和厢内一个共六个数码管显示厢体位置楼层数,显示的数据时一致的。显示器是最常用的输出设备,与单片机的应用系统接口的显示器主要是LED显示器和LCD显示器。 所谓的接口方式是指LED气短数码显示器与单片机的连接方式。按照显示代码获得方式的不同,可分为硬件译码、软件译码方式。本文采用硬件译码方式。硬件译码方式采用BCD译码器驱动器11(如4511,74LS48)通过译码把一位BCD码数翻译为相应的字型代码,然后由驱动器来提供足够的功率去驱动发光二极管。硬件译码器一般都具有直接驱动LED的能力,且占用单片机的系统接口资源少(字形口只需4个口线),编程简单,因此采用硬件译码方式的开支并不大。其缺点是显示字形有限,通常只能显示09十个字符,个别译码器可输出其他特殊字符。本次设计只需要显示05就可以了。具体电路如图3-6所示。图3-6 楼层显示电路的电路图3.4.2电梯外部请求显示电路 电路如图3-7所示,本电路采用74LS245加限流电阻驱动发光管,高电平有效,只要给单片机的P2口任意位置1,相应的发光管就会亮,8个发光管从高到底依次为一楼到五楼的上下行请求显示。 每个发光管显示都是独立的,只要外部请求按键按下,程序会置为或清零指令就可以随意改变发光管的显示状态使相应的发光管点亮。 要注意的是74LS245与发光管之间的限流电阻不能过大,更不能省略,一般选在200到300欧之间为宜。要是E非端与DIR端接低电平才能正常工作,所以本电路将其直接接地。图3-7电梯外部请求显示电路3.4.3报警部分(1)超重报警当重力传感器检测到超重时,经系统处理后会发出一个持续的高电平,使多谐振荡器工作,最终驱动蜂鸣器工作。(2)紧急报警轿厢内设紧急报警按钮,当电梯突然发生故障使轿箱内的人被困时,可以通过按下紧急报警按钮,使紧急报警灯亮同时发出音响信号,由于这个部分要求电梯的任何运行状况下都要有效,为保险起见,我们将此作为一个独立的模块。附加:防冲顶和防撞底我们在轿厢顶快接近竖井顶部和位置和轿厢底快接近竖井底部的位置也同样放置反光片,用于对电梯进行保护防冲顶和防撞底。当轿厢在超过规定的楼层内感应到光后,程序设定其马上制动。具体电路和编著的程序和平层部分相差不大。3.5单片机对芯片82C55的基本读写与一般其他的芯片类似,对82C55芯片的操作,一般也即对其内部寄存器的操作。其内部寄存器分为两类,一类为命令寄存器,另一类为数据寄存器。很明显,由于82C55的功能为将一组单片机I/O口扩展为三组I/O口,那么肯定要有三组数据寄存器,分别对应着它的三组I/O口,即PA口,PB口与PC口12,那么82C55芯片便有四个寄存器,正好可以用两位的地址线进行寻址(即管脚A0与A1)。其读写寄存器的流程如图3-8所示。图3-8 读写寄存器流程图具体的说,其过程为:开始选中该芯片(低电平有效),而后设置好所要读写的寄存器的地址,也即设置好A0与A1的数值组合,若为读寄存器,则让单片机读引脚P37为低电平,反之若为写寄存器,则让单片机写引脚P36为低电平,然后把要读或者写的数据放到数据口P0口上(需要注意的是,当单片机读寄存器时,对于其自身来说,是输入数据,故此时需先让P0口值为高电平0xff为下一步的输入做准备,而此流程图的最后一步即为这种情况做准备的),一段短短的稳定时间后再让读引脚或者写引脚为高电平,则在由低到高的跳变中,数据得到了转移。然后再片选无效,以防以后的数据传输产生相互干扰。最后数据口P0置为0xff,为方便下次可能的输入做准备。3.5.1芯片82C55的初始化芯片82C55的逻辑构造该芯片的逻辑构造如图3-9所示。 图3-9 82C55逻辑构造图1、三个并行输入输出端口(端口A、端口B、端口C) 8255A有A、B、C三个并行输入输出端口(简称为A口、B口、C口),其功能全部由程序设定,每个端口都有自己的特点。A口、B口通常作为独立的I/O端口使用,C口也可以作为一般的I/O端口使用,但当A口、B口作为应答式的I/O口使用时,C口分别用来为A口、B口提供应答控制信号13。2、读/写控制逻辑19读/写控制逻辑用于管理数据、控制字或状态字的传送,其控制信号有以下几种:(1)CS片选信号,低电平有效允许8255A与CPU交换信息。(2)RD读信号,低电平有效允许CPU从8255A端口中读取数据或状态信息。(3)WR写信号,低电平有效允许CPU将数据、控制字写入到8255A中。(4) RESET,复位信号,高电平有效。清除8255A所有控制寄存器内容,并将各端口置成输入方式。(5) A1、A0,8255A片内端口寻址地址。3、A组和B组控制电路A组和B组控制电路接受读/写控制逻辑的信号和CPU送入的控制字,然后决定各端口的功能。A组控制电路控制A口和C口的高4位(PC7PC4);B组控制电路控制B口和C口的低4位(PC3PC0)。还可根据控制字的要求对C口的某位实现置0或置1的操作18。4、数据总线缓冲器数据总线缓冲器是一个双向三态的8位缓冲器,可与系统的数据总线直接相连,实现CPU和8255A之间的信息传送。82C55芯片内部有四个寄存器,即命令寄存器、PA口寄存器、PB口寄存器、PC口寄存器。其中,向命令中写入数据可以控制芯片各扩展口的工作方式。向后三者寄存器中写入数据,芯片会自动将其取出,并以高低电平的形式分布于各相应管脚。并且,三组扩展口在作为输出时,均具有锁存功能。由于有四组口,故相应的应该有两位地址来对其寻址。芯片上的A0、A1即为此而设计,当A0=0,A1=0时,寻址的为PA口寄存器;当A0=1,A1=0时,寻址的为PB口寄存器;当A0=0,A1=1时,寻址的为PC口寄存器;当A0=1,A1=1时,寻址的为命令(控制)寄存器。3.5.2芯片82C55的工作方式该芯片具有三种可选的工作方式,分别便于不同情况时供使用者以更为方便的选择。现对其工作方式做一简要介绍如下:1、方式0基本输入输出方式(1) 方式0的工作特点方式0称为基本输入输出方式,该方式下可将3个数据端口划分为4个独立的部分:A口和B口作为两个8位端口,C口的高4位和低4位可以用作两个4位端口17 (当然也可以作为一个8位端口),各个端口都可以独立用作输入或输出。其特性如下:1. 任何端口都具有输出及输入功能。2. 输出时,各Port 均有锁定功能,能将信号锁定在最后一次的输出状态上。3. 输入无锁定功能,数据收到后,端口上的信号将不会保留最后一次输入的状态。4. 有2 个8 位端口(PA 和PB)及2 个4 位端口(PC0PC3 和PC4PC7)可供利用。5. 共可组成16 种不同的输出入状态。(2) 方式0的使用场合方式0使用在无条件传送和查询式传送两种场合。2、方式1选通输入输出方式(1) 方式1的工作特点方式1是一种选通输入输出方式。在这种工作方式下,端口A、端口B和端口C被分为两个组。端口A和端口B用作数据的输入/输出,端口C的一些引脚信号被规定为端口A、B的联络信号,这些联络信号和C口的各引脚保持固定的对应关系,不能用程序改变。1. A/B口输入的联络信号16STB :输入选通信号,低电平有效,外设输入;当该信号有效时,使8255的A/B口接收外设的8位数据。信号通过PC4/ A口、 PC2/ B口引入。IBF:输入满信号,高电平有效,8255输出;当该信号有效时,表示8255已接收数据。信号通过PC5/ A口、 PC1/ B口引出。INTR:中断请求信号,高电平有效,8255输出;当该信号有效时, 8255向CPU申请中断(读取数据),信号通过PC3/ A口、 PC0/ B口引出。INTE:中断允许标志,是否允许发出中断申请( INTR );当设置PC4=1( A口的标志), PC2=1 ( B口的标志)时,中断允许。2. A/B口输出的联络信号OBF :输出满信号,低电平有效, 8255输出; 当该信号有效时,通知外设,A/B口的数据准备好。信号通过PC7/ A口、 PC1/ B口引出。ACK:外设回答信号,低电平有效;当该信号有效时,表示外设已空闲。信号通过PC6/ A口、 PC2/ B口引入。INTR:中断请求信号,高电平有效,8255输出;当该信号有效时, 8255向CPU申请中断(输入数据),信号通过PC3/ A口、 PC0/ B口引出。INTE:中断允许标志,是否允许发出中断申请( INTR );当设置PC6=1( A口的标志), PC2=1 ( B口的标志)时,中断允许。方式1的工作特点可归纳如下:端口A和端口B均可工作在方式1输入或输出方式。若端口A和端口B中只有一个工作在方式1,而另一个工作在方式0,则端口C中有3位作为方式1的联络信号,端口C其余5位均可工作在方式0的输入或输出方式15。若端口A和端口B都工作在方式1,则C口中6位作其联络信号,剩下的2位还可工作在方式0的输入输出方式。方式1有两种用法:(1) 中断方式。将两个INTE置为1,A组和B组可以使用各自的INTR信号申请中断。(2) 查询方式。微处理器通过读端口C,可以查询IBF、OBF#信号的当前状态,决定是否立即进行数据传输。3、方式2双向输入输出方式方式2只适用于端口A,是双向的输入输出传输方式。在方式2,外设可以在A口的8位数据线上分时向8255A发送数据或从8255A接收数据,但不能同时进行。该方式需占用端口C的5位作为联络信号。端口A工作于方式2时,端口B可选方式0或方式114。3.6本章小结 本章介绍了组成电梯的各个模块与所选择的单片机,还介绍了各个模块的功能以及工作方式。只有选择正确适当,整个系统才有可能按照我们的设计去运行。第四章系统的软件设计4.1软件设计从程序功能上来分,本设计的高层软件程序大概可以分为以下几类:一、运行与决策函数;二、中断处理函数;三、置位各状态变量函数;四、清除各状态变量函数。其中,第一类函数起作用于按键按下的时刻,当有按键按下时,以中断的方式发送给单片机,此时,单片机即对程序中所用到的各个状态变量进行置位并且通过82C55点亮相关发光二极管,如置位按键所对应的去向变量等,方便决策函数使用。第二类函数的功能恰好与第一类相反,这类函数起作用于电梯到达目标楼层时,这时函数负责把相关发光二极管熄灭,并且及时清除相关状态位,以免影响判别函数作出正确判断。第三类函数是程序的核心。它直接负责管理电梯下一次所要到达的楼层,并且要基于短时间、高效率、人性化等原则。每当电梯经过一楼层时,此函数即会被调用,即为下一个电梯要停留的目标楼层值。而从程序的层次上来分,又可分为位于最底层的芯片内部寄存器操作的基层程序和位于上层的应用程序。4.1.1电梯判决函数(1)电梯所处状态的分类与判定这是整个程序成功运行的核心保证。在电梯经过一个楼层时,就会自动调用该函数,它的作用是基于短时间、高效率、人性化的基础上,合理智能的对电梯的运行进行调度,结合实际情况,最终得出电梯下一个目标停留楼层。 程序中将实际情况分为四种情况来判断:电梯上行且是去送人(即电梯此时位于底层,而高层有人呼叫要上楼)、电梯上行且是去接人(即电梯此时位于底层,而高层有人呼叫要下楼)、电梯下行且是去送人(即电梯此时位于高层,而低层有人呼叫要下楼)、电梯下行且是去接人(即电梯此时位于高层,而低层有人呼叫要上楼)。而这四种情况,也就包含了实际电梯中的绝大部分情况。情况不同,分析的方法也当然不一样。而首先,我们要了解电梯是如何得知此时它是上面四种的哪一种情况的呢?这可以分为两个步骤:第一判断电梯是上行还是下行;第二,判断是去接人还是去送人。当然,第一个是最好判断的,因为电梯在运行时,有两个与楼层有关的变量,一个为当前所在楼层值,一个为目标楼层值,当电梯运行时,会让这两个值进行比较,若前者大于后者,就为下行,反之,当前者小于后者,即为上行。(2)电梯各情况下所对应的处理方法以电梯上行的两种状态为例。在实际应用中,最简单的情况莫过于电梯当前为闲置状态,然后有一人按下按键呼叫,然后电梯便响应呼叫。但是,实际情况往往比这复杂的多,在第一个人按下按键电梯运行的过程中,还很有可能会有其他不同楼层的人按下不同的按键(上行或者下行)的情况发生。那么就必须得为电梯规定好一个特定的优先级规则,让其依据这个规则来运行,以免乱作一团。那么这个规则就必须要高效且人性化,在此,我们规定,当电梯上行时,均不理会那些按下行按键的顾客。并且,若在上行过程中,也有人在某层按的是上行按键,但是电梯此时已经走过了该层,那么电梯也绝对不会再选择先下行接他。当然,当将高层上行的顾客送完后(此时一般来说电梯已经处于高层了),电梯便会检测下行按键,若更高层有人呼叫下行,则电梯会选择先去响应他们,然后再下行的过程中依次响应按了下行处于等待中的顾客,最后这些顾客都送完后,再去相应那些电梯上行过程中,处于比电梯低的楼层却按了上行键的顾客。简单地说,若电梯处于上行状态,则在该过程中响应不同顾客的优先级(或者电梯响应的先后顺序)为:高层呼叫上行顾客高层呼叫下行顾客底层呼叫下行顾客底层呼叫上行顾客。4.1.2电梯运行的主程序流程图电梯的运行的基本过程是:由外部的呼叫信号给出呼叫,控制系统判断电梯目前所处的位置并与呼叫楼层进行对照,同方向还是反方向,若反方向,则改变方向到呼叫层.若同方向直接运行到呼叫层。为了便于了解控制近况,本系统中设计了运行状态指示电路。如图4-1所示图4-1电梯运行的主程序图驱动输出接口电路主要是电机主拖动及开关门电机控制.主引电机使用三相380V交流供电,其电机功率约为22KW左右.因此所使用的交流接触器触点电流较大,尤其在刚启动时电流更大,触头引起的火花必然会对单片机的工作产生影响.为了防止这个影响的产生,在输出电路中考虑了两级隔离措施.首先用光电耦合器输出将逻辑TTL电平转换为直流5V电平的驱动电路,从而接通交流电动机工作。 图4-2正常运行程序段框图4.2 keilc的编程和汇编语言的程序4.2.1 keilc编程的流程第一步 建立专案 ,就是新建文件来保存模块的组件和参数的选择,以便以后的仿真,如图4-3所示图4-3建立工程操作图第二步 选择芯片,选择与设计电路图中相同的AT89C51单片机,为了仿真时的参数相同,如图4-4所示第三步 编写程序,将编写好的程序另从为 .ASM格式的文件,将程序文件添加到新建的工程文件中,并更改设置调试时生成hex文件,如图4-5所示。图4-4选择芯片操作图第四步 proteus和keilc的联调,将KEILC中生成的HEX文件在PROTEUS中的单片机中打开就能实现单片机程序的同步运行。第五步实现电梯的部分功能的仿真。仿真时打开的程序就是电梯在实际运行中的部分功能。图4-5生成hex文件操作图4.2.2 部分软件功能的程序(1)点亮led灯 ORG 00H ;按键灯START: JNB P1.0,NEXT1 CLR P2.0SJMP NEX1NEXT1: SETB P2.0NEX1: JNB P1.1,NEXT2 CLR P2.1 SJMP NEX2NEXT2: SETB P2.1NEX2: JNB P1.2,NEXT3 CLR P2.2 SJMP NEX3NEXT3: SETB P2.2NEX3: JNB P1.3,NEXT4 CLR P2.3 SJMP NEX4NEXT4: SETB P2.3NEX4: JNB P1.4,NXETT5 CLR P2.4 SJMP NEX5NEXT5: SETB P2.4NEX5: JNB P1.5 ,NEXT6 CLR P2.5SJMP NEX6NEXT6: SETB P2.5NEX6: JNB P1.6 ,NEXT7 CLR P2.6 SJMP NEX7 NEXT7: SETB P2.6NEX7: JNB P1.7, NEXT8 CLR P2.7 SJMP NEX8NEXT8 : SETB P2.7NEX8: SJMP START END(2) 报警系统 T02SB EQU 31HFLAG BIT 00H ORG 00H LJMP START ORG 0BH LJMP INT_T0START: MOV T02SA,#00H MOV T02SB,#00H CLR FLAG MOV TMOD,#01H MOV TH0,#(65536-500) / 256 MOV TL0,#(65536-500) MOD 256 SETB TR0 SETB ET0 SETB EA SJMP $INT_T0: MOV TH0,#(65536-500) / 256 MOV TL0,#(65536-500) MOD 256 INC T02SA MOV A,T02SA CJNE A,#100,NEXT INC T02SB MOV A,T02SB CJNE A,#04H,NEXT MOV T02SA,#00H MOV T02SB,#00H CPL FLAGNEXT: JB FLAG,DONE CPL P1.0DONE: RETI END4.3本章小结 本章介绍了课题设计中软件是使用,包括在KEILC程序中的程序的编写和使用流程,还介绍了电梯使用过程中用到的部分功能的程序。 第五章 功能仿真与结果分析5.1单片机控制电梯的仿真仿真就是利用模型复现实际系统中发生的本质过程,并通过对系统模型的实验来研究存在的或设计中的系统,又称模拟。这里所指的模型包括物理的和数学的,静态的和动态的,连续的和离散的各种模型。所指的系统也很广泛,包括电气、机械、化工、水力、热力等系统,也包括社会、经济、生态、管理等系统。当所研究的系统造价昂贵、实验的危险性大或需要很长的时间才能了解系统参数变化所引起的后果时,仿真是一种特别有效的研究手段。仿真的重要工具是计算机。仿真与数值计算、求解方法的区别在于它首先是一种实验技术。仿真的过程包括建立仿真模型和进行仿真实验两个主要步骤。本文介绍了单片机控制的电梯控制中外部相应的LED灯的对应点亮的仿真。通过对软件的使用到达按下按钮可是相对应的灯亮的目的,本文用到的仿真软件是PROTEUS.编程软件是KEILC。修改好各组件属性以后就要将程序(HEX文件)载入单片机了。首先双击单片机图标,系统同样会弹出“Edit Component”对话框。在这个对话框中我们点击“Program files”框右侧的 ,来打开选择程序代码窗口,选中相应的HEX文件,Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的本文中由于我们主要使用Proteus软件在单片机方面的仿真功能,所以我们重点研究ISIS模块的用法,在下面的内容中,如不特别说明,我们所说的Proteus软件特指其ISIS模块。使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室 。装载好程序,我们就可以进行仿真了。 5.2 结果与分析 程序运行时可以实现在电脑上对单片机的仿真,可以实现按钮与LED灯的互相对应,按下一个按钮,则与其相对应的灯也相应的点亮。电路图如图5-1 图5-1仿真电路图按下与R16相连的按钮,则D1灯亮,如图5-2所示。图5-2 D1灯亮仿真图按下与R15相连的按钮,则D2灯亮,如图5-3所示图5-3 D2灯亮仿真图按下与R14相连的按钮,则D3灯亮,如图5-4所示图5-4 D3灯亮仿真图按钮按下时,与其相对应的D4、D5、D6、D7、D8等LED灯可以相应的点亮,与以上的仿真图相似,只是对应关系的不同。5.3本章小结本章介绍了仿真的应用与发展,还有课题实际中的仿真过程,通过仿真验证了设计的可行性,程序的正确性。但是由于个人的能力有限,只能实现部分功能的程序仿真。第六章 总结本文对电梯控制系统做了详细的报告,其中包括硬件部分与软件部分两大模块,而且对其中各个重要的子模块加以了重点详细地说明。本毕设的主导思想是:当有顾客按下按键呼叫电梯时,运用单片机的中断,将该信息传递给单片机,从而单片机置位相关的状态参量,为电梯判决函数的判断提供依据,然后单片机再实时地控制点亮或者熄灭相关发光二极管。通过这次单片机的实习,我的理论知识和实践能力都有了提高,写程序的时候遇到了一些问题,或者是说写的程序运行不了,我就会查找大量的资料来解决这些问题,用一些更合适的指令来实现课题要求的功能.从写程序,到调试电路,我付出了很大的努力.现在我对本专业更加的热爱了,我在实践中能体会到很大的乐趣,虽然有的时候可能遇到了一些困难,但是我最终解决了,在老师和同学的帮助下解决了,我也会感觉到成功给我带来的喜悦,我知道我在专业知识上的掌握还是远远不够的,我还要更加努力的去学习,充实自己的理论知识,提高自己了实践能力。参考文献1曲国锋.单片机在电梯自动控制中的应用J.工业控制计算机报,2003年,16(2):5968.2LIJIANGUO.Present situation and future of welding machinery in dietaryJ.China Welding,1994,3(2):2628.3宋德杰.用单片机实现电梯控制系统J.电子制作,2004年,12(10):3650.5李华,MCS-5系列单片机实用接口技术M.北京航天航空出版社,2003.6.6郑田良.基于单片机的电梯控制系统的研究J.科技资讯,2007年,16(21):109110.7 朱承高,电工及电子技术手册M.北京高等教育出版社,19908WALDUCKRP.PlasmaarcaugmentlaserweldingJ.Welding&MetalFabreation,1994,62(4):172176.9黄巧亮.Proteus在单片机实验教学中的应用J.科技信息,2007年,2(30):4851.10巩玉滨.基于单片机的电梯控制仿真系统J.计算机系统应用,2011年,5(11):116119.11 李广弟.单片机基础M.北京航空航天出版社, 2001.712OLSSONR.High2speed welding gives a competi
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:基于单片机的电梯自动控制系统设计与实现
链接地址:https://www.renrendoc.com/p-27687746.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

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