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

📄 vfd.s

📁 sunplus spca514 cdmp3 源码
💻 S
📖 第 1 页 / 共 4 页
字号:
	xjmp L139
L136:
	.dbline 490
	.dbline 491
	ldi R24,<_g_vfd_grid_buffer
	ldi R25,>_g_vfd_grid_buffer
	mov R30,R20
	clr R31
	lsl R30
	rol R31
	add R30,R24
	adc R31,R25
	clr R2
	clr R3
	std z+0,R2
	std z+1,R3
	.dbline 495
L137:
	.dbline 489
	inc R20
L139:
	.dbline 489
	cpi R20,12
	brlo L136
	.dbline 496
;   {
;     g_vfd_grid_buffer[i] = 0;
;   #ifdef MORE_THAN_16SEGMENT
;     g_vfd_grid_ext_buffer[i] = 0;
;   #endif
;   }
;   blink_time = (blink_time+1)%5;
	ldi R17,5
	lds R16,_blink_time
	subi R16,255	; addi 1
	xcall mod8u
	sts _blink_time,R16
	.dbline 497
;   switch(display_type)
	lds R22,_display_type
	clr R23
	cpi R22,5
	ldi R30,0
	cpc R23,R30
	brge X12
	xjmp L140
X12:
	ldi R24,19
	ldi R25,0
	cp R24,R22
	cpc R25,R23
	brge X13
	xjmp L140
X13:
	ldi R24,<L216
	ldi R25,>L216
	movw R30,R22
	sbiw R30,5
	lsl R30
	rol R31
	add R30,R24
	adc R31,R25
	lpm R0,Z+
	lpm R1,Z
	movw R30,R0
	ijmp
X8:
	.dbline 498
;   {
L143:
	.dbline 500
;     case DISPLAY_VERSION:
; 	     Set_String("A980R104");
	ldi R16,<L144
	ldi R17,>L144
	xcall _Set_String
	.dbline 507
; 		 /*
; 		 R104: MODIFIED BY SGJM IN 2002-10-23
; 		      add SCART AV/TV control
; 		 	  add RDS
; 			  change 2 SET AV to 1 SET AV	
; 		 */
; 		 break;
	xjmp L141
L145:
	.dbline 528
;  	#ifdef CLOCK_STANDBY
; 	case DISPLAY_TIME:
; 	     if(hm_flag||(blink_time<3)) //display_hour
; 		 {
; 		   g_vfd_grid_buffer[7] = num_trans(time_val[0]/10);
; 		   g_vfd_grid_buffer[6] = (num_trans(time_val[0]%10)|VFD_LED_COL);
; 		 };
; 	     if(!hm_flag||(blink_time<3))
; 		 {
; 		   g_vfd_grid_buffer[5] = num_trans(time_val[1]/10);
; 		   g_vfd_grid_buffer[4] = num_trans(time_val[1]%10);
; 		 };	 
; 	     break;
; 	#endif
; 		 #ifdef TEST_KEY
; 	case DISPLAY_KEY:
; 	      display_digit(info);
; 		  break;
; 		  #endif
; 	   case DISPLAY_VOL:
; 	      	Set_String("VOL");
	ldi R16,<L146
	ldi R17,>L146
	xcall _Set_String
	.dbline 532
; 			//g_vfd_grid_buffer[9] |= VFD_alpha_V ;
;    			//g_vfd_grid_buffer[8] |= VFD_alpha_O ;
;    			//g_vfd_grid_buffer[7] |= VFD_alpha_L ;
; 			if(Mchvol<60)
	lds R24,_Mchvol
	cpi R24,60
	brsh L147
	.dbline 533
;               display_digit(Mchvol);
	mov R16,R24
	clr R17
	xcall _display_digit
	xjmp L141
L147:
	.dbline 535
; 			else
; 			{
	.dbline 536
; 			  g_vfd_grid_buffer[4] |= VFD_alpha_M ;
	lds R25,_g_vfd_grid_buffer+8+1
	lds R24,_g_vfd_grid_buffer+8
	ori R24,54
	ori R25,17
	sts _g_vfd_grid_buffer+8+1,R25
	sts _g_vfd_grid_buffer+8,R24
	.dbline 537
;    			  g_vfd_grid_buffer[3] |= VFD_alpha_A ;
	lds R25,_g_vfd_grid_buffer+6+1
	lds R24,_g_vfd_grid_buffer+6
	ori R24,227
	ori R25,17
	sts _g_vfd_grid_buffer+6+1,R25
	sts _g_vfd_grid_buffer+6,R24
	.dbline 538
;    			  g_vfd_grid_buffer[2] |= VFD_alpha_X ;
	lds R25,_g_vfd_grid_buffer+4+1
	lds R24,_g_vfd_grid_buffer+4
	ori R24,20
	ori R25,10
	sts _g_vfd_grid_buffer+4+1,R25
	sts _g_vfd_grid_buffer+4,R24
	.dbline 539
; 			};
	.dbline 539
	.dbline 542
;    			//g_vfd_grid_buffer[1] |= num_xlate[Mchvol/10];//(Mchvolume-MAX_VOLUME)/10];
;    		    //g_vfd_grid_buffer[0] |= num_xlate[Mchvol%10];//(Mchvolume-MAX_VOLUME)%10];
;         	break;
	xjmp L141
L152:
	.dbline 545
;   
;  		case DISPLAY_BASS:
;     		Set_String("BASS");
	ldi R16,<L153
	ldi R17,>L153
	xcall _Set_String
	.dbline 550
; 			//g_vfd_grid_buffer[9] |= VFD_alpha_B;
;    		    //g_vfd_grid_buffer[8] |= VFD_alpha_A;
;    		    //g_vfd_grid_buffer[7] |= VFD_alpha_S;
;    		    //g_vfd_grid_buffer[6] |= VFD_alpha_S;
;          	if(Bassvol >=7)
	lds R24,_Bassvol
	cpi R24,7
	brlo L154
	.dbline 551
;          	{
	.dbline 552
;   		    	g_vfd_grid_buffer[2] = num_trans(Bassvol-7);
	mov R16,R24
	subi R16,7
	xcall _num_trans
	movw R2,R16
	sts _g_vfd_grid_buffer+4+1,R3
	sts _g_vfd_grid_buffer+4,R2
	.dbline 553
;     			g_vfd_grid_buffer[3] = VFD_alpha_PLUS;
	ldi R24,1224
	ldi R25,4
	sts _g_vfd_grid_buffer+6+1,R25
	sts _g_vfd_grid_buffer+6,R24
	.dbline 554
;          	}
	xjmp L141
L154:
	.dbline 556
;          	else
;          	{
	.dbline 558
;           		//g_vfd_grid_buffer[3] |= VFD_alpha_MINUS;
;     			g_vfd_grid_buffer[2] = num_trans(7-Bassvol);
	lds R2,_Bassvol
	ldi R16,7
	sub R16,R2
	xcall _num_trans
	movw R2,R16
	sts _g_vfd_grid_buffer+4+1,R3
	sts _g_vfd_grid_buffer+4,R2
	.dbline 559
; 				g_vfd_grid_buffer[3] = VFD_alpha_MINUS;
	ldi R24,192
	ldi R25,0
	sts _g_vfd_grid_buffer+6+1,R25
	sts _g_vfd_grid_buffer+6,R24
	.dbline 560
;           	}
	.dbline 561
;           	break;
	xjmp L141
L160:
	.dbline 564
; 			
; 		case DISPLAY_TREBLE:
; 		    Set_String("TREBLE");
	ldi R16,<L161
	ldi R17,>L161
	xcall _Set_String
	.dbline 571
;     		//g_vfd_grid_buffer[9] |= VFD_alpha_T ; 
;     		//g_vfd_grid_buffer[8] |= VFD_alpha_R ; 
;     		//g_vfd_grid_buffer[7] |= VFD_alpha_E ; 
;     		//g_vfd_grid_buffer[6] |= VFD_alpha_B ; 
;     		//g_vfd_grid_buffer[5] |= VFD_alpha_L ; 
;     		//g_vfd_grid_buffer[4] |= VFD_alpha_E ; 
;          	if(Treblevol >=7)
	lds R24,_Treblevol
	cpi R24,7
	brlo L162
	.dbline 572
;    		    {
	.dbline 574
;    		    	//g_vfd_grid_buffer[3] |= VFD_alpha_PLUS;
;     			g_vfd_grid_buffer[2] = num_trans(Treblevol-7);
	mov R16,R24
	subi R16,7
	xcall _num_trans
	movw R2,R16
	sts _g_vfd_grid_buffer+4+1,R3
	sts _g_vfd_grid_buffer+4,R2
	.dbline 575
;     			g_vfd_grid_buffer[3] = VFD_alpha_PLUS;
	ldi R24,1224
	ldi R25,4
	sts _g_vfd_grid_buffer+6+1,R25
	sts _g_vfd_grid_buffer+6,R24
	.dbline 576
; 			}
	xjmp L141
L162:
	.dbline 578
;          	else
;          	{
	.dbline 580
;     			//g_vfd_grid_buffer[3] |= VFD_alpha_MINUS;
;     			g_vfd_grid_buffer[2] = num_trans(7-Treblevol);
	lds R2,_Treblevol
	ldi R16,7
	sub R16,R2
	xcall _num_trans
	movw R2,R16
	sts _g_vfd_grid_buffer+4+1,R3
	sts _g_vfd_grid_buffer+4,R2
	.dbline 581
;          		g_vfd_grid_buffer[3] = VFD_alpha_MINUS;
	ldi R24,192
	ldi R25,0
	sts _g_vfd_grid_buffer+6+1,R25
	sts _g_vfd_grid_buffer+6,R24
	.dbline 582
; 			}
	.dbline 583
;          	break;
	xjmp L141
L168:
	.dbline 585
; 		case ERROR_MSG:  //err_msg
;          	Set_String(err_msg);
	lds R17,_err_msg+1
	lds R16,_err_msg
	xcall _Set_String
	.dbline 586
;          	break;
	xjmp L141
L169:
	.dbline 589
; 
; 		case DISPLAY_BALANCE:
; 		     Set_String("BAL");
	ldi R16,<L170
	ldi R17,>L170
	xcall _Set_String
	.dbline 590
; 			 if(Balanceval ==7)
	lds R24,_Balanceval
	cpi R24,7
	brne L171
	.dbline 591
; 			 {
	.dbline 592
; 			    g_vfd_grid_buffer[2] = VFD_alpha_L;
	ldi R24,12320
	ldi R25,48
	sts _g_vfd_grid_buffer+4+1,R25
	sts _g_vfd_grid_buffer+4,R24
	.dbline 593
;     			g_vfd_grid_buffer[3] = VFD_alpha_R;
	ldi R24,4835
	ldi R25,18
	sts _g_vfd_grid_buffer+6+1,R25
	sts _g_vfd_grid_buffer+6,R24
	.dbline 594
; 			}
	xjmp L141
L171:
	.dbline 595
; 			else if(Balanceval >7)
	ldi R24,7
	lds R2,_Balanceval
	cp R24,R2
	brsh L175
	.dbline 596
;    		    {
	.dbline 598
;    		    	//g_vfd_grid_buffer[3] |= VFD_alpha_PLUS;
;     			g_vfd_grid_buffer[2] = num_trans(Balanceval-7);
	mov R16,R2
	subi R16,7
	xcall _num_trans
	movw R2,R16
	sts _g_vfd_grid_buffer+4+1,R3
	sts _g_vfd_grid_buffer+4,R2
	.dbline 599
;     			g_vfd_grid_buffer[3] = VFD_alpha_R;
	ldi R24,4835
	ldi R25,18
	sts _g_vfd_grid_buffer+6+1,R25
	sts _g_vfd_grid_buffer+6,R24
	.dbline 600
; 			}
	xjmp L141
L175:
	.dbline 602
;          	else
;          	{
	.dbline 604
;     			//g_vfd_grid_buffer[3] |= VFD_alpha_MINUS;
;     			g_vfd_grid_buffer[2] = num_trans(7-Balanceval);
	lds R2,_Balanceval
	ldi R16,7
	sub R16,R2
	xcall _num_trans
	movw R2,R16
	sts _g_vfd_grid_buffer+4+1,R3
	sts _g_vfd_grid_buffer+4,R2
	.dbline 605
;          		g_vfd_grid_buffer[3] = VFD_alpha_L;
	ldi R24,12320
	ldi R25,48
	sts _g_vfd_grid_buffer+6+1,R25
	sts _g_vfd_grid_buffer+6,R24
	.dbline 606
; 			}
	.dbline 607
;          	break;
	xjmp L141
L181:
	.dbline 664
; 			// display_digit(Balanceval);
; 		//	g_vfd_grid_buffer[6] |= VFD_LED_COL;
; 			
; 			/*g_vfd_grid_buffer[9] |=VFD_alpha_L;
; 			if(Balanceval>0)
; 				g_vfd_grid_buffer[8] |=VFD_SPECIAL_1|VH|VR;
; 			if(Balanceval>1)
; 				g_vfd_grid_buffer[8] |=VFD_SPECIAL_2;
; 			if(Balanceval>2)
; 				g_vfd_grid_buffer[7] |=VFD_SPECIAL_1;
; 			if(Balanceval>3)
; 				g_vfd_grid_buffer[7] |=VFD_SPECIAL_2;
; 			if(Balanceval>4)
; 				g_vfd_grid_buffer[6] |=VFD_SPECIAL_1;
; 			if(Balanceval>5)
; 				g_vfd_grid_buffer[6] |=VFD_SPECIAL_2;
; 			
; 			g_vfd_grid_buffer[2] |=VFD_alpha_R;
; 			if(Balanceval<12)
; 				g_vfd_grid_buffer[3] |=VFD_SPECIAL_2|VK|VN;
; 			if(Balanceval<11)
; 				g_vfd_grid_buffer[3] |=VFD_SPECIAL_1;
; 			if(Balanceval<10)
; 				g_vfd_grid_buffer[4] |=VFD_SPECIAL_2;
; 			if(Balanceval<9)
; 				g_vfd_grid_buffer[4] |=VFD_SPECIAL_1;
; 			if(Balanceval<8)
; 				g_vfd_grid_buffer[5] |=VFD_SPECIAL_2;
; 			if(Balanceval<7)
; 				g_vfd_grid_buffer[5] |=VFD_SPECIAL_1;*/
; 	
; 		//	break;
; 
; 	/*
; 		case DISPLAY_LOUDNESS:
; 			//g_vfd_grid_buffer[9] |= VFD_alpha_L ; 
;     		//g_vfd_grid_buffer[8] |= VFD_alpha_O ; 
;     		//g_vfd_grid_buffer[7] |= VFD_alpha_U ; 
;     		//g_vfd_grid_buffer[6] |= VFD_alpha_D ;
;     		//Set_string("LOUD");
; 			if(Loudnessval)
;        		{
;       		    Set_String("3D ON");
; 				//g_vfd_grid_buffer[4] |= VFD_alpha_O; 
;    				//g_vfd_grid_buffer[3] |= VFD_alpha_N;
;    				//g_vfd_grid_buffer[2] |= VFD_alpha_F;
;        		}
; 			else
; 			{
; 			    Set_String("3D OFF");
; 				//g_vfd_grid_buffer[4] |= VFD_alpha_O; 
;    			//	g_vfd_grid_buffer[3] |= VFD_alpha_F;
;    			//	g_vfd_grid_buffer[2] |= VFD_alpha_F;
; 			}
; 			break;*/
; 	 case DISPLAY_TIMING:
; 	        Set_String("SLEEP"); 
	ldi R16,<L182
	ldi R17,>L182
	xcall _Set_String
	.dbline 670
;          	//g_vfd_grid_buffer[9] |= VFD_alpha_S ; 
;     		//g_vfd_grid_buffer[8] |= VFD_alpha_L ; 
;     		//g_vfd_grid_buffer[7] |= VFD_alpha_E ; 
;     		//g_vfd_grid_buffer[6] |= VFD_alpha_E ;
;     		//g_vfd_grid_buffer[5] |= VFD_alpha_P;
;        		value =( g_ui_timing_cnt/300);
	ldi R18,300
	ldi R19,1
	lds R17,_g_ui_timing_cnt+1
	lds R16,_g_ui_timing_cnt
	xcall div16u
	movw R22,R16
	.dbline 671
;        		if(g_ui_timing_cnt%300>10)
	ldi R18,300
	ldi R19,1
	lds R17,_g_ui_timing_cnt+1
	lds R16,_g_ui_timing_cnt
	xcall mod16u
	ldi R24,10
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brsh L183
	.dbline 672
;        			value++;
	subi R22,255  ; offset = 1
	sbci R23,255
L183:
	.dbline 673
; 			if(value==0)
	cpi R22,0
	cpc R22,R23
	brne L185
	.dbline 674
;        		{
	.dbline 675
;       		    g_vfd_grid_buffer[4] = VFD_alpha_O; 
	ldi R24,12579
	ldi R25,49
	sts _g_vfd_grid_buffer+8+1,R25
	sts _g_vfd_grid_buffer+8,R24
	.dbline 676
;    				g_vfd_grid_buffer[3] = VFD_alpha_F;
	ldi R24,4321
	ldi R25,16
	sts _g_vfd_grid_buffer+6+1,R25
	sts _g_vfd_grid_buffer+6,R24
	.dbline 677
;    				g_vfd_grid_buffer[2] = VFD_alpha_F;
	sts _g_vfd_grid_buffer+4+1,R25
	sts _g_vfd_grid_buffer+4,R24
	.dbline 678
;        		}
	xjmp L141
L185:
	.dbline 680
;        		else
;        		{
	.dbline 681
;        			display_digit(value);
	movw R16,R22
	xcall _display_digit
	.dbline 682
; 				g_vfd_grid_buffer[0] = VFD_LED_SLEEP;
	ldi R24,-32768
	ldi R25,-128
	sts _g_vfd_grid_buffer+1,R25
	sts _g_vfd_grid_buffer,R24
	.dbline 691
;        			
;        		//	radio_vfd = g_ui_timing_cnt%300;
;        		//	radio_vfd = radio_vfd/5;
;        		//	r2 = radio_vfd%10;
;        		//	r3 = radio_vfd/10;
;        		//	g_vfd_grid_buffer[3] |= num_xlate[r3];
; 	      	//	g_vfd_grid_buffer[2] |= num_xlate[r2];
; 
;        		}
	.dbline 692
;        		break;
	xjmp L141
L190:
	.dbline 694
; 		case DISPLAY_WELCOME:
; 	      switch(work_mode)
	lds R22,_work_mode
	clr R23
	cpi R22,1
	ldi R30,0
	cpc R23,R30
	brge X14
	xjmp L141
X14:
	ldi R24,4
	ldi R25,0
	cp R24,R22
	cpc R25,R23
	brge X15
	xjmp L141
X15:
	ldi R24,<L202
	ldi R25,>L202
	movw R30,R22
	sbiw R30,1
	lsl R30
	rol R31
	add R30,R24
	adc R31,R25
	lpm R0,Z+
	lpm R1,Z
	movw R30,R0
	ijmp
X9:
	.dbline 695
; 		  {
L194:
	.dbline 697
; 		   case TUNER_MODE:
; 		       Set_String(" TUNER");
	ldi R16,<L195
	ldi R17,>L195
	xcall _Set_String
	.dbline 698
; 			   break;
	xjmp L141
L196:
	.dbline 700
; 		   case AV1_MODE:
; 		       Set_String("   AV1");
	ldi R16,<L197
	ldi R17,>L197
	xcall _Set_String
	.dbline 701
; 			   break;
	xjmp L141
L198:
	.dbline 703
; 		   case AV2_MODE:
; 		       Set_String("   AV2");
	ldi R16,<L199
	ldi R17,>L199
	xcall _Set_String
	.dbline 704
; 			   break;
	xjmp L141
L200:
	.dbline 706
; 		   case AV3_MODE:
; 		       Set_String("   AV3");
	ldi R16,<L201
	ldi R17,>L201
	xcall _Set_String
	.dbline 707
; 			   break;
	.dbline 709
; 		  }
; 		  break;
	xjmp L141
L140:
	.dbline 711
; 	  default:
; 	  	   if(work_mode!=POWER_OFF_MODE)
	lds R24,_work_mode
	cpi R24,5
	breq L203
	.dbline 712
; 		   {
	.dbline 713
; 		   	g_vfd_grid_buffer[1] = num_xlate_left[Mchvol/10];//(Mchvolume-MAX_VOLUME)/10];
	ldi R18,10
	ldi R19,0
	lds R16,_Mchvol
	clr R17
	xcall div16s
	movw R30,R16
	lsl R30
	rol R31
	ldi R24,<_num_xlate_left
	ldi R25,>_num_xlate_left
	add R30,R24
	adc R31,R25
	lpm R0,Z+
	lpm R1,Z
	movw R30,R0
	sts _g_vfd_grid_buffer+2+1,R31
	sts _g_vfd_grid_buffer+2,R30
	.dbline 714
;    		    g_vfd_grid_buffer[1] |= num_xlate_right[Mchvol%10];//(Mchvolume-MAX_VOLUME)%10];
	ldi R18,10
	ldi R19,0
	lds R16,_Mchvol
	clr R17
	xcall mod16s
	movw R30,R16
	lsl R30
	rol R31
	ldi R24,<_num_xlate_right
	ldi R25,>_num_xlate_right
	add R30,R24
	adc R31,R25
	lpm R0,Z+
	lpm R1,Z
	movw R30,R0
	lds R3,_g_vfd_grid_buffer+2+1
	lds R2,_g_vfd_grid_buffer+2
	or R2,R30
	or R3,R31
	sts _g_vfd_grid_buffer+2+1,R3
	sts _g_vfd_grid_buffer+2,R2
	.dbline 716
L203:
	.dbline 716
;       
; 		   };
	.dbline 717
; 	       switch(work_mode)
	lds R22,_work_mode
	clr R23
	cpi R22,1
	ldi R30,0
	cpc R23,R30
	brge X16
	xjmp L141
X16:
	ldi R24,5
	ldi R25,0
	cp R24,R22

⌨️ 快捷键说明

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