?? diy0206_4.s
字號:
.byte 'F,'F
.byte 0,0
.dbsym e sound_right _sound_right A[22:22]kc
_sound_back::
.byte 42,44
.byte 'M,'M
.byte 'M,42
.byte 44,'I
.byte 'I,'I
.byte 42,44
.byte 45,'O
.byte 45,'L
.byte 29,24
.byte 42,'I
.byte 'I,'I
.byte 0,0
.dbsym e sound_back _sound_back A[24:24]kc
_sound_stop::
.byte 35,36
.byte 37,'D
.byte 'E,36
.byte 35,34
.byte 'B,64
.byte 64,35
.byte 34,33
.byte 'A,40
.byte 'H,35
.byte 37,'E
.byte 64,64
.byte 0,0
.dbsym e sound_stop _sound_stop A[24:24]kc
_sound_left::
.byte 'h,38
.byte 37,35
.byte 34,19
.byte 18,'A
.byte 'A,'A
.byte 35,37
.byte 40,'H
.byte 40,41
.byte 42,41
.byte 38,'E
.byte 'E,'E
.byte 0,0
.dbsym e sound_left _sound_left A[24:24]kc
.area text(rom, con, rel)
.dbfile E:\icc\iccavr\diy02-6\8515\diy0206_4\diy0206_4.c
.dbfunc e watchdog_init _watchdog_init fV
.even
_watchdog_init::
.dbline -1
.dbline 200
.dbline 201
wdr
.dbline 202
ldi R24,14
out 0x21,R24
.dbline -2
.dbline 203
L70:
.dbline 0 ; func end
ret
.dbend
.dbfunc e timer0_init _timer0_init fV
.even
_timer0_init::
.dbline -1
.dbline 209
.dbline 210
clr R2
out 0x33,R2
.dbline 211
ldi R24,61
out 0x32,R24
.dbline 212
ldi R24,5
out 0x33,R24
.dbline -2
.dbline 213
L71:
.dbline 0 ; func end
ret
.dbend
.area vector(rom, abs)
.org 14
rjmp _timer0_ovf_isr
.area text(rom, con, rel)
.dbfile E:\icc\iccavr\diy02-6\8515\diy0206_4\diy0206_4.c
.dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
.even
_timer0_ovf_isr::
rcall push_lset
rcall push_gset1
.dbline -1
.dbline 217
.dbline 218
ldi R24,61
out 0x32,R24
.dbline 219
lds R24,_t0_times
subi R24,255 ; addi 1
sts _t0_times,R24
.dbline 220
in R24,0x16
andi R24,240
sts _remote_in,R24
.dbline 221
mov R20,R24
clr R21
cpi R20,32
ldi R30,0
cpc R21,R30
breq L77
ldi R24,32
ldi R25,0
cp R24,R20
cpc R25,R21
brlt L82
L81:
cpi R20,0
cpc R20,R21
breq L76
X10:
cpi R20,0
ldi R30,0
cpc R21,R30
brlt L73
L83:
cpi R20,16
ldi R30,0
cpc R21,R30
breq L79
rjmp L73
L82:
cpi R20,64
ldi R30,0
cpc R21,R30
breq L78
cpi R20,64
ldi R30,0
cpc R21,R30
brlt L73
L84:
cpi R20,128
ldi R30,0
cpc R21,R30
breq L80
rjmp L73
X11:
.dbline 222
L76:
.dbline 224
clr R2
clr R3
sts _rst_time+1,R3
sts _rst_time,R2
.dbline 225
rjmp L74
L77:
.dbline 227
clr R2
clr R3
sts _rst_time+1,R3
sts _rst_time,R2
.dbline 228
rjmp L74
L78:
.dbline 230
clr R2
clr R3
sts _rst_time+1,R3
sts _rst_time,R2
.dbline 231
rjmp L74
L79:
.dbline 233
lds R24,_rst_time
lds R25,_rst_time+1
adiw R24,1
sts _rst_time+1,R25
sts _rst_time,R24
.dbline 234
rjmp L74
L80:
.dbline 236
clr R2
clr R3
sts _rst_time+1,R3
sts _rst_time,R2
.dbline 237
L73:
L74:
.dbline 239
ldi R24,400
ldi R25,1
lds R2,_rst_time
lds R3,_rst_time+1
cp R24,R2
cpc R25,R3
brsh L85
.dbline 240
.dbline 241
ldi R24,255
out 0x1b,R24
.dbline 242
rcall _watchdog_init
L87:
.dbline 243
L88:
.dbline 243
rjmp L87
X12:
.dbline 244
L85:
.dbline 245
lds R24,_gzsl
cpi R24,136
brne L90
.dbline 246
.dbline 247
lds R24,_t0_times
cpi R24,10
brne L92
.dbline 248
.dbline 249
lds R24,_timers
subi R24,255 ; addi 1
sts _timers,R24
.dbline 250
clr R2
sts _t0_times,R2
.dbline 251
ldi R24,<_led_data
ldi R25,>_led_data
lds R2,_timers
clr R3
add R2,R24
adc R3,R25
mov R30,R2
mov R31,R3
lpm
sts _pa,R0
.dbline 252
mov R24,R0
cpi R24,10
brne L94
.dbline 252
.dbline 252
clr R2
sts _timers,R2
.dbline 252
L94:
.dbline 253
lds R2,_pa
out 0x1b,R2
.dbline 254
L92:
.dbline 255
L90:
.dbline 256
lds R24,_gzsl
cpi R24,51
breq X16
rjmp L96
X16:
.dbline 257
.dbline 258
rcall _sw_touch
.dbline 259
lds R24,_t0_times
cpi R24,8
breq X17
rjmp L98
X17:
.dbline 260
.dbline 261
clr R2
sts _t0_times,R2
.dbline 262
in R24,0x16
andi R24,240
sts _remote_in,R24
.dbline 263
mov R2,R24
sts _sound_1,R2
.dbline 264
lds R3,_sound_2
cp R3,R24
breq L100
.dbline 265
.dbline 265
clr R2
clr R3
sts _sound_add+1,R3
sts _sound_add,R2
.dbline 265
lds R2,_sound_1
sts _sound_2,R2
.dbline 265
L100:
.dbline 266
lds R20,_remote_in
clr R21
cpi R20,32
ldi R30,0
cpc R21,R30
breq L106
ldi R24,32
ldi R25,0
cp R24,R20
cpc R25,R21
brlt L111
L110:
cpi R20,0
cpc R20,R21
breq L105
X13:
cpi R20,0
ldi R30,0
cpc R21,R30
brge X18
rjmp L102
X18:
L112:
cpi R20,16
ldi R30,0
cpc R21,R30
brne X19
rjmp L108
X19:
rjmp L102
L111:
cpi R20,64
ldi R30,0
cpc R21,R30
breq L107
cpi R20,64
ldi R30,0
cpc R21,R30
brge X20
rjmp L102
X20:
L113:
cpi R20,128
ldi R30,0
cpc R21,R30
brne X21
rjmp L109
X21:
rjmp L102
X14:
.dbline 267
L105:
.dbline 269
rcall _forward
.dbline 270
clr R2
clr R3
sts _sound_add+1,R3
sts _sound_add,R2
.dbline 271
sts _temp1,R2
.dbline 272
rjmp L103
L106:
.dbline 274
rcall _turn_right
.dbline 275
ldi R24,<_sound_right
ldi R25,>_sound_right
lds R2,_sound_add
lds R3,_sound_add+1
add R2,R24
adc R3,R25
mov R30,R2
mov R31,R3
lpm
sts _temp1,R0
.dbline 276
rjmp L103
L107:
.dbline 278
rcall _backward
.dbline 279
ldi R24,<_sound_back
ldi R25,>_sound_back
lds R2,_sound_add
lds R3,_sound_add+1
add R2,R24
adc R3,R25
mov R30,R2
mov R31,R3
lpm
sts _temp1,R0
.dbline 280
rjmp L103
L108:
.dbline 282
rcall _stop
.dbline 283
ldi R24,<_sound_stop
ldi R25,>_sound_stop
lds R2,_sound_add
lds R3,_sound_add+1
add R2,R24
adc R3,R25
mov R30,R2
mov R31,R3
lpm
sts _temp1,R0
.dbline 284
rjmp L103
L109:
.dbline 286
rcall _turn_left
.dbline 287
ldi R24,<_sound_left
ldi R25,>_sound_left
lds R2,_sound_add
lds R3,_sound_add+1
add R2,R24
adc R3,R25
mov R30,R2
mov R31,R3
lpm
sts _temp1,R0
.dbline 288
; break;
L102:
L103:
.dbline 290
; }
; }
L98:
.dbline 291
; }
L96:
.dbline 292
; if(gzsl == 0x11)
lds R24,_gzsl
cpi R24,17
brne L114
.dbline 293
; {
.dbline 294
; if(t0_times == delay_time1) //delay_time1*25ms
lds R2,_delay_time1
lds R3,_delay_time1+1
lds R4,_t0_times
clr R5
cp R4,R2
cpc R5,R3
brne L116
.dbline 295
; {
.dbline 296
; t0_times = 0;
clr R2
sts _t0_times,R2
.dbline 297
; gzsl = 0x22;
ldi R24,34
sts _gzsl,R24
.dbline 298
; forward();
rcall _forward
.dbline 299
; }
L116:
.dbline 300
; }
L114:
.dbline 301
; if(gzsl == 0x22)
lds R24,_gzsl
cpi R24,34
brne L118
.dbline 302
; {
.dbline 303
; if(t0_times == delay_time2) //delay_time2*25ms
lds R2,_delay_time2
lds R3,_delay_time2+1
lds R4,_t0_times
clr R5
cp R4,R2
cpc R5,R3
brne L120
.dbline 304
; {
.dbline 305
; t0_times = 0;
clr R2
sts _t0_times,R2
.dbline 306
; gzsl = 0x11;
ldi R24,17
sts _gzsl,R24
.dbline 307
; turn_right();
rcall _turn_right
.dbline 308
; }
L120:
.dbline 309
; }
L118:
.dbline 310
; if(gzsl == 0x44)
lds R24,_gzsl
cpi R24,68
breq X22
rjmp L122
X22:
.dbline 311
; {
.dbline 312
; sw_touch();
rcall _sw_touch
.dbline 313
; pc = PINC & 0xE0;
in R24,0x13
andi R24,224
sts _pc,R24
.dbline 314
; if(pc == 0xE0)
cpi R24,224
brne L124
.dbline 315
; {
.dbline 316
; stop();
rcall _stop
.dbline 317
; t0_times = 0;timers = 0x22;
clr R2
sts _t0_times,R2
.dbline 317
ldi R24,34
sts _timers,R24
.dbline 318
; temp1=EEPROMread((int)&sound[sound_add]);
ldi R24,<_sound
ldi R25,>_sound
lds R16,_sound_add
lds R17,_sound_add+1
add R16,R24
adc R17,R25
rcall _EEPROMread
sts _temp1,R16
.dbline 319
; }
L124:
.dbline 320
; if(pc == 0x40 || pc == 0x80 || pc == 0x20 || pc == 0xc0 || pc == 0x60)
lds R24,_pc
cpi R24,64
breq L131
cpi R24,128
breq L131
cpi R24,32
breq L131
cpi R24,192
breq L131
cpi R24,96
brne L126
L131:
.dbline 321
; {
.dbline 322
; timers=0x55;
ldi R24,85
sts _timers,R24
.dbline 323
; t0_times = 0;
clr R2
sts _t0_times,R2
.dbline 324
; }
L126:
.dbline 325
; if(timers == 0x55)
lds R24,_timers
cpi R24,85
brne L132
.dbline 326
; {
.dbline 327
; if(t0_times < 16) //16*25ms=400ms
lds R24,_t0_times
cpi R24,16
brsh L134
.dbline 328
; {
.dbline 329
; backward();
rcall _backward
.dbline 330
; temp1=sound_back[sound_add];
ldi R24,<_sound_back
ldi R25,>_sound_back
lds R2,_sound_add
lds R3,_sound_add+1
add R2,R24
adc R3,R25
mov R30,R2
mov R31,R3
lpm
sts _temp1,R0
.dbline 331
; }
L134:
.dbline 332
; if(t0_times > 16 && t0_times < 24) //8*25ms=200ms
ldi R24,16
lds R2,_t0_times
cp R24,R2
brsh L136
mov R24,R2
cpi R24,24
brsh L136
.dbline 333
; {
.dbline 334
; turn_left();
rcall _turn_left
.dbline 335
; temp1=sound_back[sound_add];
ldi R24,<_sound_back
ldi R25,>_sound_back
lds R2,_sound_add
lds R3,_sound_add+1
add R2,R24
adc R3,R25
mov R30,R2
mov R31,R3
lpm
sts _temp1,R0
.dbline 336
; }
L136:
.dbline 337
; if(t0_times == 24)
lds R24,_t0_times
cpi R24,24
brne L138
.dbline 338
; {
.dbline 339
; timers = 0;
clr R2
sts _timers,R2
.dbline 340
; t0_times = 0;
sts _t0_times,R2
.dbline 341
; }
L138:
.dbline 342
; }
L132:
.dbline 343
; if(timers != 0x55 && timers != 0x22)
lds R24,_timers
cpi R24,85
breq L140
cpi R24,34
breq L140
.dbline 344
; {
.dbline 345
; forward();
rcall _forward
.dbline 346
; temp1 = 0;
clr R2
sts _temp1,R2
.dbline 347
; }
L140:
.dbline 348
; }
L122:
.dbline 349
; if(gzsl == 0x55)
lds R24,_gzsl
cpi R24,85
breq X23
rjmp L142
X23:
.dbline 350
; {
.dbline 351
; if(t0_times == 4) //4*25ms=100ms 掃描一次
lds R24,_t0_times
cpi R24,4
breq X24
rjmp L144
X24:
.dbline 352
; {
.dbline 353
; t0_times = 0;
clr R2
sts _t0_times,R2
.dbline 354
; remote_in = PINB & 0xF0;
in R24,0x16
andi R24,240
sts _remote_in,R24
.dbline 355
; switch (remote_in)
mov R20,R24
clr R21
cpi R20,32
ldi R30,0
cpc R21,R30
breq L149
ldi R24,32
ldi R25,0
cp R24,R20
cpc R25,R21
brlt L154
L153:
cpi R20,16
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -