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

📄 radio.s

📁 sunplus spca514 cdmp3 源码
💻 S
📖 第 1 页 / 共 3 页
字号:
	.dbline 380
; 			if(amfm_flag)
	lds R2,_amfm_flag
	tst R2
	breq L151
	.dbline 381
; 			{
	.dbline 382
; 			  if(radio_count>MAX_AM_STATION)
	ldi R24,20
	ldi R25,0
	lds R3,_radio_count+1
	lds R2,_radio_count
	cp R24,R2
	cpc R25,R3
	brsh L152
	.dbline 383
; 			    radio_count = 1;
	ldi R24,1
	sts _radio_count+1,R25
	sts _radio_count,R24
	.dbline 385
; 		
; 		    }
	xjmp L152
L151:
	.dbline 387
; 		    else
; 			{
	.dbline 388
; 			  if(radio_count>MAX_FM_STATION)
	ldi R24,30
	ldi R25,0
	lds R3,_radio_count+1
	lds R2,_radio_count
	cp R24,R2
	cpc R25,R3
	brsh L155
	.dbline 389
; 			    radio_count = 1;
	ldi R24,1
	sts _radio_count+1,R25
	sts _radio_count,R24
L155:
	.dbline 391
; 			 
; 			}
L152:
	.dbline 392
; 			g_ui_tmp_msg_cnt = 20;
	ldi R24,20
	sts _g_ui_tmp_msg_cnt,R24
	.dbline 395
; 		
; 			//store_bit = 0;
; 		}
	xjmp L26
L149:
	.dbline 397
; 		else
; 		{
	.dbline 398
; 			if(radio_count!=0)
	lds R3,_radio_count+1
	lds R2,_radio_count
	tst R2
	brne X13
	tst R3
	brne X14
	xjmp L157
X14:
X13:
	.dbline 399
; 			{
	.dbline 400
; 			  station_no=radio_count-1;
	movw R24,R2
	sbiw R24,1
	sts _station_no,R24
	.dbline 401
; 			  if(amfm_flag)
	lds R2,_amfm_flag
	tst R2
	breq L159
	.dbline 402
; 			  {
	.dbline 403
; 				EEPROM_WRITE((int)&gps.ps_am_station[station_no],freq);			
	ldi R24,2
	ldi R25,0
	std y+0,R24
	std y+1,R25
	ldi R18,<_freq
	ldi R19,>_freq
	ldi R24,<_gps+68
	ldi R25,>_gps+68
	lds R16,_station_no
	clr R17
	lsl R16
	rol R17
	add R16,R24
	adc R17,R25
	xcall _EEPROMWriteBytes
	.dbline 404
; 			    EEPROMwrite((int)&gps.ps_am_no,station_no);
	lds R18,_station_no
	ldi R16,<_gps+3
	ldi R17,>_gps+3
	xcall _EEPROMwrite
	.dbline 405
; 			  }
	xjmp L160
L159:
	.dbline 407
; 			  else
; 			  {
	.dbline 408
; 				EEPROM_WRITE((int)&gps.ps_fm_station[station_no],freq);
	ldi R24,2
	ldi R25,0
	std y+0,R24
	std y+1,R25
	ldi R18,<_freq
	ldi R19,>_freq
	ldi R24,<_gps+8
	ldi R25,>_gps+8
	lds R16,_station_no
	clr R17
	lsl R16
	rol R17
	add R16,R24
	adc R17,R25
	xcall _EEPROMWriteBytes
	.dbline 409
; 				EEPROMwrite((int)&gps.ps_fm_no,station_no);
	lds R18,_station_no
	ldi R16,<_gps+2
	ldi R17,>_gps+2
	xcall _EEPROMwrite
	.dbline 411
;               
; 			  }
L160:
	.dbline 412
L157:
	.dbline 412
; 			};
	.dbline 413
; 			g_ui_tmp_msg_cnt=1;
	ldi R24,1
	sts _g_ui_tmp_msg_cnt,R24
	.dbline 414
; 		}
	.dbline 415
; 		break;
	xjmp L26
L165:
	.dbline 427
; 	
; 	case RD_9:
; 	case RD_8:
; 	case RD_7:
; 	case RD_6:
; 	case RD_5:
; 	case RD_4:
; 	case RD_3:
; 	case RD_2:
; 	case RD_1:
; 	case RD_0:
; 	    g_ui_tmp_msg_cnt = 20 ; //30s
	ldi R24,20
	sts _g_ui_tmp_msg_cnt,R24
	.dbline 428
; 	    if((display_type != DISPLAY_DIGIT)&&(display_type!=RADIO_STORE)) //first
	lds R24,_display_type
	cpi R24,15
	breq L166
	cpi R24,14
	breq L166
	.dbline 429
; 	    {
	.dbline 430
; 	    	display_type = DISPLAY_DIGIT;
	ldi R24,15
	sts _display_type,R24
	.dbline 431
; 			radio_count = 0;
	clr R2
	clr R3
	sts _radio_count+1,R3
	sts _radio_count,R2
	.dbline 432
L166:
	.dbline 432
; 		};
	.dbline 433
; 		if(radio_count >= 6000) break;
	lds R25,_radio_count+1
	lds R24,_radio_count
	cpi R24,112
	ldi R30,23
	cpc R25,R30
	brlo L168
	.dbline 433
	xjmp L26
L168:
	.dbline 434
; 		radio_count *= 10;
	lds R19,_radio_count+1
	lds R18,_radio_count
	ldi R16,10
	ldi R17,0
	xcall empy16s
	sts _radio_count+1,R17
	sts _radio_count,R16
	.dbline 435
; 		radio_count += (uicc_code-RD_0);
	lds R24,_uicc_code
	clr R25
	sbiw R24,1
	movw R2,R16
	add R2,R24
	adc R3,R25
	sts _radio_count+1,R3
	sts _radio_count,R2
	.dbline 437
; 		
; 		if(display_type == RADIO_STORE)
	lds R24,_display_type
	cpi R24,14
	breq X15
	xjmp L26
X15:
	.dbline 438
; 		{
	.dbline 439
; 			if(amfm_flag)
	lds R2,_amfm_flag
	tst R2
	breq L172
	.dbline 440
; 			{
	.dbline 441
; 					if(radio_count > MAX_AM_STATION)
	ldi R24,20
	ldi R25,0
	lds R3,_radio_count+1
	lds R2,_radio_count
	cp R24,R2
	cpc R25,R3
	brlo X16
	xjmp L26
X16:
	.dbline 442
; 						radio_count = radio_count / 10;
	ldi R18,10
	ldi R19,0
	movw R16,R2
	xcall div16u
	sts _radio_count+1,R17
	sts _radio_count,R16
	.dbline 443
; 			}
	xjmp L26
L172:
	.dbline 445
; 			else
; 			{
	.dbline 446
; 				if(radio_count > MAX_FM_STATION)
	ldi R24,30
	ldi R25,0
	lds R3,_radio_count+1
	lds R2,_radio_count
	cp R24,R2
	cpc R25,R3
	brlo X17
	xjmp L26
X17:
	.dbline 447
; 					radio_count = radio_count / 10;
	ldi R18,10
	ldi R19,0
	movw R16,R2
	xcall div16u
	sts _radio_count+1,R17
	sts _radio_count,R16
	.dbline 448
; 			}
	.dbline 449
; 		}		
	.dbline 450
; 		break;
	xjmp L26
L178:
	.dbline 452
; 	case RD_CLEAR:
; 		if(display_type==RADIO_STORE)
	lds R24,_display_type
	cpi R24,14
	brne L179
	.dbline 453
; 			radio_count = 0;
	clr R2
	clr R3
	sts _radio_count+1,R3
	sts _radio_count,R2
	xjmp L180
L179:
	.dbline 455
; 		else
; 			radio_count /= 10;
	ldi R18,10
	ldi R19,0
	lds R17,_radio_count+1
	lds R16,_radio_count
	xcall div16u
	sts _radio_count+1,R17
	sts _radio_count,R16
L180:
	.dbline 456
; 			g_ui_tmp_msg_cnt = 20;
	ldi R24,20
	sts _g_ui_tmp_msg_cnt,R24
	.dbline 457
; 		break;
	xjmp L26
L181:
	.dbline 460
; 	case RD_ENTER:
; 		//is_autosearching = 0;
; 		if(display_type != DISPLAY_DIGIT) break;
	lds R24,_display_type
	cpi R24,15
	breq L182
	.dbline 460
	xjmp L26
L182:
	.dbline 462
; 	
; 		if((radio_count>=AMreq_MIN)&&(radio_count<=AMreq_MAX))
	lds R25,_radio_count+1
	lds R24,_radio_count
	cpi R24,10
	ldi R30,2
	cpc R25,R30
	brsh X18
	xjmp L184
X18:
	ldi R24,1611
	ldi R25,6
	lds R3,_radio_count+1
	lds R2,_radio_count
	cp R24,R2
	cpc R25,R3
	brlo L184
	.dbline 463
; 		{
	.dbline 464
; 			amfm_flag = 1;
	ldi R24,1
	sts _amfm_flag,R24
	.dbline 465
; 			freq = radio_count;
	sts _freq+1,R3
	sts _freq,R2
	.dbline 466
; 			station_no = find_station_no();
	xcall _find_station_no
	movw R2,R16
	sts _station_no,R2
	.dbline 467
; 			if(station_no!=255)
	mov R24,R2
	cpi R24,255
	breq L186
	.dbline 468
; 			{
	.dbline 469
; 			   EEPROMwrite((int)&(gps.ps_am_no),station_no);
	mov R18,R2
	ldi R16,<_gps+3
	ldi R17,>_gps+3
	xcall _EEPROMwrite
	.dbline 470
L186:
	.dbline 470
; 			};
	.dbline 472
; 			#ifdef SGJM_RDS
; 		     close_rds();
	xcall _close_rds
	.dbline 473
; 		    rds_display_type = 0;
	clr R2
	sts _rds_display_type,R2
	.dbline 475
; 			#endif
; 			radio_is_muted = 1;
	ldi R24,1
	sts _radio_is_muted,R24
	.dbline 476
; 			mute_radio();
	xcall _mute_radio
	.dbline 477
; 			delay_ms(500);
	ldi R16,500
	ldi R17,1
	xcall _delay_ms
	.dbline 478
; 			switch_fmam();
	xcall _switch_fmam
	.dbline 479
; 			delay_ms(500);
	ldi R16,500
	ldi R17,1
	xcall _delay_ms
	.dbline 480
; 			radio_is_muted =0;
	clr R2
	sts _radio_is_muted,R2
	.dbline 481
; 			mute_radio();
	xcall _mute_radio
	.dbline 482
; 			save_fre();
	xcall _save_fre
	.dbline 483
; 			EEPROMwrite((int)&(gps.ps_amfm_flag),amfm_flag);
	lds R18,_amfm_flag
	ldi R16,<_gps
	ldi R17,>_gps
	xcall _EEPROMwrite
	.dbline 484
; 		}
	xjmp L185
L184:
	.dbline 485
; 		else if((radio_count>=FMreq_MIN)&&(radio_count<=FMreq_MAX))
	lds R25,_radio_count+1
	lds R24,_radio_count
	cpi R24,46
	ldi R30,34
	cpc R25,R30
	brsh X19
	xjmp L189
X19:
	ldi R24,10800
	ldi R25,42
	lds R3,_radio_count+1
	lds R2,_radio_count
	cp R24,R2
	cpc R25,R3
	brlo L189
	.dbline 486
; 		{
	.dbline 487
; 			amfm_flag = 0;
	clr R2
	sts _amfm_flag,R2
	.dbline 488
; 			freq = radio_count;
	lds R3,_radio_count+1
	lds R2,_radio_count
	sts _freq+1,R3
	sts _freq,R2
	.dbline 490
; 					
; 			station_no = find_station_no();
	xcall _find_station_no
	movw R2,R16
	sts _station_no,R2
	.dbline 491
; 			if(station_no!=255)
	mov R24,R2
	cpi R24,255
	breq L191
	.dbline 492
; 			{
	.dbline 493
; 				EEPROMwrite((int)&(gps.ps_fm_no),station_no);
	mov R18,R2
	ldi R16,<_gps+2
	ldi R17,>_gps+2
	xcall _EEPROMwrite
	.dbline 494
L191:
	.dbline 494
; 			};
	.dbline 495
; 			radio_is_muted = 1;
	ldi R24,1
	sts _radio_is_muted,R24
	.dbline 496
; 			mute_radio();
	xcall _mute_radio
	.dbline 497
; 			delay_ms(500);
	ldi R16,500
	ldi R17,1
	xcall _delay_ms
	.dbline 498
; 			switch_fmam();
	xcall _switch_fmam
	.dbline 499
; 			delay_ms(500);
	ldi R16,500
	ldi R17,1
	xcall _delay_ms
	.dbline 500
; 			radio_is_muted = 0;
	clr R2
	sts _radio_is_muted,R2
	.dbline 501
; 			mute_radio();
	xcall _mute_radio
	.dbline 502
; 			save_fre();
	xcall _save_fre
	.dbline 503
; 			EEPROMwrite((int)&(gps.ps_amfm_flag),amfm_flag);
	lds R18,_amfm_flag
	ldi R16,<_gps
	ldi R17,>_gps
	xcall _EEPROMwrite
	.dbline 504
; 		}
	xjmp L190
L189:
	.dbline 506
; 		else 
; 		{
	.dbline 507
; 			if(radio_count!=0)
	lds R3,_radio_count+1
	lds R2,_radio_count
	tst R2
	brne X20
	tst R3
	brne X21
	xjmp L194
X21:
X20:
	.dbline 508
; 			{
	.dbline 509
; 				radio_count--;
	movw R24,R2
	sbiw R24,1
	sts _radio_count+1,R25
	sts _radio_count,R24
	.dbline 510
; 				if(amfm_flag)
	lds R2,_amfm_flag
	tst R2
	breq L196
	.dbline 511
; 				{
	.dbline 512
; 					if(radio_count < MAX_AM_STATION)
	cpi R24,20
	ldi R30,0
	cpc R25,R30
	brlo X22
	xjmp L197
X22:
	.dbline 513
; 					{
	.dbline 514
; 						station_no = radio_count;
	movw R2,R24
	sts _station_no,R2
	.dbline 515
; 						EEPROMwrite((int)&(gps.ps_am_no),station_no);
	mov R18,R2
	ldi R16,<_gps+3
	ldi R17,>_gps+3
	xcall _EEPROMwrite
	.dbline 516
; 						EEPROM_READ((int)&gps.ps_am_station[station_no],freq);
	ldi R24,2
	ldi R25,0
	std y+0,R24
	std y+1,R25
	ldi R18,<_freq
	ldi R19,>_freq
	ldi R24,<_gps+68
	ldi R25,>_gps+68
	lds R16,_station_no
	clr R17
	lsl R16
	rol R17
	add R16,R24
	adc R17,R25
	xcall _EEPROMReadBytes
	.dbline 517
; 						save_fre();
	xcall _save_fre
	.dbline 518
; 						init_radio();
	xcall _init_radio
	.dbline 519
; 					}
	.dbline 526
; 					/*else
; 					{	
; 						display_type = RADIO_ERR_MENU;
; 						g_ui_tmp_msg_cnt = 20;
; 					};*/
; 			
; 				}
	xjmp L197
L196:
	.dbline 528
; 				else
; 				{
	.dbline 529
; 					if(radio_count < MAX_FM_STATION)
	lds R25,_radio_count+1
	lds R24,_radio_count
	cpi R24,30
	ldi R30,0
	cpc R25,R30
	brsh L202
	.dbline 530
; 					{
	.dbline 531
; 						station_no = radio_count;
	movw R2,R24
	sts _station_no,R2
	.dbline 532
; 						EEPROMwrite((int)&(gps.ps_fm_no),station_no);
	mov R18,R2
	ldi R16,<_gps+2
	ldi R17,>_gps+2
	xcall _EEPROMwrite
	.dbline 533
; 						EEPROM_READ((int)&gps.ps_fm_station[station_no],freq);
	ldi R24,2
	ldi R25,0
	std y+0,R24
	std y+1,R25
	ldi R18,<_freq
	ldi R19,>_freq
	ldi R24,<_gps+8
	ldi R25,>_gps+8
	lds R16,_station_no
	clr R17
	lsl R16
	rol R17
	add R16,R24
	adc R17,R25
	xcall _EEPROMReadBytes
	.dbline 534
; 						save_fre();
	xcall _save_fre
	.dbline 535
; 						init_radio();
	xcall _init_radio
	.dbline 537
; 						
; 					}
L202:
	.dbline 543
; 					/*else
; 					{	
; 						radio_menu_id = RADIO_ERR_MENU;
; 						g_ui_tmp_msg_cnt = 20;
; 					};*/
; 				}
L197:
	.dbline 545
; 				
; 			}
L194:
	.dbline 546
; 		}
L190:
L185:
	.dbline 547
; 		g_ui_tmp_msg_cnt = 1;
	ldi R24,1
	sts _g_ui_tmp_msg_cnt,R24
	.dbline 548
; 		break;
L25:
L26:
	.dbline -2
	.dbline 551
; 
; 	}
; }
L24:
	adiw R28,2
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.area bss(ram, con, rel)
	.dbfile D:\avrmcu\AT980\bu2624\radio.c
_store_bit::
	.blkb 1
	.dbsym s store_bit _store_bit c
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\bu2624\radio.c
L54:
	.blkb 7
	.area idata
	.byte 32,32,'F,'R,'E,'Q,0
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\bu2624\radio.c
L52:
	.blkb 6
	.area idata
	.byte 32,32,32,'C,'T,0
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\bu2624\radio.c
L50:
	.blkb 6
	.area idata
	.byte 32,32,32,'R,'T,0
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\bu2624\radio.c
L48:
	.blkb 6
	.area idata
	.byte 32,32,'P,'T,'Y,0
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\bu2624\radio.c
L46:
	.blkb 8
	.area idata
	.byte 'P,'S,32,'N,'A,'M,'E,0
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\bu2624\radio.c

⌨️ 快捷键说明

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