2003年度  第2期


标题:单片机在电梯自动控制中的应用
作者:张娅莉,曲国峰
作者单位:中国矿业大学资源学院,徐州尼亚电气有限公司
关键字:系统优化,电梯选层,单片机
摘要:

本文介绍了电梯自动控制技术。控制系统采用了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          ;程序无条件转移