标题:单片机在电梯自动控制中的应用 作者:张娅莉,曲国峰 作者单位:中国矿业大学资源学院,徐州尼亚电气有限公司 关键字:系统优化,电梯选层,单片机 摘要: 本文介绍了电梯自动控制技术。控制系统采用了MCS-51单片机,在电梯选层优化系统结构方面作了论述。 杂志上略去的程序清单如下: ORG 8000H AJMP MAIN MAIN: SETB EA ;中断总允许 SETB EX0 ;允许外中断 CLR IT0 ; 查询子程序1(用于查询电梯轿箱的位置) ASK1: MOV DPTR, #6010H MOVX A, @DPTR MOV 40H, A ;记录PT1的状态 MOV DPTR, #6011H MOVX A, @DPTR MOV 41H, A ;记录PT12的状态 MOV DPTR, #6012H MOVX A, @DPTR MOV 42H, A ;记录PT2的状态 MOV DPTR, #6013H MOVX A, @DPTR MOV 43H, A ;记录PT23的状态 MOV DPTR, #6014H MOVX A, @DPTR MOV 44H, A ;记录PT3的状态 MOV DPTR, #6015H MOCX A, @DPTR MOV 45H, A ;记录PT34的状态 MOV DPTR, #6016H MOVX A, @DPTR MOV 46H, A ;记录PT4的状态 RET 查询子程序2(用于查询电梯内部和外部的楼层请求) ASK2: MOV DPTR, #6000H MOVX A, @DPTR MOV 30H, A ;记录1c的状态 MOV DPTR, #6001H MOVX A, @DPTR MOV 31H, A ;记录2c的状态 MOV DPTR, #6002H MOVX A, @DPTR MOV 32H, A ;记录3c的状态 MOV DPTR, #6003H MOVX A, @DPTR MOV 33H, A ;记录4c的状态 MOV DPTR, #6004H MOVX A, @DPTR MOV 34H, A ;记录1u的状态 MOV DPTR, #6005H MOVX A, @DPTR MOV 35H, A ;记录2u的状态 MOV DPTR, #6006H MOVX A, @DPTR MOV 36H, A ;记录3u的状态 MOV DPTR, #6007H MOVX A, @DPTR
……. MOV A, 30H ANL A, 34H MOV 61H, A ;合并一楼的状态请求 MOV A, 31H ANL A, 35H ANL A, 37H MOV 62H, A ;合并二楼的状态请求 MOV A, 32H ANL A, 36H ANL A, 38H MOV 63H, A ;合并三楼的状态请求 MOV A, 33H ANL A, 39H MOV 64H, A ;合并四楼的状态请求 RET 延时子程序(延时10秒) DELAY: ORG 6500H MOV R3, #19H DLOOP3: MOV R1, #85H DLOOP1: MOV R2, #FAH DLOOP2: DJNZ R2, DLOOP2 DJNZ R1, DLOOP1 DJNZ R3, DLOOP3 RET 一楼电梯开门条件查询程序 F1: LCALL ASK1 ;调用电梯当前位置记录 MOV A, #01H CLR C SUBB A, 40H ;查询电梯是否在一楼,在则A中为#01H,反之为#00H MOV R1, A ;将查询结果暂时存储在R1 LCALL ASK2 ;调用电梯请求记录 MOV A, #01H CLR C SUBB A, 61H ;查询是否有一楼的请求,有则A中为#01H,反之为#00H ANL A, R1 ; 将R1中的数据与A中的进行与运算,为#01H证实同时满足电梯在一楼并且有一楼的请求,反之为#00H则两个条件不同时满足 DEC A ; 将A中的数据值自减1作为程序跳转条件 JZ OPEN1 ; A中的数据为#00H时,跳转执行OPEN1 JNZ F2 ; A中的数据不为#00H时,进行二楼的处理程序 一楼的开门程序 OPEN1: MOV 52H, #00H ;设置开门信号 MOV P1.2, 52H ;输出开门信号 LCALL DELAY ;进行开门延时 LCALL ASK2 ;调用请求信息 …… 二、三、四楼请求及开门程序略。 程序的简单模拟: MOV R7, #10H ;将R7寄存器寄存立即数 MOV A, R7 ;将R7中的数据转存到寄存器A中 LOOP1: DEC A ;将A中数据自减以模拟作为楼层到达判断依据 JZ LOOP2 ;A中为零执行LOOP2开门程序 JNZ LOOP3 ;A中不为零执行LOOP3减速程序 LOOP2: MOV 51H, #01H MOV R1, 51H ;给出开门信号 LOOP3: MOV 52H, #00H MOV R2, 52H ;给出下行信号 MOV 53H, #00H MOV R3, 53H ;给出减速信号 LJMP ASK ;程序无条件转移 |