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

📄 vfd.s

📁 sunplus spca514 cdmp3 源码
💻 S
📖 第 1 页 / 共 4 页
字号:
;   							//	printf(rds_dis_string);printf("\n");
;   			if(rds_status&PS_NAME_EXIST)
	lds R2,_rds_status
	sbrs R2,0
	rjmp L31
	.dbline 315
;   				Set_String(rds_dis_string);
	ldi R16,<_rds_dis_string
	ldi R17,>_rds_dis_string
	xcall _Set_String
	xjmp L9
L31:
	.dbline 317
;   			 else
;   				Set_String("NOPSNAME");
	ldi R16,<L33
	ldi R17,>L33
	xcall _Set_String
	.dbline 318
;   		break;
	xjmp L9
L34:
	.dbline 320
; 	case DIS_PTY:
; 		if(pty_is_searching == 2)
	lds R24,_pty_is_searching
	cpi R24,2
	brne L35
	.dbline 321
;  		{
	.dbline 322
;   			if(blink_time<3)
	lds R24,_blink_time
	cpi R24,3
	brsh L37
	.dbline 323
;   				Set_String("PTY");
	ldi R16,<L39
	ldi R17,>L39
	xcall _Set_String
L37:
	.dbline 324
; 			display_digit(freq);
	lds R17,_freq+1
	lds R16,_freq
	xcall _display_digit
	.dbline 325
;   			if(amfm_flag)
	lds R2,_amfm_flag
	tst R2
	breq L40
	.dbline 326
;   			{
	.dbline 327
;   				g_vfd_grid_buffer[2] |= VFD_LED_KHZ;
	lds R25,_g_vfd_grid_buffer+4+1
	lds R24,_g_vfd_grid_buffer+4
	ori R25,64
	sts _g_vfd_grid_buffer+4+1,R25
	sts _g_vfd_grid_buffer+4,R24
	.dbline 328
;   			}
	xjmp L9
L40:
	.dbline 330
;   			else
;   			{
	.dbline 332
;   			
;   				g_vfd_grid_buffer[2] |= VFD_LED_MHZ;
	lds R25,_g_vfd_grid_buffer+4+1
	lds R24,_g_vfd_grid_buffer+4
	ori R25,128
	sts _g_vfd_grid_buffer+4+1,R25
	sts _g_vfd_grid_buffer+4,R24
	.dbline 333
;   				g_vfd_grid_buffer[3] |= VFD_LED_DP;
	lds R25,_g_vfd_grid_buffer+6+1
	lds R24,_g_vfd_grid_buffer+6
	ori R25,128
	sts _g_vfd_grid_buffer+6+1,R25
	sts _g_vfd_grid_buffer+6,R24
	.dbline 334
;   			};
	.dbline 334
	.dbline 336
;   		  									
;   		}
	xjmp L9
L35:
	.dbline 338
;   		else
; 		{		
	.dbline 339
;   				if(pty_is_searching==1)
	lds R24,_pty_is_searching
	cpi R24,1
	brne L45
	.dbline 340
;   				{
	.dbline 341
;   					if(blink_time>2)
	ldi R24,2
	lds R2,_blink_time
	cp R24,R2
	brsh L47
	.dbline 342
;   					 break;
	xjmp L9
L47:
	.dbline 343
;   					rds_dis_string[5] = pty_search_type;
	lds R2,_rds_dis_string+1
	sts _rds_dis_string+5,R2
	.dbline 344
;   				}
	xjmp L46
L45:
	.dbline 346
;   				else
;   				{
	.dbline 347
;   					if((rds_status&PTY_EXIST)==0)
	lds R2,_rds_status
	sbrc R2,1
	rjmp L51
	.dbline 348
;   					{
	.dbline 349
;   					 Set_String("NO PTY");
	ldi R16,<L53
	ldi R17,>L53
	xcall _Set_String
	.dbline 350
;   					break;
	xjmp L9
L51:
	.dbline 351
;   					};	
	.dbline 352
;   					rds_dis_string[5] = pty_dis_type;
	lds R2,_rds_dis_string
	sts _rds_dis_string+5,R2
	.dbline 353
;   				}
L46:
	.dbline 355
;   					
;   				switch(rds_dis_string[5])
	lds R22,_rds_dis_string+5
	clr R23
	cpi R22,0
	ldi R30,0
	cpc R23,R30
	brge X5
	xjmp L55
X5:
	ldi R24,31
	ldi R25,0
	cp R24,R22
	cpc R25,R23
	brge X6
	xjmp L55
X6:
	ldi R24,<L94
	ldi R25,>L94
	movw R30,R22
	lsl R30
	rol R31
	add R30,R24
	adc R31,R25
	lpm R0,Z+
	lpm R1,Z
	movw R30,R0
	ijmp
X1:
	.dbline 356
;   				{
L59:
	.dbline 358
;   					case PTY_NONE:
;   						 Set_String("NONE");
	ldi R16,<L60
	ldi R17,>L60
	xcall _Set_String
	.dbline 359
;   					     break;
	xjmp L9
L61:
	.dbline 361
;   					case PTY_NEWS:
;   						 Set_String("NEWS");
	ldi R16,<L62
	ldi R17,>L62
	xcall _Set_String
	.dbline 362
;   						break;
	xjmp L9
L63:
	.dbline 364
;   					case PTY_AFFAIRS:
;   						Set_String("AFFAIRS");
	ldi R16,<L64
	ldi R17,>L64
	xcall _Set_String
	.dbline 365
;   						break;
	xjmp L9
L65:
	.dbline 367
; 					case PTY_INFO:
;   						Set_String("INFO");
	ldi R16,<L66
	ldi R17,>L66
	xcall _Set_String
	.dbline 368
;   						break;
	xjmp L9
L67:
	.dbline 370
; 					case PTY_SPORT:
;   						Set_String("SPORT");
	ldi R16,<L68
	ldi R17,>L68
	xcall _Set_String
	.dbline 371
;   					    break;
	xjmp L9
L69:
	.dbline 373
; 					case PTY_EDUCATE:
;   						Set_String("EDUCATE");
	ldi R16,<L70
	ldi R17,>L70
	xcall _Set_String
	.dbline 374
;   						break;
	xjmp L9
L71:
	.dbline 376
; 					case PTY_DRAMA:
;   						Set_String("DRAMA");
	ldi R16,<L72
	ldi R17,>L72
	xcall _Set_String
	.dbline 377
;   						break;
	xjmp L9
L73:
	.dbline 379
;   					case PTY_CULTURE:
;   						Set_String("CULTUTE");
	ldi R16,<L74
	ldi R17,>L74
	xcall _Set_String
	.dbline 380
;   						break;
	xjmp L9
L75:
	.dbline 382
; 					case PTY_SCIENCE:
;   						Set_String("SCIENCE");
	ldi R16,<L76
	ldi R17,>L76
	xcall _Set_String
	.dbline 383
;   						break;
	xjmp L9
L77:
	.dbline 385
; 					case PTY_VARIED:
;   						Set_String("VARIED");
	ldi R16,<L78
	ldi R17,>L78
	xcall _Set_String
	.dbline 386
;   						break;
	xjmp L9
L79:
	.dbline 388
; 					case PTY_POP_M:
;   						Set_String("POP M");
	ldi R16,<L80
	ldi R17,>L80
	xcall _Set_String
	.dbline 389
;   						break;
	xjmp L9
L81:
	.dbline 391
; 					case PTY_ROCK_M:
;   						 Set_String("ROCK M");
	ldi R16,<L82
	ldi R17,>L82
	xcall _Set_String
	.dbline 392
;   						break;
	xjmp L9
L83:
	.dbline 394
; 					case PTY_EASY_M:
;   						Set_String("EASY M");
	ldi R16,<L84
	ldi R17,>L84
	xcall _Set_String
	.dbline 395
;   						break;
	xjmp L9
L85:
	.dbline 397
; 					case PTY_LIGHT_M:
;   						Set_String("LIGHT M");
	ldi R16,<L86
	ldi R17,>L86
	xcall _Set_String
	.dbline 398
;   						break;
	xjmp L9
L87:
	.dbline 400
; 					case PTY_CLASSICS:
;   						Set_String("CLASSICS");
	ldi R16,<L88
	ldi R17,>L88
	xcall _Set_String
	.dbline 401
;   						break;
	xjmp L9
L89:
	.dbline 403
; 					case PTY_OTHER_M:
;   						Set_String("OTHER M");
	ldi R16,<L90
	ldi R17,>L90
	xcall _Set_String
	.dbline 404
;   						break;
	xjmp L9
L91:
	.dbline 406
; 					case PTY_ALARM:
;   						Set_String("ALARM");
	ldi R16,<L92
	ldi R17,>L92
	xcall _Set_String
	.dbline 407
;   						break;
	xjmp L9
L55:
	.dbline 409
; 					default:
;   						Set_String("OTHER");
	ldi R16,<L93
	ldi R17,>L93
	xcall _Set_String
	.dbline 410
;   						break;
	.dbline 411
;   				};
	.dbline 412
; 			}
	.dbline 413
;   			break;
	xjmp L9
L95:
	.dbline 415
; 			case DIS_RT:
;   				if(rds_status&RT_EXIST)
	lds R2,_rds_status
	sbrs R2,2
	rjmp L96
	.dbline 416
;   				{
	.dbline 417
;   					r2=Set_String(&rds_dis_string[rds_dis_buffer[2]]);
	ldi R24,<_rds_dis_string
	ldi R25,>_rds_dis_string
	lds R16,_rds_dis_buffer+2
	clr R17
	add R16,R24
	adc R17,R25
	xcall _Set_String
	movw R2,R16
	mov R20,R2
	.dbline 419
; 					//r2 = display_RT(rds_dis_buffer[2]);
;   					if(!blink_time)
	lds R2,_blink_time
	tst R2
	breq X7
	xjmp L9
X7:
	.dbline 420
;   					{	
	.dbline 421
;   						if(r2) 
	tst R20
	breq L101
	.dbline 422
;   						  rds_dis_buffer[2]++;  //
	lds R24,_rds_dis_buffer+2
	subi R24,255	; addi 1
	sts _rds_dis_buffer+2,R24
	xjmp L9
L101:
	.dbline 424
;   					    else 
;   						  rds_dis_buffer[2] = 0;  //oa
	clr R2
	sts _rds_dis_buffer+2,R2
	.dbline 426
;   								 	
;   					}
	.dbline 427
;   				}
	xjmp L9
L96:
	.dbline 429
;   				else
;   					Set_String("NO RT");
	ldi R16,<L105
	ldi R17,>L105
	xcall _Set_String
	.dbline 430
;   			    break;
	xjmp L9
L106:
	.dbline 433
; 				
; 			case DIS_CT:
;   					if(rds_status&CT_EXIST)
	lds R2,_rds_status
	sbrs R2,3
	rjmp L107
	.dbline 434
;   					{
	.dbline 435
;   						g_vfd_grid_buffer[7] = num_trans(rds_dis_string[0]/10);
	ldi R17,10
	lds R16,_rds_dis_string
	xcall div8s
	xcall _num_trans
	movw R2,R16
	sts _g_vfd_grid_buffer+14+1,R3
	sts _g_vfd_grid_buffer+14,R2
	.dbline 436
;   						g_vfd_grid_buffer[6] = ((num_trans(rds_dis_string[0]%10)|VFD_LED_COL));
	ldi R17,10
	lds R16,_rds_dis_string
	xcall mod8s
	xcall _num_trans
	movw R2,R16
	movw R24,R2
	ori R25,64
	sts _g_vfd_grid_buffer+12+1,R25
	sts _g_vfd_grid_buffer+12,R24
	.dbline 437
;   						g_vfd_grid_buffer[5] = num_trans(rds_dis_string[1]/10);
	ldi R17,10
	lds R16,_rds_dis_string+1
	xcall div8s
	xcall _num_trans
	movw R2,R16
	sts _g_vfd_grid_buffer+10+1,R3
	sts _g_vfd_grid_buffer+10,R2
	.dbline 438
;   						g_vfd_grid_buffer[4] = num_trans(rds_dis_string[1]%10);
	ldi R17,10
	lds R16,_rds_dis_string+1
	xcall mod8s
	xcall _num_trans
	movw R2,R16
	sts _g_vfd_grid_buffer+8+1,R3
	sts _g_vfd_grid_buffer+8,R2
	.dbline 440
;   						
;   					}
	xjmp L9
L107:
	.dbline 442
;   					else
;   						Set_String("NO CT");
	ldi R16,<L115
	ldi R17,>L115
	xcall _Set_String
	.dbline 445
;   						
;   				
;   				break;
	xjmp L9
L116:
	.dbline 449
; 
;    #endif
; 	case RADIO_STORE:
;   		if(blink_time<2)
	lds R24,_blink_time
	cpi R24,2
	brsh L117
	.dbline 450
;   		{
	.dbline 451
;   			Set_String("STORE");
	ldi R16,<L119
	ldi R17,>L119
	xcall _Set_String
	.dbline 457
L117:
	.dbline 457
; 			//g_vfd_grid_buffer[9] |= VFD_alpha_S;
;   			//g_vfd_grid_buffer[8] |= VFD_alpha_T;
; 			//g_vfd_grid_buffer[7] |= VFD_alpha_O;
; 			//g_vfd_grid_buffer[6] |= VFD_alpha_R;
; 			//g_vfd_grid_buffer[5] |= VFD_alpha_E;
; 		};
	.dbline 458
; 		if(radio_count ==0)
	lds R3,_radio_count+1
	lds R2,_radio_count
	tst R2
	brne L120
	tst R3
	brne L120
	.dbline 459
; 		{
	.dbline 460
; 		   	g_vfd_grid_buffer[3] = VFD_alpha_DASH;
	ldi R24,8192
	ldi R25,32
	sts _g_vfd_grid_buffer+6+1,R25
	sts _g_vfd_grid_buffer+6,R24
	.dbline 461
; 			g_vfd_grid_buffer[2] = VFD_alpha_DASH;
	sts _g_vfd_grid_buffer+4+1,R25
	sts _g_vfd_grid_buffer+4,R24
	.dbline 462
; 		}
	xjmp L9
L120:
	.dbline 464
; 		else
; 		{
	.dbline 465
; 			display_digit(radio_count);
	lds R17,_radio_count+1
	lds R16,_radio_count
	xcall _display_digit
	.dbline 468
; 			//g_vfd_grid_buffer[3] |= num_xlate[radio_count/10];
; 			//g_vfd_grid_buffer[2] |= num_xlate[radio_count%10];
; 		};
	.dbline 468
	.dbline 469
; 		break;
L8:
L9:
	.dbline 471
; 
;   };
	.dbline 472
;   if((!is_autosearching) &&(!radio_dout()))
	lds R2,_is_autosearching
	tst R2
	brne L126
	sbic 0x10,7
	rjmp L126
	.dbline 473
;   	g_vfd_grid_buffer[8] |= VFD_LED_STEREO;
	lds R25,_g_vfd_grid_buffer+16+1
	lds R24,_g_vfd_grid_buffer+16
	ori R25,64
	sts _g_vfd_grid_buffer+16+1,R25
	sts _g_vfd_grid_buffer+16,R24
L126:
	.dbline 474
;  if(is_autosearching)
	lds R2,_is_autosearching
	tst R2
	breq L129
	.dbline 475
;  {
	.dbline 476
;   	if(blink_time<2)
	lds R24,_blink_time
	cpi R24,2
	brsh L131
	.dbline 477
;   		g_vfd_grid_buffer[0] |= VFD_LED_AUTO;
	lds R25,_g_vfd_grid_buffer+1
	lds R24,_g_vfd_grid_buffer
	ori R24,32
	sts _g_vfd_grid_buffer+1,R25
	sts _g_vfd_grid_buffer,R24
L131:
	.dbline 478
L129:
	.dbline -2
	.dbline 479
;  }
; }
L7:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r r 22 c
	.dbsym r r2 20 c
	.dbfunc s ui_fp_update_handler _ui_fp_update_handler fI
	.area func_lit(rom, con, rel)
L216:
	.word `L145
	.word `L140
	.word `L140
	.word `L140
	.word `L152
	.word `L160
	.word `L169
	.word `L140
	.word `L168
	.word `L140
	.word `L140
	.word `L181
	.word `L140
	.word `L190
	.word `L143
	.area text(rom, con, rel)
	.dbfile D:\avrmcu\AT980\AT980\vfd.c
	.area func_lit(rom, con, rel)
L202:
	.word `L194
	.word `L196
	.word `L198
	.word `L200
	.area text(rom, con, rel)
	.dbfile D:\avrmcu\AT980\AT980\vfd.c
	.area func_lit(rom, con, rel)
L215:
	.word `L210
	.word `L211
	.word `L212
	.word `L213
	.word `L214
	.area text(rom, con, rel)
	.dbfile D:\avrmcu\AT980\AT980\vfd.c
;          value -> R22,R23
;              i -> R20
	.even
_ui_fp_update_handler::
	xcall push_gset2
	.dbline -1
	.dbline 482
; 
; void ui_fp_update_handler(void)
; {
	.dbline 486
;  unsigned char i;
;  unsigned int value;
;  #ifndef TEST_KEY
;  if(work_mode!=0)
	lds R2,_work_mode
	tst R2
	brne X11
	xjmp L134
X11:
	.dbline 488
;  #endif
;  {
	.dbline 489
;   for(i=0;i<VFD_BUFFER_SIZE;i++)
	clr R20

⌨️ 快捷键说明

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