1、毕业设计说明书目录第一章 引言 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电梯控制系统模型摘 要:本论文主要介绍的是电梯自动控制模型
2、,硬件部分我们使用的是单片机及外围电路组成高度为四层楼的电梯控制系统。单片机采用AT89C51,晶体振荡器选6MHz,C51、C52为30uF瓷片电容与晶体振荡器形成时钟电路。电容C53、电阻R51、R52和按键RESET构成上电复位和手动复位电路。软件部分采用了两种控制方案,简易控制方案只是简单的电梯上升下降,在各楼层短暂停留。而进一步控制方案则考虑各楼层的信号请求,以完成各楼层的升降控制。该系统具有工作稳定,操作简单等优点。关键词:电梯, AT89C51单片机,共阴极数码管,CD4511译码器,发光二极管第一章 引言据国外有关资料介绍,公元前2800年在古代埃及,为了建筑当时的金字塔,曾使
3、用过由人力驱动的升降机械。公元1765年瓦特发明了蒸汽机之后,1858年美国研制出以蒸汽为动力,并通过皮带转动和蜗轮减速装置驱动的电梯。1878年英国的阿姆斯特郎发明了水压梯。并随着水压梯的发展,淘汰了蒸汽梯。后来又出现了采用液压泵和控制阀以及直接柱塞式和侧柱塞式结构的液压梯,这种掖压梯至今仍为人们所采用。但是,电梯得以兴盛发展的原因在于采用了电力作为动力来源.。在20世纪初,美国奥梯斯电梯公司首先使用直流电动机作为动力,生产出以槽轮式驱动的直流电梯,从而为今天的高速度,高行程电梯的发展奠定了基础。20世纪30年代美国纽约市的102层摩天大楼建成,美国奥梯斯电梯公司为这座大楼制造和安装了74台
4、速度为6.0MS的电梯。 从此以后,电梯这个产品,一直在日新月异的发展着.目前电梯产品,不但规格品种多,自动化强,而且安全可靠,乘坐舒服.近几年来,随着电子工业的发展,微处理机和电子计算机已成功的应用到电梯的电气控制系统中去,采用无触点元件的电梯电气控制系统已开始批量生产。第二章 设计要求采用AT89C51单片机及外围电路组成高度为四层楼的电梯控制系统。电梯内电路由FS1、FS2、FS3和FS4四个发光二极管作为指示灯,电梯模型上电后,电梯的起始位置为一楼,等待控制台Start按键按下,数码管显示“1”。当Start按键按下后,电梯开始向上运动,控制台的上升指示灯UP亮。2s后到达二楼,数码管
5、显示“2”并在二楼停留5s,然后继续上升。每层楼停留5s,直到四楼。在四楼停留5s后开始下降,控制台的指示灯DOWN亮。每层楼停5s,直到一楼。然后重复上述过程。如果在一个上下循环中按下过Stop键,电梯下降到一楼后停止工作。直到再次按下Start键后重新恢复工作第三章 设计方案电梯控制系统由各层楼的电梯间电路、电梯内电路和控制台电路三部分组成。电梯在各楼层的定位本应采用行程开关,考虑到模型的操作性,采用延时控制。相邻楼层间升降设定为2S。1)各楼层的电梯间电路二、三层的电路间均有“上升”和“下降”选择按键,一楼只有“上升”按键,四楼只有“下降”按键,每个按键配一只发光二极管,作为指示灯。2)
6、电梯内部电路目标楼层14选择按键配又相应的指示灯。3)控制台电路(1)两个按键用于手动控制。控制电路的“开始运行”和“停止运行”(2)两个指示灯,分别指示电梯的升降情况。(3)一只数码管,用于显示电梯当前所在的楼层。4)控制方案(1)简单控制方案(见图1)工作原理:控制台按下START键后,通过AT89C51单片机的控制使得电梯运行,该系统中电梯运行时不受各楼层的控制和影响往复运动,只有在控制台按下STOP键后,电梯降到一楼停止,等待控制台再次启动。该系统使用数码管显示当前楼层。 图1 (2)进一步控制方案(见图2)工作原理:工作台启动电梯,单片机检测各楼层信号请求控制电梯运动,电梯动作完成后
7、数码管显示所在楼层,同时单片机再次检测各楼层请求信号,使的电梯再次动作,直到控制台停止电梯,电梯降到一楼后停止,等待控制台再次启动电梯。 图2 第四章 硬件设计4.1 单片机采用AT89C51单片机及外围电路组成高度为四层楼的电梯控制系统。AT89c51是一种低功耗高性能的8位单片机,片内带有一个4k字节的flash可编擦除只读存储器(perom),它采用了cmos工艺和atmel公司的高密度非易失性存储器(nuram)技术,而且其输出引脚和指令系统和mcu_51系列单片机兼容。片内的flash存储器允许在系统内可改编程序或用常规的非易失性的存储器编程器来编程。同时已具有三级程序存储器保密的性
8、能。在众多的51系列单片机中,要算atmei公司的at89c51更实用,因为它不仅和mcu_51系列单片机指令、管脚完全兼容,而且其片内的4k程序存储器是flash工艺的,这种下艺的存储器用户可以用电的方式瞬间擦除、改写。所以说这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机的程序还可以加密,这又很好地保护了所有者的劳动成果。管脚说明 VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为
9、原码输入口,当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
10、位地址外部数据存储器进行存取时,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 /I
11、NT0(外部中断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。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每
12、当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器
13、。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。单片机的基本组成如图3所示振荡器和时钟电路程序储存器(4KB)数据储存器(128字节)两个16位定时器计数器中断控制内部中断总线扩展控制器并行可编程I/O口可编程串行口外部中断扩展控制P0 P1 P2 P3RXD TXD外时钟源外部事件计数AT89C51单片机的基本组成 图3 下面简要说明各部分组成1、 中央处理器单片机的中央处理器是单片机的核心,完成运算和控制操作,中央处理器主要包括运算器和控制器两部分。2、 存储器单片机内部的存储器分
14、为程序存储器和数据存储器。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的作
15、用是消除抖动和抗干扰。各楼层电梯间的升降选择按键均于单片机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和四个与之配合的发光二极管作为指示灯,即FS
16、1、FS2、FS3和FS4。按键与P3口的P3.0P3.3连接,指示灯与P2口的P2.0P2.3相连。上拉电阻R11R14和电容C11C14的作用同上。 图5 电梯内电路4. 此处删减NNNNNNNNNNNNNNNN字 需要整套设计请联系q:99872184。MOV 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到,继续下降,下降指示灯亮AC
17、ALL 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 I
18、NC 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本楼层请求目标?上升到达三楼四楼有请求?开始到达四楼在一楼初始化一、二、三楼有请求下降到达
19、三楼本楼层是否请求目标?停留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楼
20、。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一次检查所有
21、按键状态,并记录在相应存储单元,同时控制相应指示灯。定时器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 ;数码
22、管显示“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楼电梯间上
23、升请求标志位 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 ;是电梯内目
24、标楼请求,转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
25、 ;清电梯内目标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 DOWN
26、32 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楼电梯间的下降请求
27、,转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: C
28、LR 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
29、 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