📄 10-16.lst
字号:
页 1
10-16-08
22:17:57
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
;P0.0--P0.5为机械臂电机
;P2.0--P2.5为循迹电机
;P3.0--P3.5为6个传感器输入
;
ORG 0000H
0000 020030 LJMP START
ORG 0030H
0030 75A035 START: MOV P2,#35H
0033 752102 READY: MOV 21H,#2
0036 752003 MOV 20H,#3 ;过启动区与白区
0039 751903 MOV 19H,#3 ;终点判断,#3对应16H为#2
003C 751801 MOV 18H,#1 ;补偿判断
003F 751701 MOV 17H,#1 ;补偿常数
0042 751602 MOV 16H,#2 ;取得物快次数,#2为回头一次,取2次
0045 751505 MOV 15H,#5 ;放置常数 R5,5
0048 751405 MOV 14H,#5 ;放置判断 R4,5
004B 751304 MOV 13H,#4 ;取物判断 R3,4
004E 751204 MOV 12H,#4 ;取物常数 R2,4
0051 751104 MOV 11H,#4 ;回头常数 R1,4
0054 751004 MOV 10H,#4 ;回头判断 R0,4
0057 C221 CLR 21H ;判断是否前行 0前行 1倒行
0059 C222 CLR 22H ;判断是否取物 0取 1放
005B C223 CLR 23H ;回头补偿, 0不补偿 1补偿
005D D224 SETB 24H ;白区误差判断 1白区
005F 758000 BEGIN: MOV P0,#0
0062 75A035 MOV P2,#35H ;前进
0065 75B0FF MOV P3,#0FFH
0068 E516 SEARCH: MOV A,16H
006A 6033 JZ JUDGE ;跳转是否到终点(为0跳转)
006C 202106 CHOOSE: JB 21H,RIGHT
006F 30B721 LEFT: JNB P3.7,SHAKE ;3.7左
0072 02007B LJMP BEGIN1
0075 30B71B RIGHT: JNB P3.7,SHAKE ;3.7HUITOU
0078 02007B LJMP BEGIN1
007B 12020E BEGIN1: LCALL D2
007E 30B054 JNB P3.0,CHECK1
0081 30B160 JNB P3.1,CHECK2
0084 30B26C JNB P3.2,CHECK3
0087 30B342 JNB P3.3,TR
008A 30B43F JNB P3.4,TR
008D 30B53C JNB P3.5,TR
0090 020202 LJMP LOST ;全白,
;--------------------------
;J1: LJMP CHECK1
;J2: LJMP CHECK2
I:\10-16.ASM
页 2
10-16-08
22:17:57
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
;J3: LJMP CHECK3
;--------------------------
0093 D521E5 SHAKE: DJNZ 21H,BEGIN1
0096 752102 MOV 21H,#2
0099 20211B JB 21H,RCOUNT
009C 0200B4 LJMP LCOUNT
009F 20B7D9 JUDGE: JB P3.7,BEGIN1
00A2 D521D6 DJNZ 21H,BEGIN1
00A5 752102 MOV 21H,#2
00A8 120217 JUDGE1: LCALL D3
00AB 120217 LCALL D3 ; P3.7离前面的传感器很远
00AE D519CA DJNZ 19H,BEGIN1
00B1 0201AD LJMP JIEXIAN
00B4 020108 LCOUNT: LJMP LCOUNT1
00B7 0200FC RCOUNT: LJMP RCOUNT1
00BA 75A035 FORW: MOV P2,#35H
00BD 120205 LCALL D1
00C0 020068 LJMP SEARCH
00C3 75A025 TL: MOV P2,#25H
00C6 120205 LCALL D1
00C9 020068 LJMP SEARCH
00CC 75A015 TR: MOV P2,#15H
00CF 120205 LCALL D1
00D2 020068 LJMP SEARCH
CHECK1:
00D5 20B3EB JB P3.3,TL
00D8 20B4E8 JB P3.4,TL
00DB 75A035 MOV P2,#35H ;全黑,暂时循迹,应为count1
00DE 120205 LCALL D1 ;该前延时1s
00E1 020068 LJMP SEARCH
CHECK2:
00E4 20B3DC JB P3.3,TL
00E7 20B4D9 JB P3.4,TL
00EA 75A035 MOV P2,#35H ;全黑,暂时循迹,应为count1
00ED 120205 LCALL D1 ;该前延时1s
00F0 020068 LJMP SEARCH
CHECK3:
00F3 20B3CD JB P3.3,TL
00F6 30B4D3 JNB P3.4,TR
I:\10-16.ASM
页 3
10-16-08
22:17:57
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
00F9 0200BA LJMP FORW
00FC D51053 RCOUNT1: DJNZ 10H,NEXT
00FF 020102 LJMP RCOUNT2
0102 851110 RCOUNT2:MOV 10H,11H
0105 0201CD LJMP REVERSE
0108 202450 LCOUNT1: JB 24H,WHITE
010B 202334 JB 23H,F2 ;进入回头补偿
010E 302203 JNB 22H,LCATCH
0111 02012A LJMP LPLACE
0114 D5133B LCATCH: DJNZ 13H,NEXT
0117 02011A LJMP LCATCH1
011A 75A005 LCATCH1:MOV P2,#5
011D 1512 DEC 12H
011F 851213 MOV 13H,12H
0122 120169 LCALL LOAD ;机械臂取物子程序
0125 D222 SETB 22H ;重置为放物
0127 02005F LJMP BEGIN
012A D51425 LPLACE: DJNZ 14H,NEXT
012D 020130 LJMP LPLACE1
0130 75A005 LPLACE1:MOV P2,#5
0133 851514 MOV 14H,15H
0136 120182 LCALL FINAL ;机械臂放物子程序
0139 C222 CLR 22H ;重置为取物
013B 1516 DEC 16H ;取物次数减1
013D D223 SETB 23H ;开启补偿
013F 02005F LJMP BEGIN
0142 D5180D F2: DJNZ 18H,NEXT
0145 020148 LJMP F22
0148 C223 F22: CLR 23H
014A 0517 INC 17H
014C 851718 MOV 18H,17H
014F 0201CD LJMP REVERSE
0152 120217 NEXT: LCALL D3
0155 120217 LCALL D3 ;延时250ms后重新查询,防抖
0158 02007B LJMP BEGIN1
015B D520F4 WHITE: DJNZ 20H,NEXT
015E 120217 LCALL D3
0161 120217 LCALL D3
0164 C224 CLR 24H
0166 020068 LJMP SEARCH
0169 120224 LOAD: LCALL D4
016C 758003 MOV P0,#3H ;臂正(松弹簧,抓物块儿)
016F 120224 LCALL D4
I:\10-16.ASM
页 4
10-16-08
22:17:57
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
0172 120224 LCALL D4
0175 120217 LCALL D3
0178 120217 LCALL D3 ;4.25s
017B 758000 MOV P0,#0 ;停
017E 120224 LCALL D4 ;稳一下
0181 22 RET
0182 120224 FINAL: LCALL D4
0185 758005 MOV P0,#5H ;臂反
0188 120224 LCALL D4
018B 120224 LCALL D4
018E 120217 LCALL D3
0191 120217 LCALL D3
0194 120217 LCALL D3
0197 120217 LCALL D3
019A 120217 LCALL D3
019D 120217 LCALL D3
01A0 120217 LCALL D3
01A3 120217 LCALL D3 ;5s
01A6 758000 MOV P0,#0
01A9 120224 LCALL D4
01AC 22 RET
01AD 75A005 JIEXIAN:MOV P2,#5
01B0 120217 LCALL D3
01B3 120217 LCALL D3
01B6 758028 MOV P0,#28H ;接线
01B9 120224 LCALL D4
01BC 120224 LCALL D4
01BF 120217 LCALL D3
01C2 120217 LCALL D3
01C5 120217 LCALL D3
01C8 120217 LCALL D3
01CB 80FE SJMP $ ;程序结束 原地等待
;STOP1: MOV P2,#5 ;stop the car
; LCALL D4
; CPL P0.0
; CPL P0.1
; SETB P0.4 ;set the jxb motor
; LCALL D3
; LCALL D3 ;Is 250ms enough?
; CLR P0.4
; CPL P0.2 ;接线的电机
; CPL P0.3
; SETB P0.5
; LCALL D3
; LCALL D3
I:\10-16.ASM
页 5
10-16-08
22:17:57
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
; CLR P0.5
; LCALL D4
; MOV R7,#6
; LJMP REVERSE
01CD 75A035 REVERSE:MOV P2,#35H
01D0 120224 LCALL D4 ;延时1.125s,继续向前过黑线
01D3 75A005 MOV P2,#5
01D6 120217 LCALL D3
01D9 75A039 MOV P2,#39H
01DC 120217 LCALL D3
01DF 120217 LCALL D3
01E2 120217 LCALL D3
01E5 120217 LCALL D3
01E8 120217 LCALL D3
01EB 120217 LCALL D3
01EE 120217 LCALL D3
01F1 120217 LCALL D3
01F4 120217 LCALL D3
01F7 120217 LCALL D3
01FA 75A005 MOV P2,#5
01FD B221 CPL 21H
01FF 020068 LJMP SEARCH
;TTL: LCALL TL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -