⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 music_car.s

📁 单片机开发资料光盘-双龙-686M.zip
💻 S
📖 第 1 页 / 共 3 页
字号:
	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 + -