📄 调试程序1.s
字号:
mov R2,R10
or R2,R22
out 0x18,R2
.dbline 173
;
; PORTB=DATA_LOW; //D9
ldd R0,y+0
out 0x18,R0
.dbline 174
; PORTB=DATA_LOW;
out 0x18,R0
.dbline 175
; PORTB=DATA_LOW|CLOK_LOW;
mov R2,R0
ldd R0,y+1
or R2,R0
out 0x18,R2
.dbline 176
; PORTB=DATA_LOW|CLOK_LOW;
ldd R2,y+0
or R2,R0
out 0x18,R2
.dbline 177
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 178
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 180
;
; PORTB=DATA_LOW; //D8
ldd R0,y+0
out 0x18,R0
.dbline 181
; PORTB=DATA_LOW;
out 0x18,R0
.dbline 182
; PORTB=DATA_LOW|CLOK_LOW;
mov R2,R0
ldd R0,y+1
or R2,R0
out 0x18,R2
.dbline 183
; PORTB=DATA_LOW|CLOK_LOW;
ldd R2,y+0
or R2,R0
out 0x18,R2
.dbline 184
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 185
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 187
;
; PORTB=DATA_LOW; //D7 D7、D6、D5、D4
ldd R0,y+0
out 0x18,R0
.dbline 188
; PORTB=DATA_LOW;
out 0x18,R0
.dbline 189
; PORTB=DATA_LOW|CLOK_LOW;
mov R2,R0
ldd R0,y+1
or R2,R0
out 0x18,R2
.dbline 190
; PORTB=DATA_LOW|CLOK_LOW;
ldd R2,y+0
or R2,R0
out 0x18,R2
.dbline 191
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 192
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 194
;
; PORTB=DATA_LOW; //D6
ldd R0,y+0
out 0x18,R0
.dbline 195
; PORTB=DATA_LOW;
out 0x18,R0
.dbline 196
; PORTB=DATA_LOW|CLOK_LOW;
mov R2,R0
ldd R0,y+1
or R2,R0
out 0x18,R2
.dbline 197
; PORTB=DATA_LOW|CLOK_LOW;
ldd R2,y+0
or R2,R0
out 0x18,R2
.dbline 198
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 199
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 201
;
; PORTB=DATA_HIG; //D5
out 0x18,R10
.dbline 202
; PORTB=DATA_HIG;
out 0x18,R10
.dbline 203
; PORTB=DATA_HIG|CLOK_LOW;
mov R2,R10
or R2,R0
out 0x18,R2
.dbline 204
; PORTB=DATA_HIG|CLOK_LOW;
mov R2,R10
or R2,R0
out 0x18,R2
.dbline 205
; PORTB=DATA_HIG|CLOK_HIG;
mov R2,R10
or R2,R22
out 0x18,R2
.dbline 206
; PORTB=DATA_HIG|CLOK_HIG;
mov R2,R10
or R2,R22
out 0x18,R2
.dbline 208
;
; PORTB=DATA_LOW; //D4
ldd R0,y+0
out 0x18,R0
.dbline 209
; PORTB=DATA_LOW;
out 0x18,R0
.dbline 210
; PORTB=DATA_LOW|CLOK_LOW;
mov R2,R0
ldd R0,y+1
or R2,R0
out 0x18,R2
.dbline 211
; PORTB=DATA_LOW|CLOK_LOW;
ldd R2,y+0
or R2,R0
out 0x18,R2
.dbline 212
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 213
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 215
;
; PORTB=DATA_LOW; //D3
ldd R0,y+0
out 0x18,R0
.dbline 216
; PORTB=DATA_LOW;
out 0x18,R0
.dbline 217
; PORTB=DATA_LOW|CLOK_LOW;
mov R2,R0
ldd R0,y+1
or R2,R0
out 0x18,R2
.dbline 218
; PORTB=DATA_LOW|CLOK_LOW;
ldd R2,y+0
or R2,R0
out 0x18,R2
.dbline 219
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 220
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 222
;
; PORTB=DATA_HIG; //D2 00:死区时间为4/fosc,01:死区时间为6/fosc ,10:死区时间为8/fosc,11:死区时间为12/fosc
out 0x18,R10
.dbline 223
; PORTB=DATA_HIG;
out 0x18,R10
.dbline 224
; PORTB=DATA_HIG|CLOK_LOW;
mov R2,R10
or R2,R0
out 0x18,R2
.dbline 225
; PORTB=DATA_HIG|CLOK_LOW;
mov R2,R10
or R2,R0
out 0x18,R2
.dbline 226
; PORTB=DATA_HIG|CLOK_HIG;
mov R2,R10
or R2,R22
out 0x18,R2
.dbline 227
; PORTB=DATA_HIG|CLOK_HIG;
mov R2,R10
or R2,R22
out 0x18,R2
.dbline 229
;
; PORTB=DATA_LOW; //D1
ldd R0,y+0
out 0x18,R0
.dbline 230
; PORTB=DATA_LOW;
out 0x18,R0
.dbline 231
; PORTB=DATA_LOW|CLOK_LOW;
mov R2,R0
ldd R0,y+1
or R2,R0
out 0x18,R2
.dbline 232
; PORTB=DATA_LOW|CLOK_LOW;
ldd R2,y+0
or R2,R0
out 0x18,R2
.dbline 233
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 234
; PORTB=DATA_LOW|CLOK_HIG;
ldd R2,y+0
or R2,R22
out 0x18,R2
.dbline 236
;
; PORTB=DATA_HIG; //D0 数据模式
out 0x18,R10
.dbline 237
; PORTB=DATA_HIG;
out 0x18,R10
.dbline 238
; PORTB=DATA_HIG|CLOK_LOW;
mov R2,R10
or R2,R0
out 0x18,R2
.dbline 239
; PORTB=DATA_HIG|CLOK_LOW;
mov R2,R10
or R2,R0
out 0x18,R2
.dbline 240
; PORTB=DATA_HIG|CLOK_HIG;
mov R2,R10
or R2,R22
out 0x18,R2
.dbline 241
; PORTB=DATA_HIG|CLOK_HIG;
mov R2,R10
or R2,R22
out 0x18,R2
.dbline 243
;
; PORTE=STRB_HIG;
out 0x3,R20
.dbline 244
; PORTE=STRB_HIG;
out 0x3,R20
.dbline 246
;
; return 0x01;
ldi R16,1
xjmp L3
L4:
.dbline 248
; }
; else{
.dbline 249
; return 0x00;
clr R16
.dbline -2
L3:
.dbline 0 ; func end
adiw R28,2
xjmp pop_xgsetF0FC
.dbsym r STRB_HIG 20 c
.dbsym r STRB_LOW 14 c
.dbsym r DATA_HIG 10 c
.dbsym r CLOK_HIG 22 c
.dbsym l CLOK_LOW 1 c
.dbsym l DATA_LOW 0 c
.dbsym r Port 16 c
.dbend
.dbfunc e OutputMotor _OutputMotor fc
; CLOK_LOW -> y+1
; STRB_LOW -> y+0
; STRB_HIG -> R20
; DATA_HIG -> R12
; CLOK_HIG -> R22
; DATA_LOW -> R10
; Bridge2DAC -> y+16
; Bridge1DAC -> y+14
; Port -> y+12
.even
_OutputMotor::
xcall push_arg4
xcall push_xgsetF0FC
sbiw R28,2
.dbline -1
.dbline 254
; }
; }
; //步进电机转动函数
; unsigned char OutputMotor(unsigned char Port,unsigned char Bridge1DAC,unsigned char Bridge2DAC)
; {
.dbline 258
; unsigned char STRB_LOW,CLOK_LOW,DATA_LOW;
; unsigned char STRB_HIG,CLOK_HIG,DATA_HIG;
;
; if((Port>=0x01)&&(Port<=0x04)) //四个电机端口设置
ldd R24,y+12
cpi R24,1
brsh X30
xjmp L14
X30:
X8:
ldi R24,4
ldd R0,y+12
cp R24,R0
brsh X31
xjmp L14
X31:
X9:
.dbline 259
; {
.dbline 260
; switch(Port)
mov R14,R0
clr R15
movw R24,R14
cpi R24,1
ldi R30,0
cpc R25,R30
breq L19
X10:
cpi R24,2
ldi R30,0
cpc R25,R30
breq L20
X11:
cpi R24,3
ldi R30,0
cpc R25,R30
breq L21
X12:
cpi R24,4
ldi R30,0
cpc R25,R30
breq L22
X13:
xjmp L16
L19:
.dbline 263
; {
; case 0x01:
; STRB_LOW = 0x00;
clr R0
std y+0,R0
.dbline 264
; STRB_HIG = 0x10;
ldi R20,16
.dbline 265
; CLOK_LOW = 0x00;
std y+1,R0
.dbline 266
; CLOK_HIG = 0x01;
ldi R22,1
.dbline 267
; DATA_LOW = 0x00;
clr R10
.dbline 268
; DATA_HIG = 0x10;
ldi R24,16
mov R12,R24
.dbline 269
; break;
xjmp L17
L20:
.dbline 271
; case 0x02:
; STRB_LOW = 0x00;
clr R0
std y+0,R0
.dbline 272
; STRB_HIG = 0x20;
ldi R20,32
.dbline 273
; CLOK_LOW = 0x00;
std y+1,R0
.dbline 274
; CLOK_HIG = 0x02;
ldi R22,2
.dbline 275
; DATA_LOW = 0x00;
clr R10
.dbline 276
; DATA_HIG = 0x20;
ldi R24,32
mov R12,R24
.dbline 277
; break;
xjmp L17
L21:
.dbline 279
; case 0x03:
; STRB_LOW = 0x00;
clr R0
std y+0,R0
.dbline 280
; STRB_HIG = 0x40;
ldi R20,64
.dbline 281
; CLOK_LOW = 0x00;
std y+1,R0
.dbline 282
; CLOK_HIG = 0x04;
ldi R22,4
.dbline 283
; DATA_LOW = 0x00;
clr R10
.dbline 284
; DATA_HIG = 0x40;
ldi R24,64
mov R12,R24
.dbline 285
; break;
xjmp L17
L22:
.dbline 287
; case 0x04:
; STRB_LOW = 0x00;
clr R0
std y+0,R0
.dbline 288
; STRB_HIG = 0x80;
ldi R20,128
.dbline 289
; CLOK_LOW = 0x00;
std y+1,R0
.dbline 290
; CLOK_HIG = 0x08;
ldi R22,8
.dbline 291
; DATA_LOW = 0x00;
clr R10
.dbline 292
; DATA_HIG = 0x80;
ldi R24,128
mov R12,R24
.dbline 293
; break;
L16:
L17:
.dbline 296
; }
;
; PORTB=CLOK_LOW;
ldd R0,y+1
out 0x18,R0
.dbline 297
; PORTE=STRB_LOW;
ldd R0,y+0
out 0x3,R0
.dbline 299
;
; if((Port==1)||(Port==4)) //升降臂,进样泵电机电流0。5A
ldd R24,y+12
cpi R24,1
breq L25
X14:
cpi R24,4
brne L23
X15:
L25:
.dbline 300
; {
.dbline 301
; PORTB=DATA_HIG; //D18 电流范围选择方式 0:VDAC/8Rs 1:VDAC/4Rs
out 0x18,R12
.dbline 302
; PORTB=DATA_HIG|CLOK_HIG;
mov R2,R12
or R2,R22
out 0x18,R2
.dbline 303
; }
xjmp L24
L23:
.dbline 305
; else //进样盘,旋转臂电机电流0。25A
; {
.dbline 306
; PORTB=DATA_LOW; //D18
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -