电梯自动控制系统的设计_第1页
电梯自动控制系统的设计_第2页
电梯自动控制系统的设计_第3页
电梯自动控制系统的设计_第4页
电梯自动控制系统的设计_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计说明书目录引言…………2设计要求……………………2设计方案……………………3硬件设计……………………54.1单片机…………………54.2各楼层电梯间电路……………………94.3电梯间电路…………124.4控制台电路……………134.5单片机电路……………164.6电路PCB图……………17第五章软件设计…………………195.1简易控制方案…………195.2深入控制方案………225.2.1控制逻辑流程图………………225.2.2说明……………255.2.3参考程序………26第六章软硬件系统调试………316.1软件调试………………316.2硬件调试………………32第七章结束语……………………33毕业设计总结…………………34参考文件………………………36电梯控制系统模型摘要:本论文主要介绍是电梯自动控制模型,硬件部分我们使用是单片机及外围电路组成高度为四层楼电梯控制系统。单片机采取AT89C51,晶体振荡器选6MHz,C51、C52为30uF瓷片电容与晶体振荡器形成时钟电路。电容C53、电阻R51、R52和按键RESET组成上电复位和手动复位电路。软件部分采取了两种控制方案,简易控制方案只是简单电梯上升下降,在各楼层短暂停留。而深入控制方案则考虑各楼层信号请求,以完成各楼层升降控制。该系统具备工作稳定,操作简单等优点。关键词:电梯,AT89C51单片机,共阴极数码管,CD4511译码器,发光二极管第一章引言据国外关于资料介绍,公元前28在古代埃及,为了建筑当初金字塔,曾使用过由人力驱动升降机械。公元1765年瓦特创造了蒸汽机之后,1858年美国研制出以蒸汽为动力,并经过皮带转动和蜗轮减速装置驱动电梯。1878年英国阿姆斯特郎创造了水压梯。并伴随水压梯发展,淘汰了蒸汽梯。日后又出现了采取液压泵和控制阀以及直接柱塞式和侧柱塞式结构液压梯,这种掖压梯至今仍为人们所采取。不过,电梯得以兴盛发展原因在于采取了电力作为动力起源.。在20世纪初,美国奥梯斯电梯企业首先使用直流电动机作为动力,生产出以槽轮式驱动直流电梯,从而为今天高速度,高行程电梯发展奠定了基础。20世纪30年代美国纽约市102层摩天大楼建成,美国奥梯斯电梯企业为这座大楼制造和安装了74台速度为6.0M\S电梯。从此以后,电梯这个产品,一直在日新月异发展着.现在电梯产品,不但规格品种多,自动化强,而且安全可靠,乘坐舒适.近几年来,伴随电子工业发展,微处理机和电子计算机已成功应用到电梯电气控制系统中去,采取无触点元件电梯电气控制系统已开始批量生产。第二章设计要求采取AT89C51单片机及外围电路组成高度为四层楼电梯控制系统。电梯内电路由FS1、FS2、FS3和FS4四个发光二极管作为指示灯,电梯模型上电后,电梯起始位置为一楼,等候控制台Start按键按下,数码管显示“1”。当Start按键按下后,电梯开始向上运动,控制台上升指示灯UP亮。2s后抵达二楼,数码管显示“2”并在二楼停留5s,然后继续上升。每层楼停留5s,直到四楼。在四楼停留5s后开始下降,控制台指示灯DOWN亮。每层楼停5s,直到一楼。然后重复上述过程。假如在一个上下循环中按下过Stop键,电梯下降到一楼后停顿工作。直到再次按下Start键后重新恢复工作第三章设计方案电梯控制系统由各层楼电梯间电路、电梯内电路和控制台电路三部分组成。电梯在各楼层定位本应采取行程开关,考虑到模型操作性,采取延时控制。相邻楼层间升降设定为2S。1)各楼层电梯间电路二、三层电路间都有“上升”和“下降”选择按键,一楼只有“上升”按键,四楼只有“下降”按键,每个按键配一只发光二极管,作为指示灯。2)电梯内部电路目标楼层1——4选择按键配又对应指示灯。3)控制台电路(1)两个按键用于手动控制。控制电路“开始运行”和“停顿运行”(2)两个指示灯,分别指示电梯升降情况。(3)一只数码管,用于显示电梯当前所在楼层。4)控制方案(1)简单控制方案(见图1)工作原理:控制台按下START键后,经过AT89C51单片机控制使得电梯运行,该系统中电梯运行时不受各楼层控制和影响往复运动,只有在控制台按下STOP键后,电梯降到一楼停顿,等候控制台再次开启。该系统使用数码管显示当前楼层。图1(2)深入控制方案(见图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.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中止0)P3.3/INT1(外部中止1)P3.4T0(记时器0外部输入)P3.5T1(记时器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位定时器/计数器CPU中止控制内部中止总线扩展控制器并行可编程I/O口可编程串行口外部中止扩展控制P0P1P2P3RXDTXD外时钟源外部事件计数AT89C51单片机基本组成图3下面简明说明各部分组成中央处理器单片机中央处理器是单片机关键,完成运算和控制操作,中央处理器主要包含运算器和控制器两部分。存放器单片机内部存放器分为程序存放器和数据存放器。3、外围接口电路CPU与外部设备信息交换都是经过接口电路来进行。AT89C51单片机外围接口电路主要包含:4个可编程并行I/O口,1个可编程串行口,2个16位可编程定时器以及中止系统等。4、时钟振荡电路时钟振荡电路是CPU所需要各种定时控制信号必备单元。CPU只有在时序信号和控制信号协调下工作,才能执行各种指令。4.2各楼层电梯间电路如图4所表示,R52、R55、R56、R59、R60和R62是上拉电阻,其作用是确保按键未按下时,端口P1.0——P1.5为高电平。当按键按下时,端口P1.0——P1.5经过按键接地,使得P1.0——P1.5变为低电平。电容C51——C56作用是消除抖动和抗干扰。各楼层电梯间升降选择按键均于单片机P1口连接,上升按键P1.0——P1.2连接。下降按键与P1口P1.3——P1.5连接,即由P1口能够读出电梯间升、降按键状态。每个上升、下降按键都有一只发光二极管作为指示灯与之配合,发光二极管与P0口P0.0——P0.5连接。每个发光二极管经过一只阻值为470Ώ限流电阻接电源(Vcc),这么流经发光二极管电流均为7.5mA,有适当亮度,同时单片机端口在不加驱动情况下能够承受。一层二层三层四层图4电梯间电路4.3电梯内电路电梯内电路如图5所表示,四个目标楼层选择按键F1、F2、F3、F4和四个与之配合发光二极管作为指示灯,即FS1、FS2、FS3和FS4。按键与P3口P3.0——P3.3连接,指示灯与P2口P2.0——P2.3相连。上拉电阻R11——R14和电容C11——C14作用同上。图5电梯内电路4.4控制台电路控制台电路如图6所表示。发光二极管Power是电源指示灯,用以显示供电是否正常。DISP是0.5in(英寸)共阴极数码管,用来显示当前楼层。采取CD4511作译码器,经R31——R37(阻值为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功效表十进制或功效输入输出字型LEDCBAabcdefg012345678900000000001111111111000000010010001101000101011001111000100111111111111111110011000011011011111001011001110110110011111111000011111111111011消隐锁定灯测试×1×110××××××××××××01×0000000锁定在上一个LE=0时1111111图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次,50×100ms=5s,即完成5s定时。(5)定时器T1定时10ms。每10s中止一次,在中止服务程序中检验一次Stop键是否按下,假如按下停顿T1计时(TR1=0),并将R3置为非0(程序中间R3写#0FFH)。电梯下降到一楼是检验R3中内容,假如不是0就停顿工作。(6)参考程序ORG0000HAJMPSTARTORG000BHAJMPTIMEORG001BHAJMPTIME1START:MOVTMOD,#11HMOVIE,#8AHMOVTH0,#3CH;定时100msMOVTL0,#0B0HMOVTH1,0ECH;定时10msMOVTL1,#78HSETBTR0SETBTR1MOVSP,#6FHQ1:SETBP0.6;下降指示灯灭SETBP0.7;上升指示灯灭MOVR3,#0MOVP3,#1FH;数码管显示"1"JBP1.7,$;等候开始工作指令SETBP0.6Q2:CLRP0.7;上升指示灯亮ACALLDLY;上升2sSETBP0.7;抵达二层,上升指示灯灭MOVP3,#2FH;数码管显示"2"MOVR2,#0;5s定时开始CJNZR2,#50,$;等候5s延时CLRP0.7;5s到,继续上升ACALLDLY;上升2sSETBP0.7;抵达三层,上升指示灯灭MOVP3,#3FH;数码管显示"3"MOVR2,#0;5s定时开始DJNZR2,#50,$;等候5s延时CLRP0.7;5s到,继续上升ACALLDLY;上升2sSETBP0.7;抵达四层,上升指示灯灭MOVP3,#4FH;数码管显示"4"MOVR2,#0;5s定时开始DJNZR2,#50,$;等候5s延时CLRP0.6;5s到,开始下降,下降指示灯亮ACALLDLY;下降2sSETBP0.6;达成三层,下降指示灯灭MOVP3,#3FH;数码管显示"3"MOVR2,#0;5s定时开始CJNZR2,#50,$;等候5s延时CLRP0.6;5s到,继续下降,下降指示灯亮ACALLDLY;下降2sSETBP0.6;达成二层,下降指示灯灭MOVP3,#2FH;数码管显示"2"MOVR2,#0;5s定时开始CJNZR2,#50,$;等候5s延时CLRP0.6;5s到,开始下降,下降指示灯亮ACALLDLY;下降2sSETBP0.6;达成一层,下降指示灯灭MOVP3,#1FH;数码管显示"1"MOVR2,#0;5s定时开始CJNZR2,#50,$;等候5s延时CJNZR3,#0,Q3AJMPQ2;R3=0转到Q2开始新循环AJMPQ2;R3≠0转Q1停顿工作;定时器T0中止服务程序:5s定时,R2为计数器TIME:MOVTH0,#3CHMOVTL0,#0B0HINCR2RET1;定时器T1中止服务程序;统计Stop键是否曾经按下过,R3作为标志TIME:JBP1.6,TIME11MOVR3,#0FFHCLRTH1TIME11:RET1DLY:MOVR4,#200DLY1:MOVR5,#250DJNZR5,$DJNZR4,DLY1RETEND5.2深入控制方案5.2.1控制逻辑流程图如图9和图10所表示。开始图9主程序流程开始N停留5S停留5s三、四楼有请求?停留5s上升抵达二楼二、三、四楼有请求?P1.7=0本楼层请求目标?上升抵达三楼四楼有请求?开始抵达四楼在一楼初始化一、二、三楼有请求下降抵达三楼本楼层是否请求目标?停留5S一、二楼有请求?下降抵达二楼停留5S一楼有请求?下降抵达一楼停留5SR3=0?Y停留5S停留5s三、四楼有请求?停留5s上升抵达二楼二、三、四楼有请求?P1.7=0本楼层请求目标?上升抵达三楼四楼有请求?开始抵达四楼在一楼初始化一、二、三楼有请求下降抵达三楼本楼层是否请求目标?停留5S一、二楼有请求?下降抵达二楼停留5S一楼有请求?下降抵达一楼停留5SR3=0?YNYNYNYNYN图10定时器T1中止程序流程开始开始读取全部按键读取全部按键标志R3置非0数去除全部电梯间上升请求去除全部电梯间下降请求去除全部电梯内目标楼层请求修改读入按键状态使之只有电梯内目标为一楼标志R3置非0数去除全部电梯间上升请求去除全部电梯间下降请求去除全部电梯内目标楼层请求修改读入按键状态使之只有电梯内目标为一楼并关闭T1,不再读取按键Stop按下?Stop按下?取得电梯间上升请求,并刷新指示灯取得电梯间上升请求,并刷新指示灯取得电梯间下降请求,并刷新指示灯取得电梯间下降请求,并刷新指示灯取得电梯内目标楼层请求,并刷新指示灯取得电梯内目标楼层请求,并刷新指示灯返回返回5.2.2说明存放单元分配20H——电梯间上升请求;20H.0——1楼;20H.1——2楼;20H.2——3楼;20H.3——4楼。21H——电梯下降请求:21H.0——1楼;21H.1——2楼;21H.2——3楼;21H.3——4楼。22H——电梯内目标楼层请求:22H.0——1楼;22H.1——2楼;22H.2——3楼;22H.3——4楼。20H——22H: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参考程序ORG0000HAJMPSTARTORG0000BHAJMPTIME1START:MOVTMOD,#11HMOVIE,#8AHMOVTH0,3CH;定时100msMOVTL0,#0B0HMOVTH1,#0ECH;定时10msMOVTL1,#78HSETBTR0MOVSP,#6FHS1:CLRP0.6CLRP0.7MOVR3,#0MOVP3,#1F;数码管显示“1”JBP1.7,$;等候开始工作指令SETBP0.6SETBTR1;开启T1;10ms一次读取按键UP1:MOVA,20H;现在在一楼ORLA,21H;取得>1楼请求情况ORLA,22HANLA,#0EHJZUP1;无请求,则等候CLRP0.7;上升指示灯亮ACALLDLY;上升2sUP2:MOVP3,#2FH;抵达2楼,数码管显示“2”JB20H.1,UP21;是2楼电梯间上升请求,转UP21JB22H.1,U;是电梯内目标2楼请求,转UP21SJMPUP22UP21:CLR20H.1;清2楼电梯间上升请求标志位CLR22H.1;清电梯内目标2楼请求标志位SETBP0.7;上升指示灯灭MOVR2,#0;5s定时开始CNJER2,#50,$;等候5s延时UP22:MOVA,20HORLA,21HORLA,22HANLA,#0CH;取得>2楼请求情况JNZUP23AJMPDOWN22;>2楼无请求,转2楼下降UP23:CLRP0.7;上升指示灯亮ACALLDLY;上升2sUP3:MOVP3,#3FH;抵达3楼,数码管显示“3”JB20H.2,UP31;是3楼电梯间上升请求,转UP31JB22H.2,UP31;是电梯内目标3楼请求,转UP31SJMPR2,#50,$UP31:CLR20H.1;清3楼电梯间上升请求标志位CLR22H.1;清电梯内目标3楼请求标志位SETBP0.7;上升指示灯灭MOVR2,#0;5s定时开始CJNZR2,#50,$;等候5s延时UP32:MOVA,20HORLA,21HORLA,22HANLA,#O8H;取得>3楼请求情况JNZUP33AJMPDOWN32;>3楼无请求,转3楼下降UP33:CLRP0.7;上升指示灯亮ACALLDLY;上升2sUP4:CLR20H.3;清4楼电梯间下降请求标志位CLR22H.3;清电梯内目标4楼请求标志位SETBP0.7;上升指示灯灭MOVR2,#0;5s定时开始CJNZR2,#50,$;等候5s延时UD4:MOVA,20HORGA,21HORGA,22HANLA,#07H;取得〈4请求情况JNZDOWN4AJMPUD4DOWN4:CLRP0.6;下降指示灯亮ACALLDLY;下降2sDOWN3:MOVP3,#3FH;抵达3楼,数码管显示“3”JB21H.2,DOWN31;是3楼电梯间下降请求,转DOWN31JB22H.2,DOWN31;是电梯内目标3楼请求,转DOWN31SJMPDOWN32DOWN31:CLR21H.2;清3楼电梯间下降请求标志位CLR22H.2;清电梯内目标3楼请求标志位SETBP0.6;下降指示灯灭MOVR2,#0;5s定时开始CJNZR2,#50,$;等候5s延时DOWN32:MOVA,20HORLA,21HORLA,22HANLA,#03H;取得〈3楼请求情况JNZDOWN33AJMPUP32;〈3楼请求,转3楼上升DOWN33:CLRP0.6;下降指示灯亮ACALLDLYDOWN2:MOVP3,#2FH;抵达2楼,数码管显示“2”JB21H.1,DOWN21;是2楼电梯间下降请求,转DOWN21JB22H.1,DOWN22;是电梯内目标3楼请求,转DOWN21SJMPDOWN22DOWN21:CLR21H.1;清2楼电梯间下降请求标志位CLR22H.1;清电梯内目标2楼请求标志位SETBP0.6;下降指示灯灭MOVR2,#0;5s定时开始CJNER2,#50,$;等候5s延时DOWN22:MOVA,20HORLA,21HORLA,22HANLA,#01H;取得〈2楼请求情况JNZDOWN23AJMPUP22;〈2无楼请求,转2楼上升DOWN23:CLRP0.6;下降指示灯亮ACALLDLYDOWN1:CLRP3,#1FH;抵达1楼,数码管显示“1”DOWN11:CLR21H.0;清电梯内目标1楼请求标志位SETBP0.6;下降指示灯灭MOVR2,#0;5s定时开始CJNZR2,#50,$;等候5s延时CJNZR3,#0,DOWN12;Stop键是否按下过AJMPUP1DOWN12:CLRP0.6;若Stop键按下过,转S1停顿工作CLRP0.7AJMPS1;定时器T0中止服务程序;5s计时TIME:MOVTH0,#3CHMOVTL0,#0B0HINCR2;R2计数器RETI;定时器T1中止服务程序;按键状态检验TIME1:MOVTH1,#0ECH;每10ms检验一次按键MOVTL1,#78HMOV6EH,AMOV30H,P1;读入全部按键状态MOV31H,P3JBP1.6,TIME11;若Stop键按下,则正常运行MOVR3,#0FFH;Stop键按下,标志R3置非0数MOV20H,#0;去除全部电梯间上升请求MOV21H,#0;去除全部电梯间下降请求MOV22H,#0;去除全部电梯内目标楼层请求MOV30H,#0FFH;修改读入按键状态,使之为MOV31H,#0FEH;电梯内目标为一楼CLRTR1;开关闭T1,不再读取按键TIME11:MOVA,30HCPLAANLA,#07H;取得电梯间上升请求ORL20H,AMOVA,20H;取得上升指示灯状态CPLAANLA,#07HMOV32H,AMOVA,30HCPLAANLA,#38H;取得电椅间下降请求RRARRAORL21H,AMOVA,21HCPLAANLA,#0EHRLARLAORL32H,AMOVA,P0ANLA,#0C0HORLA,32H;刷新上升、下降请求指示灯MOVA,31HANLA,#0FH;取得电梯内目标楼层请求ORL22H,AMOVA,22HCPLAMOVP2,A;刷新电梯内目标楼层指示灯TIME12:MOVA,6EHRET1;2s延时程序DLY:MOVR5,#20DLYI:MOVR6,#100DLY2:MOVR7,#250DJNZR7,$DJNZR6,DLY2DJNZR5,DLY1RETEND第六章软硬件系统调试6.1软件调试软件调试任务是利用开发工具进行在线仿真调试,发觉和纠正程序错误,同时也能发觉硬件故障。程序调试应一个模块一个模块地进行,首先单独调试各功效子程序,检验程序是否能够实现预期功效,接口电路控制是否正常等;最终逐步将各子程序连接起来总调。联调需要注意是,各程序模块间能否正确传递参数,尤其要注意各子程序现场保护与恢复。调试基本步骤以下:(1)用仿真器修改显示缓冲区内容,屏蔽拆字程序,调试动态扫描显示功效。比如将DISP0~DISP5单元置为“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,观察显示缓冲区DISP0~DISP5单元内容是否随键入键号改变,以及键号能否在LED上显示。然后屏蔽KEYIN子程序,单独调试合字模块COMB,分别将R1设置为时间设置缓冲区和闹钟值存放区首地址,修改显示缓冲区内容,程序运行后查看时间设置缓冲区HOUR、MIN、SEC单元和闹钟值存放区AHOUR、AMIN、ASEC单元内容是否正确。最终联调MODIFY模块。(5)运行主程序联调,检验能否用键盘修改当前时间以及设置闹钟,能否正确计时、启闹、停闹。6.2硬件调试6.2.1状态灯显示测试当电路连接完成后,将写好测试程序刷写到芯片内,分别给端口送高电平和低电平,通电即可检测。6.2.2数码管测试将串口和电路板上接口连接,将写好测试程序刷写到芯片内,开电源即可测试。6.2.

温馨提示

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

评论

0/150

提交评论