proteus仿真 数码管不亮 四层电梯的控制 求帮忙看下程序

2019-07-18 10:29发布

         ORG     0000H         AJMP    START         ORG     000BH         AJMP    tiME         ORG     001BH         AJMP    TIME1;*********START启动程序***********START: MOV    TMOD,#11H          MOV    IE,#8AH          MOV    TH0,#3CH       ;定时100ms          MOV    TL0,#0B0H          MOV    TH1,#0ECH      ;定时10ms          MOV    TL1,#78H          SETB   TR0          MOV    SP,#6FH;*********STOP停止程序***********STOP:    CLR     P0.6          CLR     P0.7          MOV    R3,#0          MOV    DPTR,#06H       ;数码管显示“1          JB      P1.7,$         ;等待开始工作指令          CLR     P2.4          CLR     P2.5            ;电动机制动          SETB    P0.6          SETB    P2.7            ;蜂鸣器报警          SETB   TR1              ;启动T1                                   ;10ms一次读取按键;*********一楼上升按键选择程序***********UP1:     MOV    A,20H         ;目前在1           ORL    A,21H          ;取得>1楼请求情况           ORL    A,22H           ANL    A,#0EH           JZ      UP1             ;无请求,则等待           CLR    P0.7             ;上升指示灯亮           SETB   P2.5                         SETB   P2.7             ;电动机正转上升;*********二楼上升按键选择程序***********UP2:     MOV   DPTR,#5BH       ;到达2,数码管显示“2           JB      20H.1,UP21    ;2楼电梯间的上升请求,UP21           JB      22H.1,UP21    ;是电梯内目标2楼请求,UP21           SJMP   UP22UP21:    CLR     20H.1       ;清二楼电梯间上升请求标志位           CLR     22H.1       ;清电梯内目标2楼请求标志位           SETB    P0.7        ;上升指示灯灭SETB    P2.4           SETB    P2.6           ;电机正转电梯门开           MOV     R2,#0     ;5s定时开始           CJNE    R2,#50,$   ;等待5s延时           CLR     P2.6             ;门关SETB   P2.5                         SETB   P2.7             ;电动机正转上升UP22:    MOV    A,20H           ORL     A,21H           ORL     A,22H           ANL     A,#0CH        ;取得>2楼请求情况           JNZ      UP23           AJMP     DOWN22        ;>2楼无请求,2楼下降UP23:     CLR     P0.7             ;上升指示灯亮SETB   P2.5           SETB   P2.7             ;电动机正转上升          ;*********三楼上升按键选择程序*********** 74960a46f21fbe09deb68b5b6e600c338644ad76.jpg UP3:      MOV   DPTR,#4FH         ;到达3,数码管显示“3            JB     20H.2,UP31        ;3楼电梯间的上升请求,UP31            JB     22H.2,UP31       ;是电梯内目标3楼请求,UP31           SJMP   UP32 UP31:     CLR    20H.1            ;3楼电梯间上升请求标志位           CLR     22H.1            ;清电梯内目标3楼请求标志位           SETB    P0.7             ;上升指示灯灭SETB    P2.4            SETB    P2.6            ;门开MOV    R2,#0           ;5s定时开始CJNE    R2,#50,$       ;等待5s延时        CLR     P2.6             ;门关 SETB   P2.5           SETB   P2.7             ;电动机正转上升         UP32:     MOV    A,20H             ORL     A,21H           ORL     A,22H           ANL     A,#08H           ;取得>3楼请求情况           JNZ      UP33           AJMP    DOWN32           ;>3楼无请求,3楼下降UP33:     CLR     P0.7                ;上升指示灯亮SETB   P2.5           SETB   P2.7             ;电动机正转上升          UP34:    MOV     DPTR,#66H            ;到达4,数码管显示“4;*********四楼下降按键选择程序***********UP41:    CLR     20H.3                 ;4楼电梯间下降请求标志位          CLR      22H.3                 ;清电梯内目标4楼请求标志位          SETB     P0.7                  ;上升指示灯灭 SETB    P2.4            SETB    P2.6            ;门开MOV    R2,#0           ;5s定时开始CJNE    R2,#50,$       ;等待5s延时        CLR     P2.6             ;门关 SETB   P2.5           SETB   P2.7             ;电动机正转上升UD4:    MOV     A,50H          ORL     A,21H          ORL     A,22H          ANL     A,#07H           ;取得<4楼的请求情况          JNZ      DOWN4          AJMP    UD4DOWN4: CLR     P0.6              ;下降指示灯亮           SETB   P2.5                         CLR    P2.7              ;下降                         ;*********三楼下降按键选择程序***********DOWN3: MOV     DPTR,#4FH            ;到达3,数码管显示“3          JB    21H.2,DOWN31    ;3楼电梯间的下降请求,DOWN31          JB    22H.2,DOWN31     ;是电梯内目标3楼请求,DOWN31          SJMP    DOWN32DOWN31:CLR    21H.2                ;3楼电梯间下降请求标志位          CLR    22H.2                ;清电梯内目标3楼请求标志位          SETB    P0.6                ;下降指示灯灭          SETB    P2.4          SETB    P2.6              ;门开MOV    R2,#0           ;5s定时开始CJNE    R2,#50,$       ;等待5s延时            CLR    P2.6              ;门关           SETB   P2.5                         CLR    P2.7              ;下降DOWN32:MOV  A,20H          ORL     A,21H          ORL   A,22H          ANL     A,#03H         ;取得<3楼的请求情况          JNZ      DOWN33         AJMP    UP32             ;<3无楼请求,3楼上升DOWN33:CLR    P0.6               ;下降指示灯亮          SETB   P2.5                         CLR    P2.7              ;下降;*********二楼下降按键选择程序***********DOWN2: MOV   DPTR,#5BH          ;到达2,数码管显示“2          JB      21H.1,DOWN21    ;2电梯间的下降请求,DOWN21          JB      22H.1,DOWN2        ;是电梯内目标3楼请求,DOWN21         SJMP    DOWN22DOWN21:CLR   21H.1            ;2楼电梯间下降请求标志位          CLR    22H.1             ;清电梯内目标2楼请求标志位          SETB   P0.6              ;下降指示灯灭          SETB    P2.4          SETB    P2.6              ;门开MOV    R2,#0           ;5s定时开始CJNE    R2,#50,$       ;等待5s延时            CLR    P2.6              ;门关           SETB   P2.5                         CLR    P2.7              ;下降DOWN22:MOV  A,20H      ORL     A,21H          ORL     A,22H          ANL    A,#02H         ;取得<2的请求情况      JNZ     DOWN23          AJMP    UP22           ;<2楼请求,2楼上升DOWN23:CLR   P0.6      ;下降指示灯亮          SETB   P2.5                        CLR    P2.7              ;下降DOWN1: MOV    DPTR,#06H      ;到达1,数码管显示“1DOWN11:CLR     21H.0          ;清电梯内目标1请求标志位          SETB     P0.6          ;下降指示灯灭     SETB    P2.4         SETB    P2.6              ;门开MOV    R2,#0           ;5s定时开始CJNE    R2,#50,$       ;等待5s延时            CLR    P2.6              ;门关          SETB   P2.5                        CLR    P2.7              ;下降CJNE     R3,#0,DOWN12 ;Stop键是否按下过          AJMP    UP1DOWN12:CLR   P0.6             ;Stop键按下过,S1停止工作          CLR      P0.7          AJMP     STOP;定时器T0中断服务程序:5s计时TIME:  MOV     TH0,#3CH          MOV     TL0,#0B0H          INC      R2              ;R2计数器          RETI;********* T1中断服务程序:按键状态检查***********TIME1:    MOV     TH1,#0ECH          ;10s检查一次按键            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   P0,A             ;刷新上升、下降请求指示灯            MOV    A,31H            ANL    A,#0FH     ;取得电梯内目标楼层请求            ORL   22H,A       MOV    A,22H            CPL     A            MOV   P2,A     ;刷新电梯内目标楼层指示灯TIME12:  MOV  A,6EH            RETI;********* 2s延时程序***********DLY:       MOV     R5,#20DLY1:   MOV     R6,#100DLY2:   MOV     R7,#250             DJNZ     R7,$             DJNZ     R6,DLY2             DJNZ     R5,DLY1             RET             END;**************** PWM控制电梯门开关程序 ************************            ORG      0000H           LMP      START           ORG      000EH           LMP      ZDCX           ORG      0100H    START:MOV   SP,#30H  ;系统初始化,定时值为0.1           MOV   DPTR,#TAB           MOV   TL0,#9CH                          MOV   TH0,#9CH                          MOV   TMOD,#02H  ;定时器T0工作方式2           MOV   IE,#82H           SETB  TR0           LCALL  QUZHI  ;取第一个R0的值           MOV   R0,#A           CLR   P2.4      LP: JNB   20H,LP  ;输出PWM波形           CLR   20H           DJNZ   R0,LP           CPL   P2.4           LCALL  QUZHI;           CNE  #55H,LP1 ;当所取的数是结束标志55,                          ;程序重新开始           LMP   START      LP1:MOV   R0,A           LMP   LP    QUZHI:MOV   A,#00H   ;取值子程序           MOVC  A,@+DPTR            INC   DPTR            RET      ZDCX:SETB   20H            RETI       TAB:DB  7,6,15,12,24,6,30,6,24,12,15,6,7,55  ;55为结束标志            END;*************PWM控制电梯上升与下降程序*************           ORG      0000H           LMP      START           ORG      000EH           LMP      ZDCX           ORG      0100H    START:MOV   SP,#30H           MOV   DPTR,#TAB           MOV   TL0,#9CH                          MOV   TH0,#9CH                          MOV   TMOD,#02H           MOV   IE,#82H           SETB  TR0           LCALL  QUZHI           MOV   R0,#A            CLR   P2.5       LP: JNB   20H,LP            CLR   20H            DJNZ   R0,LP            CPL   P2.5            LCALL  QUZHI;            CNE  #55H,LP1            LMP   START       LP1:MOV   R0,A            LMP   LP     QUZHI:MOV   A,#00H            MOVC  A,@+DPTR            INC   DPTR            RET      ZDCX:SETB   20H            RETI       TAB:DB  5,10,15,20,5,10,15,5,5,10,15,20,5,10,5,55            END
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。