⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 md166bv1.lst

📁 步进马达控制程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
                     194             ;       MOV     OUTPORT3,A
0025                 195     ADAN3:
                     196             ;       SETB    STEP_M_FLAG
                     197             ;       MOV     C,STARTL
                     198             ;       JNC     K1
A51 MACRO ASSEMBLER  MD166BV1                                                             05/27/2004 16:38:38 PAGE     4

0025                 199     K2:     ;       MOV     C,STARTL
                     200             ;       JC      K2
                     201             ;       INC     STEP_MODEL
                     202             ;       MOV     A,STEP_MODEL
                     203             ;       CJNE    A,#6,K1
                     204             ;       MOV     STEP_MODEL,#1
                     205             ;       K1:
                     206             ;       MOV     C,STARTR
                     207             ;       JNC     K3
0025                 208     K4:     ;       MOV     C,STARTR
                     209             ;       JC      K4
                     210             ;       CPL     STEP_DIRECT
                     211             ;       K3:
                     212                     ;;;//
0025 A20F            213                     MOV     C,AUTO
0027 5003            214                     JNC     MAIN_LOP1
0029 120000   F      215                     CALL    auto_mode
002C A20E            216     MAIN_LOP1:      MOV     C,MANUAL
002E 50F5            217                     JNC     MAIN_LOOP
0030 120000   F      218                     CALL    manual_mode
0033 80F0            219                     JMP     MAIN_LOOP
                     220     ;-------------------------------------------------------
0035 A200            221     auto_mode:      MOV     C,STARTL
0037 7201            222                     ORL     C,STARTR
0039 5041            223                     JNC     AUTO_EXIT
003B                 224     AUTO_ADAN:
003B D247            225                     SETB    OUTLAMP
003D 750005   F      226                     MOV     switch_dly,#5   ;5*10*10mS=0.5S
0040                 227     AUTO_LOOP:      WAIT    10
0047 A200            236                     MOV     C,STARTL
0049 8201            237                     ANL     C,STARTR
004B 400C            238                     JC      AUTO_LOP2
004D D500F0   F      239                     DJNZ    switch_dly,AUTO_LOOP
0050 A200            240     AUTO_LOP1:      MOV     C,STARTL
0052 7201            241                     ORL     C,STARTR
0054 40FA            242                     JC      AUTO_LOP1
0056 C247            243                     CLR     OUTLAMP
0058 22              244                     RET
0059 A200            245     AUTO_LOP2:      MOV     C,STARTL
005B 7201            246                     ORL     C,STARTR
005D 40FA            247                     JC      AUTO_LOP2
005F 750000   F      248                     MOV     STEP_MODEL,#00
0062 C200     F      249                     CLR     STEP_A_FLAG
0064 C200     F      250                     CLR     T0_HL_FLAG
0066 C200     F      251                     CLR     STEP_L_FLAG
0068 C280            252                     CLR     XCW
006A C293            253                     CLR     YCW
006C C281            254                     CLR     XCCW
006E C292            255                     CLR     YCCW
0070 D291            256                     SETB    XFREE
0072 D290            257                     SETB    YFREE
0074 120000   F      258     AUTO_LOP3:      CALL    auto_motion
0077 E500     F      259                     MOV     A,auto_end
0079 B480F8          260                     CJNE    A,#80h,AUTO_LOP3
007C                 261     AUTO_EXIT:
007C C247            262                     CLR     OUTLAMP
007E C280            263                     CLR     XCW
0080 C293            264                     CLR     YCW
0082 C281            265                     CLR     XCCW
0084 C292            266                     CLR     YCCW
0086 C291            267                     CLR     XFREE
0088 C290            268                     CLR     YFREE
008A 750000   F      269                     MOV     auto_end,#00h
008D 22              270                     RET
                     271     ;-------------------------------------------------
008E 900000   F      272     auto_motion:    MOV     DPTR,#MOTION_VECTOR
A51 MACRO ASSEMBLER  MD166BV1                                                             05/27/2004 16:38:38 PAGE     5

0091 E500     F      273                     MOV     A,task_p
0093 25E0            274                     ADD     A,ACC
0095 2500     F      275                     ADD     A,TASK_P
0097 73              276                     JMP     @A+DPTR
0098 020000   F      277     MOTION_VECTOR:  LJMP    STEP_DETECT     ;0.1    THE STEP MOTOR RETURN WORK POSITION
009B 020000   F      278                     LJMP    clamping        ;0      holding the object
009E 020000   F      279                     LJMP    opmotor         ;1      operate tri_motor
00A1 020000   F      280                     LJMP    cwaccel         ;2      step motor plus direct accelerate
00A4 020000   F      281                     LJMP    cwhigh          ;3      step motor plus direct high speed
00A7 020000   F      282                     LJMP    cwdecel         ;4      step motor plus direct decelerate
00AA 020000   F      283                     LJMP    cwlow           ;5      step motor plus direct low speed
00AD 020000   F      284                     LJMP    opsuck          ;6      open the sucking        
00B0 020000   F      285                     LJMP    CWLOW_OFF       ;6.1    WORKING TTIME OVER
00B3 020000   F      286                     LJMP    cwwait          ;7      step motor waiting
00B6 020000   F      287                     LJMP    ccwlow          ;8      step motor minus direct low speed
00B9 020000   F      288                     LJMP    clsuck          ;9      close sucking
00BC 020000   F      289                     LJMP    clmotor         ;10     close tri_motor
00BF 020000   F      290                     LJMP    ccwaccel        ;11     step motor minus direct accelerate
00C2 020000   F      291                     LJMP    ccwhigh         ;12     step motor minus direct high speed
00C5 020000   F      292                     LJMP    ccwdecel        ;13     step motor minus direct decelerate
00C8 020000   F      293                     LJMP    ccwstop         ;14     step motor stop
00CB 020000   F      294                     LJMP    clclamp         ;15     close clamping
00CE 020000   F      295                     LJMP    CYC_END         ;16
                     296     ;-------------------------------------------------------
00D1                 297     STEP_DETECT:    ;0.1    THE STEP MOTOR RETURN WORK POSITION
00D1 A204            298                     MOV     C,BD_END
00D3 4020            299                     JC      STEP_D_EXIT
00D5 750015   F      300                     MOV     T0_TH,#HIGH(65536-60000);30mS   LOW SPEED
00D8 7500A0   F      301                     MOV     T0_TL,#LOW(65536-60000) ;RAD=1N/30S
00DB D200     F      302                     SETB    STEP_DIRECT
00DD 750002   F      303                     MOV     STEP_MODEL,#02
00E0 D200     F      304                     SETB    STEP_M_FLAG
00E2 A204            305     S_DETECT_WAIT:  MOV     C,BD_END
00E4 50FC            306                     JNC     S_DETECT_WAIT   
00E6 C200     F      307                     CLR     STEP_M_FLAG
00E8 750000   F      308                     MOV     STEP_MODEL,#00
00EB C200     F      309                     CLR     STEP_DIRECT
00ED D280            310                     SETB    XCW
00EF D293            311                     SETB    YCW
00F1 D281            312                     SETB    XCCW
00F3 D292            313                     SETB    YCCW
00F5 0500     F      314     STEP_D_EXIT:    INC     task_p
00F7 22              315                     RET
                     316     ;-------------------------------------------------------
00F8                 317     clamping:       ;0      holding the object      
00F8 A202            318                     MOV     C,CLAMP_BD
00FA 5008            319                     JNC     CLAMPING_EXIT
00FC C246            320                     CLR     SC_03           ;CLOSE TRI_MOTOR
00FE C200     F      321                     CLR     STEP_M_FLAG     ;CLOSE STEP_MOTOR
0100 D245            322                     SETB    CLAMP           ;OPEN CLAMPING
0102 0500     F      323                     INC     task_p
0104 22              324     CLAMPING_EXIT:  RET
                     325     ;-------------------------------------------------------                
0105                 326     opmotor:        ;1      operate tri_motor
0105 A203            327                     MOV     C,CLAMP_FD
0107 5006            328                     JNC     opmotor_EXIT
0109 C200     F      329                     CLR     STEP_A_FLAG
010B D246            330                     SETB    SC_03           ;OPEN TRI_MOTOR
010D 0500     F      331                     INC     task_p
010F 22              332     opmotor_EXIT:   RET
                     333     ;-------------------------------------------------------                
0110                 334     cwaccel:        ;2      step motor plus direct accelerate
0110 C200     F      335                     CLR     STEP_DIRECT
0112 750001   F      336                     MOV     STEP_MODEL,#01
0115 D200     F      337                     SETB    STEP_M_FLAG
0117 0500     F      338                     INC     task_p
A51 MACRO ASSEMBLER  MD166BV1                                                             05/27/2004 16:38:38 PAGE     6

0119 22              339     cwaccel_EXIT:   RET
                     340     ;-------------------------------------------------------                
011A                 341     cwhigh:         ;3      step motor plus direct high speed
011A A208            342                     MOV     C,MOTOR_BD
011C 5005            343                     JNC     cwhigh_EXIT
011E 750002   F      344                     MOV     STEP_MODEL,#02
0121 0500     F      345                     INC     task_p
0123 22              346     cwhigh_EXIT:    RET
                     347     ;-------------------------------------------------------                
0124                 348     cwdecel:                ;4      step motor plus direct decelerate       
0124 A209            349                     MOV     C,MOTOR_MD
0126 5005            350                     JNC     cwdecel_EXIT
0128 750003   F      351                     MOV     STEP_MODEL,#03
012B 0500     F      352                     INC     task_p
012D 22              353     cwdecel_EXIT:   RET
                     354     ;-------------------------------------------------------                
012E                 355     cwlow:          ;5      step motor plus direct low speed
012E A20A            356                     MOV     C,MOTOR_FD
0130 5010            357                     JNC     cwlow_EXIT
0132 750000   F      358                     MOV     WORK_COUNTER0,#00
0135 750000   F      359                     MOV     WORK_COUNTER1,#00
0138 750000   F      360                     MOV     STEP_L_COUNTER,#00
013B C200     F      361                     CLR     STEP_L_FLAG
013D 750004   F      362                     MOV     STEP_MODEL,#04
0140 0500     F      363                     INC     task_p
0142 22              364     cwlow_EXIT:     RET
                     365     ;-------------------------------------------------------                
0143                 366     opsuck:         ;6      open the sucking        
0143 D244            367                     SETB    SUCK
0145 0500     F      368                     INC     task_p
0147 22              369     opsuck_EXIT:    RET
                     370     ;---------------
0148                 371     CWLOW_OFF:      ;6.1    WORKING TTIME OVER
0148 E500     F      372                     MOV     A,WORK_COUNTER1
014A 9522            373                     SUBB    A,INPORT2       ;WORK_COUNTER1
014C 700F            374                     JNZ     CWLOW_OFF_EXIT
014E E500     F      375                     MOV     A,WORK_COUNTER0
0150 9523            376                     SUBB    A,INPORT3       ;WORK_COUNTER0
                     377             ;       JNZ     CWLOW_OFF_EXIT
                     378             ;       MOV     WORK_COUNTER0,#00
                     379             ;       MOV     WORK_COUNTER1,#00
0152 750000   F      380                     MOV     WAIT_COUNTER0,#00
0155 750000   F      381                     MOV     WAIT_COUNTER1,#00
0158 750005   F      382                     MOV     STEP_MODEL,#05
015B 0500     F      383                     INC     task_p
015D 22              384     CWLOW_OFF_EXIT: RET
                     385     ;-------------------------------------------------------                
015E                 386     cwwait:         ;7      step motor waiting      
015E E500     F      387                     MOV     A,WAIT_COUNTER0
0160 94C8            388                     SUBB    A,#200
0162 7012            389                     JNZ     CWWAIT_EXIT
0164 750000   F      390                     MOV     WORK_COUNTER0,#00
0167 750000   F      391                     MOV     WORK_COUNTER1,#00
016A 750000   F      392                     MOV     STEP_L_COUNTER,#00
016D D200     F      393                     SETB    STEP_DIRECT     ;STEP MOTOR CHANGE MINUS DIRECT 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -