📄 music_car.s
字号:
lds R24,_t0_times
subi R24,255 ; addi 1
sts _t0_times,R24
.dbline 162
lds R24,_gzsl
cpi R24,136
brne L65
.dbline 163
.dbline 164
lds R24,_t0_times
cpi R24,10
brne L67
.dbline 165
.dbline 166
lds R24,_timers
subi R24,255 ; addi 1
sts _timers,R24
.dbline 167
clr R2
sts _t0_times,R2
.dbline 168
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 169
mov R24,R0
cpi R24,10
brne L69
.dbline 169
.dbline 169
clr R2
sts _timers,R2
.dbline 169
L69:
.dbline 170
lds R2,_pa
out 0x1b,R2
.dbline 171
L67:
.dbline 172
L65:
.dbline 173
lds R24,_gzsl
cpi R24,85
breq X8
rjmp L71
X8:
.dbline 174
.dbline 175
lds R24,_t0_times
cpi R24,4
breq X9
rjmp L73
X9:
.dbline 176
.dbline 177
clr R2
sts _t0_times,R2
.dbline 178
in R24,0x16
andi R24,15
sts _remote_in,R24
.dbline 179
mov R20,R24
clr R21
cpi R20,1
ldi R30,0
cpc R21,R30
brne X10
rjmp L81
X10:
cpi R20,2
ldi R30,0
cpc R21,R30
breq L79
cpi R20,4
ldi R30,0
cpc R21,R30
breq L78
cpi R20,8
ldi R30,0
cpc R21,R30
breq L80
rjmp L75
X7:
.dbline 180
L78:
.dbline 182
clr R2
clr R3
sts _rst_time+1,R3
sts _rst_time,R2
.dbline 183
sts _sound_add+1,R3
sts _sound_add,R2
.dbline 184
ldi R24,17
sts _sound_1,R24
.dbline 185
rjmp L76
L79:
.dbline 187
clr R2
clr R3
sts _rst_time+1,R3
sts _rst_time,R2
.dbline 188
sts _sound_add+1,R3
sts _sound_add,R2
.dbline 189
ldi R24,34
sts _sound_1,R24
.dbline 190
rjmp L76
L80:
.dbline 192
lds R24,_rst_time
lds R25,_rst_time+1
adiw R24,1
sts _rst_time+1,R25
sts _rst_time,R24
.dbline 193
clr R2
clr R3
sts _sound_add+1,R3
sts _sound_add,R2
.dbline 194
ldi R24,51
sts _sound_1,R24
.dbline 195
rjmp L76
L81:
.dbline 197
clr R2
clr R3
sts _rst_time+1,R3
sts _rst_time,R2
.dbline 198
sts _sound_add+1,R3
sts _sound_add,R2
.dbline 199
ldi R24,68
sts _sound_1,R24
.dbline 200
L75:
L76:
.dbline 202
lds R24,_sound_1
cpi R24,17
brne L82
.dbline 203
.dbline 204
ldi R24,<_music_11
ldi R25,>_music_11
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 205
L82:
.dbline 206
lds R24,_sound_1
cpi R24,34
brne L84
.dbline 207
.dbline 208
ldi R24,<_music_22
ldi R25,>_music_22
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 209
L84:
.dbline 210
lds R24,_sound_1
cpi R24,51
brne L86
.dbline 211
.dbline 212
ldi R24,<_music_33
ldi R25,>_music_33
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 213
L86:
.dbline 214
lds R24,_sound_1
cpi R24,68
brne L88
.dbline 215
.dbline 216
ldi R24,<_music_44
ldi R25,>_music_44
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 217
L88:
.dbline 218
lds R24,_sound_1
cpi R24,136
brne L90
.dbline 219
.dbline 220
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 221
L90:
.dbline 222
L73:
.dbline 223
L71:
.dbline -2
.dbline 224
L64:
rcall pop_gset1
rcall pop_lset
.dbline 0 ; func end
reti
.dbend
.dbfunc e stop_timer0 _stop_timer0 fV
.even
_stop_timer0::
.dbline -1
.dbline 227
.dbline 228
cli
.dbline 229
clr R2
out 0x33,R2
.dbline 230
out 0x35,R2
.dbline 231
out 0x3b,R2
.dbline 232
out 0x39,R2
.dbline 233
sei
.dbline -2
.dbline 234
L92:
.dbline 0 ; func end
ret
.dbend
.area vector(rom, abs)
.org 12
rjmp _timer1_ovf_isr
.area text(rom, con, rel)
.dbfile E:\icc\iccavr\sl3010\music_car\music_car.c
.dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
.even
_timer1_ovf_isr::
st -y,R2
st -y,R3
st -y,R24
in R2,0x3f
st -y,R2
.dbline -1
.dbline 238
.dbline 239
.dbline 240
lds R2,_toneconst
lds R3,_toneconst+1
out 0x2d,R3
out 0x2c,R2
.dbline 241
ldi R24,1
in R2,0x15
eor R2,R24
out 0x15,R2
.dbline 242
.dbline -2
.dbline 243
L93:
ld R2,y+
out 0x3f,R2
ld R24,y+
ld R3,y+
ld R2,y+
.dbline 0 ; func end
reti
.dbend
.dbfunc e music_car _music_car fV
.even
_music_car::
.dbline -1
.dbline 246
.dbline 248
rcall _port_init
.dbline 250
ldi R24,48
sts _work_status,R24
L95:
.dbline 253
ldi R24,15
out 0x1b,R24
.dbline 255
ldi R24,136
sts _gzsl,R24
.dbline 255
clr R2
sts _timers,R2
.dbline 255
sts _t0_times,R2
.dbline 256
cli
.dbline 257
rcall _timer0_init
.dbline 259
clr R2
out 0x35,R2
.dbline 260
out 0x3b,R2
.dbline 261
in R24,0x39
ori R24,2
out 0x39,R24
.dbline 262
sei
.dbline 264
rcall _mic_startup
.dbline 266
ldi R24,85
sts _gzsl,R24
.dbline 266
clr R2
sts _t0_times,R2
.dbline 266
ldi R24,136
sts _sound_1,R24
.dbline 267
out 0x2f,R2
.dbline 268
ldi R24,2
out 0x2e,R24
L96:
.dbline 270
clr R2
sts _temp1,R2
sts _temp,R2
.dbline 271
clr R3
sts _sound_add+1,R3
sts _sound_add,R2
rjmp L98
L97:
.dbline 273
.dbline 274
lds R2,_temp1
sts _temp,R2
.dbline 275
mov R24,R2
andi R24,15
sts _temp,R24
.dbline 277
cpi R24,1
breq L104
cpi R24,2
breq L104
cpi R24,3
breq L104
cpi R24,4
brne L100
L104:
.dbline 277
.dbline 277
ldi R24,254
out 0x1b,R24
.dbline 277
L100:
.dbline 278
lds R24,_temp
cpi R24,5
breq L107
cpi R24,6
brne L105
L107:
.dbline 278
.dbline 278
ldi R24,252
out 0x1b,R24
.dbline 278
L105:
.dbline 279
lds R24,_temp
cpi R24,7
breq L110
cpi R24,8
brne L108
L110:
.dbline 279
.dbline 279
ldi R24,248
out 0x1b,R24
.dbline 279
L108:
.dbline 280
lds R24,_temp
cpi R24,9
brne L111
.dbline 280
.dbline 280
ldi R24,240
out 0x1b,R24
.dbline 280
L111:
.dbline 281
lds R24,_temp
cpi R24,10
brne L113
.dbline 281
.dbline 281
ldi R24,224
out 0x1b,R24
.dbline 281
L113:
.dbline 282
; if(temp==11){PORTA = 0xc0;}
lds R24,_temp
cpi R24,11
brne L115
.dbline 282
.dbline 282
ldi R24,192
out 0x1b,R24
.dbline 282
L115:
.dbline 283
; if(temp==12){PORTA = 0x80;}
lds R24,_temp
cpi R24,12
brne L117
.dbline 283
.dbline 283
ldi R24,128
out 0x1b,R24
.dbline 283
L117:
.dbline 284
lds R24,_temp
cpi R24,13
breq L122
cpi R24,14
breq L122
cpi R24,15
brne L119
L122:
.dbline 284
; if(temp==13||temp==14 || temp==15){PORTA = 0x00;}
.dbline 284
clr R2
out 0x1b,R2
.dbline 284
L119:
.dbline 286
;
; if(temp!=0)
lds R2,_temp
tst R2
breq L123
.dbline 287
; {
.dbline 288
; TIMSK|=(1<<TOIE1);//根据SOUNDTABLE中数据的低四位选择音调频率
in R24,0x39
ori R24,128
out 0x39,R24
.dbline 289
; temp--;
mov R24,R2
subi R24,1
sts _temp,R24
.dbline 290
; toneconst=TONETABLE[temp];
ldi R24,<_TONETABLE
ldi R25,>_TONETABLE
lds R16,_temp
clr R17
lsl R16
rol R17
add R16,R24
adc R17,R25
rcall lpm16
sts _toneconst+1,R17
sts _toneconst,R16
.dbline 291
; TCNT1=toneconst;
out 0x2d,R17
out 0x2c,R16
.dbline 292
; }
L123:
.dbline 293
; temp=temp1;
lds R2,_temp1
sts _temp,R2
.dbline 294
; temp>>=4;
mov R24,R2
swap R24
andi R24,#0x0F
sts _temp,R24
.dbline 295
; temp&=0x0f;
andi R24,15
sts _temp,R24
.dbline 296
; delay_ms(temp*129);//根据SOUNDTABLE中数据的高四位*5后,为音调持续时间
mov R18,R24
clr R19
ldi R16,129
ldi R17,0
rcall mpy16s
rcall _delay_ms
.dbline 297
; TIMSK&=~(1<<TOIE1);
in R24,0x39
andi R24,127
out 0x39,R24
.dbline 298
; sound_add++;
lds R24,_sound_add
lds R25,_sound_add+1
adiw R24,1
sts _sound_add+1,R25
sts _sound_add,R24
.dbline 300
;
; if(rst_time > 40)
ldi R24,40
ldi R25,0
lds R2,_rst_time
lds R3,_rst_time+1
cp R24,R2
cpc R25,R3
brsh L125
.dbline 301
; {//当按住< C > 键的持续时间超过10S,遥控机器人复位,等待声控重起运行
.dbline 302
; rst_time=0;
clr R2
clr R3
sts _rst_time+1,R3
sts _rst_time,R2
.dbline 303
; sound_1 = 0x55;
ldi R24,85
sts _sound_1,R24
.dbline 304
; PORTA = 0x0f;
ldi R24,15
out 0x1b,R24
.dbline 305
; delay_ms(1000);
ldi R16,1000
ldi R17,3
rcall _delay_ms
.dbline 306
; goto music_rst;
rjmp L95
L125:
.dbline 308
L98:
.dbline 272
lds R2,_temp1
tst R2
breq X12
rjmp L97
X12:
.dbline 309
ldi R24,136
sts _sound_1,R24
.dbline 310
rjmp L96
X11:
.dbline -2
L94:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 314
; }
; }
; sound_1 = 0x88;
; goto n01;
; }
;
; void main()
; {
.dbline 315
; music_car();
.dbline -2
.dbline 316
; }
L127:
.dbline 0 ; func end
rjmp _music_car
.dbend
.area bss(ram, con, rel)
.dbfile E:\icc\iccavr\sl3010\music_car\music_car.c
_sound_2::
.blkb 1
.dbsym e sound_2 _sound_2 c
_sound_1::
.blkb 1
.dbsym e sound_1 _sound_1 c
_t0_times::
.blkb 1
.dbsym e t0_times _t0_times c
_gzsl::
.blkb 1
.dbsym e gzsl _gzsl c
_remote_select::
.blkb 1
.dbsym e remote_select _remote_select c
_pd_select::
.blkb 1
.dbsym e pd_select _pd_select c
_cds::
.blkb 1
.dbsym e cds _cds c
_cny_times::
.blkb 1
.dbsym e cny_times _cny_times c
_cny_in::
.blkb 1
.dbsym e cny_in _cny_in c
_timers::
.blkb 1
.dbsym e timers _timers c
_pd::
.blkb 1
.dbsym e pd _pd c
_pc::
.blkb 1
.dbsym e pc _pc c
_pb::
.blkb 1
.dbsym e pb _pb c
_pa::
.blkb 1
.dbsym e pa _pa c
_temp1::
.blkb 1
.dbsym e temp1 _temp1 c
_temp::
.blkb 1
.dbsym e temp _temp c
_rst_time::
.blkb 2
.dbsym e rst_time _rst_time i
_toneconst::
.blkb 2
.dbsym e toneconst _toneconst i
_delay_time2::
.blkb 2
.dbsym e delay_time2 _delay_time2 i
_delay_time1::
.blkb 2
.dbsym e delay_time1 _delay_time1 i
_mic_in::
.blkb 1
.dbfile e:/ICC/include/sl3010.c
.dbsym e mic_in _mic_in c
_remote_in::
.blkb 1
.dbfile E:\icc\iccavr\sl3010\music_car\music_car.c
.dbsym e remote_in _remote_in c
_sw_in::
.blkb 1
.dbfile e:/ICC/include/sl3010.c
.dbsym e sw_in _sw_in c
_work_status::
.blkb 1
.dbsym e work_status _work_status c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -