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

📄 sl3010_4.s

📁 单片机开发资料光盘-双龙-686M.zip
💻 S
📖 第 1 页 / 共 5 页
字号:
	.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\sl3010\sl3010_4\sl3010_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
L63:
	.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
L64:
	.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\sl3010\sl3010_4\sl3010_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,15
	sts _remote_in,R24
	.dbline 221
	mov R20,R24
	clr R21
	cpi R20,0
	cpc R20,R21
	breq L69
X7:
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	breq L73
	cpi R20,2
	ldi R30,0
	cpc R21,R30
	breq L71
	cpi R20,4
	ldi R30,0
	cpc R21,R30
	breq L70
	cpi R20,8
	ldi R30,0
	cpc R21,R30
	breq L72
	rjmp L66
X8:
	.dbline 222
L69:
	.dbline 224
	clr R2
	clr R3
	sts _rst_time+1,R3
	sts _rst_time,R2
	.dbline 225
	rjmp L67
L70:
	.dbline 227
	clr R2
	clr R3
	sts _rst_time+1,R3
	sts _rst_time,R2
	.dbline 228
	rjmp L67
L71:
	.dbline 230
	clr R2
	clr R3
	sts _rst_time+1,R3
	sts _rst_time,R2
	.dbline 231
	rjmp L67
L72:
	.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 L67
L73:
	.dbline 236
	clr R2
	clr R3
	sts _rst_time+1,R3
	sts _rst_time,R2
	.dbline 237
L66:
L67:
	.dbline 239
	ldi R24,400
	ldi R25,1
	lds R2,_rst_time
	lds R3,_rst_time+1
	cp R24,R2
	cpc R25,R3
	brsh L74
	.dbline 240
	.dbline 241
	ldi R24,255
	out 0x1b,R24
	.dbline 242
	rcall _watchdog_init
L76:
	.dbline 243
L77:
	.dbline 243
	rjmp L76
X9:
	.dbline 244
L74:
	.dbline 245
	lds R24,_gzsl
	cpi R24,136
	brne L79
	.dbline 246
	.dbline 247
	lds R24,_t0_times
	cpi R24,10
	brne L81
	.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 L83
	.dbline 252
	.dbline 252
	clr R2
	sts _timers,R2
	.dbline 252
L83:
	.dbline 253
	lds R2,_pa
	out 0x1b,R2
	.dbline 254
L81:
	.dbline 255
L79:
	.dbline 256
	lds R24,_gzsl
	cpi R24,51
	breq X13
	rjmp L85
X13:
	.dbline 257
	.dbline 258
	rcall _sw_touch
	.dbline 259
	lds R24,_t0_times
	cpi R24,8
	breq X14
	rjmp L87
X14:
	.dbline 260
	.dbline 261
	clr R2
	sts _t0_times,R2
	.dbline 262
	in R24,0x16
	andi R24,15
	sts _remote_in,R24
	.dbline 263
	mov R2,R24
	sts _sound_1,R2
	.dbline 264
	lds R3,_sound_2
	cp R3,R24
	breq L89
	.dbline 265
	.dbline 265
	clr R2
	clr R3
	sts _sound_add+1,R3
	sts _sound_add,R2
	.dbline 265
	mov R2,R24
	sts _sound_2,R2
	.dbline 265
L89:
	.dbline 266
	lds R20,_remote_in
	clr R21
	cpi R20,0
	cpc R20,R21
	breq L94
X10:
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	brne X15
	rjmp L98
X15:
	cpi R20,2
	ldi R30,0
	cpc R21,R30
	breq L96
	cpi R20,4
	ldi R30,0
	cpc R21,R30
	breq L95
	cpi R20,8
	ldi R30,0
	cpc R21,R30
	breq L97
	rjmp L91
X11:
	.dbline 267
L94:
	.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 L92
L95:
	.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 L92
L96:
	.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 L92
L97:
	.dbline 282
; 		      stop();              //停止运动
	rcall _stop
	.dbline 283
; 			  temp1=sound_stop[sound_add];
	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
;       	    break;
	rjmp L92
L98:
	.dbline 286
;           case 0x01:  // < D >
;               turn_left();         //左转
	rcall _turn_left
	.dbline 287
; 			  temp1=sound_left[sound_add];
	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;
L91:
L92:
	.dbline 290
;       	}
;       }
L87:
	.dbline 291
;    }
L85:
	.dbline 292
;  if(gzsl == 0x11)
	lds R24,_gzsl
	cpi R24,17
	brne L99
	.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 L101
	.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
; 	  }
L101:
	.dbline 300
;    } 
L99:
	.dbline 301
;  if(gzsl == 0x22)
	lds R24,_gzsl
	cpi R24,34
	brne L103
	.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 L105
	.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
; 	  }
L105:
	.dbline 309
;    } 
L103:
	.dbline 310
;  if(gzsl == 0x44)
	lds R24,_gzsl
	cpi R24,68
	breq X16
	rjmp L107
X16:
	.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 L109
	.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
; 	  }
L109:
	.dbline 320
; 	if(pc == 0x40 || pc == 0x80 || pc == 0x20 || pc == 0xc0 || pc == 0x60)
	lds R24,_pc
	cpi R24,64
	breq L116
	cpi R24,128
	breq L116
	cpi R24,32
	breq L116
	cpi R24,192
	breq L116
	cpi R24,96
	brne L111
L116:
	.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
; 	  }
L111:
	.dbline 325
; 	if(timers == 0x55)
	lds R24,_timers
	cpi R24,85
	brne L117
	.dbline 326
; 	  {
	.dbline 327
;        if(t0_times < 16)     //16*25ms=400ms
	lds R24,_t0_times
	cpi R24,16
	brsh L119
	.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
;          }
L119:
	.dbline 332
; 	   if(t0_times > 16 && t0_times < 24) //8*25ms=200ms
	ldi R24,16
	lds R2,_t0_times
	cp R24,R2
	brsh L121
	mov R24,R2
	cpi R24,24
	brsh L121
	.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
; 	     }
L121:
	.dbline 337
; 	   if(t0_times == 24)
	lds R24,_t0_times
	cpi R24,24
	brne L123
	.dbline 338
; 	     {
	.dbline 339
; 	      timers = 0;
	clr R2
	sts _timers,R2
	.dbline 340
; 		  t0_times = 0;
	sts _t0_times,R2
	.dbline 341
; 	     }
L123:
	.dbline 342
; 	  }
L117:
	.dbline 343
; 	if(timers != 0x55 && timers != 0x22)
	lds R24,_timers
	cpi R24,85
	breq L125
	cpi R24,34
	breq L125
	.dbline 344
; 	  {
	.dbline 345
; 	   forward();
	rcall _forward
	.dbline 346
; 	   temp1 = 0;
	clr R2
	sts _temp1,R2
	.dbline 347
; 	  }  
L125:
	.dbline 348
;    }
L107:
	.dbline 349
;  if(gzsl == 0x55)
	lds R24,_gzsl
	cpi R24,85
	breq X17
	rjmp L127
X17:
	.dbline 350
;    {
	.dbline 351
; 	if(t0_times == 4)     //4*25ms=100ms  扫描一次
	lds R24,_t0_times
	cpi R24,4
	breq X18
	rjmp L129
X18:
	.dbline 352
;       {
	.dbline 353
; 	   t0_times = 0;
	clr R2
	sts _t0_times,R2
	.dbline 354
; 	   remote_in = PINB & 0x0F;
	in R24,0x16
	andi R24,15
	sts _remote_in,R24
	.dbline 355
; 	   switch (remote_in)
	mov R20,R24
	clr R21
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	breq L137
	cpi R20,2
	ldi R30,0
	cpc R21,R30
	breq L135
	cpi R20,4
	ldi R30,0
	cpc R21,R30
	breq L134
	cpi R20,8
	ldi R30,0
	cpc R21,R30
	breq L136
	rjmp L131
X12:
	.dbline 356
;       	 {//检测遥控器是否有键按下
L134:
	.dbline 358
;           case 0x04:  // < A >
; 			  sound_add=0;
	clr R2
	clr R3
	sts _sound_add+1,R3
	sts _sound_add,R2
	.dbline 359
; 			  sound_1 = 0x11;
	ldi R24,17
	sts _sound_1,R24
	.dbline 360
;       	    break;
	rjmp L132
L135:
	.dbline 362
;           case 0x02:  // < B >
; 			  sound_add=0;
	clr R2
	clr R3
	sts _sound_add+1,R3
	sts _sound_add,R2
	.dbline 363
; 			  sound_1 = 0x22;
	ldi R24,34
	sts _sound_1,R24
	.dbline 364
;       	    break;
	rjmp L132
L136:
	.dbline 366
;           case 0x08:  // < C >
; 			  sound_add=0;
	clr R2
	clr R3
	sts _sound_add+1,R3
	sts _sound_add,R2
	.dbline 367
; 			  sound_1 = 0x33;
	ldi R24,51
	sts _sound_1,R24

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -