求大神帮忙看一下这段程序的正确与否!我是菜鸟 实在看不懂

2019-07-15 10:55发布

主程序  SP-CONTR:              MOV                   DPTR,#addr16             ;T0初始值地址指针              MOV                 R3,1BH                        ;频率阶梯计数器赋值             MOV                  R2,1AH                      ;阶梯总步数计数器赋值             CLR                   C             ORL                    C,73H                         ;判断加速时的转向标志             JC                        ROTE                     ;若转向标志为1,则跳转到反转地             MOV                  R0,#20H                       ;正转模型首地址             AJMP                 PH ROTE:              MOV                 R0,#27H                      ;反转模型首地址PH:               MOV                 TMOD,01H                 ;定时器T0方式1定时             MOV                  TL0,#00H                   ;T0赋计时初值             MOV                  TH0,#00H             SETB                  TR0             SETB                  ET0             SETB                  EALOOP:               MOV                 A,R3             JNZ                  LOOP                         ;等待中断             CLR                   EA                              ;CPU关中断             SJMP                   HEAR                           ;结束中断服务程序清单             ORG                  0000H                           INT-T0:               PUSH                A                                  ;保护现场             MOV                 A,@R0                        ;模型控制字送累加器A             MOV                   P1,A                             ;输出控制模型             INC                     R0                                ;模型控制字存储地址加1             MOV                 A,#00H              ORL                  A,@R0             JZ                      TPL                              ;若是结束标志,则跳转RR:             DEC                  R2                                ;步进计数器减1             MOV                 A,#00H             ORL                  A,R2             JZ                      THL                             ;若阶梯步长计数器为0,则跳转             ORL                  C,71H             JNC                     ROTEL                        ;若是减速,则跳转             MOV                 A,#00H                        ;加速             MOVC              A,@A+DPTR             MOV                 TL0,A                           ;赋定时器T0初值的低8MOV                  A,#01H             MOVC              A,@A+DPTR             MOV                 TH0,A                          ;赋定时器T0初值的高8             AJMP                QQROTEL:               MOV                 A,#80H                        ;减速             MOVC              A,@A+DPTR             MOV                 TL0,A                         ;赋定时器T0初值的低8             MOV                 A,#81H             MOVC              A,@A+DPTR             MOV                 TH0,A                          ;赋定时器T0初值的高8QQ:             POP                   A                                  ;恢复现场             REtiTHL:             DJNZ                R3,AT                          ;频率阶梯减1,若不为0跳转             AJMP                QQAT:       MOV                 R2,1AH                       ;阶梯步长赋值             INC                   DPTR                                         INC                   DPTR                           ;初始值指针更新TRL:     CLR                   C             MOV                 A,R0             SUBB                A,06H             MOV                 R0,A                            ;恢复模型首地址             AJMP                RR
0条回答

一周热门 更多>