📄 md166bv1.lst
字号:
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 + -