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

📄 at980.lst

📁 sunplus spca514 cdmp3 源码
💻 LST
📖 第 1 页 / 共 5 页
字号:
    04AC E031      LDI	R19,1
    04AD 940E1BD1  CALL	0x1BD1
    04AF 01B8      MOVW	R22,R16
(0670)        		if(g_ui_timing_cnt%300>10)
    04B0 E22C      LDI	R18,0x2C
    04B1 E031      LDI	R19,1
    04B2 940E1BD8  CALL	0x1BD8
    04B4 E08A      LDI	R24,0xA
    04B5 E090      LDI	R25,0
    04B6 1780      CP	R24,R16
    04B7 0791      CPC	R25,R17
    04B8 F410      BCC	0x04BB
(0671)        			value++;
    04B9 5F6F      SUBI	R22,0xFF
    04BA 4F7F      SBCI	R23,0xFF
(0672) 			if(value==0)
    04BB 3060      CPI	R22,0
    04BC 0767      CPC	R22,R23
    04BD F459      BNE	0x04C9
(0673)        		{
(0674)       		    g_vfd_grid_buffer[4] = VFD_alpha_O; 
    04BE E283      LDI	R24,0x23
    04BF E391      LDI	R25,0x31
    04C0 940E1CE1  CALL	0x1CE1
(0675)    				g_vfd_grid_buffer[3] = VFD_alpha_F;
    04C2 EE81      LDI	R24,0xE1
    04C3 E190      LDI	R25,0x10
    04C4 940E1AD9  CALL	0x1AD9
    04C6 940E1B13  CALL	0x1B13
(0676)    				g_vfd_grid_buffer[2] = VFD_alpha_F;
(0677)        		}
    04C8 C085      RJMP	0x054E
(0678)        		else
(0679)        		{
(0680)        			display_digit(value);
    04C9 018B      MOVW	R16,R22
    04CA DD5D      RCALL	_display_digit
(0681) 				g_vfd_grid_buffer[0] = VFD_LED_SLEEP;
    04CB E080      LDI	R24,0
    04CC E890      LDI	R25,0x80
    04CD 940E1C6A  CALL	0x1C6A
(0682)        			
(0683)        		//	radio_vfd = g_ui_timing_cnt%300;
(0684)        		//	radio_vfd = radio_vfd/5;
(0685)        		//	r2 = radio_vfd%10;
(0686)        		//	r3 = radio_vfd/10;
(0687)        		//	g_vfd_grid_buffer[3] |= num_xlate[r3];
(0688) 	      	//	g_vfd_grid_buffer[2] |= num_xlate[r2];
(0689) 
(0690)        		}
(0691)        		break;
    04CF C07E      RJMP	0x054E
(0692) 		case DISPLAY_WELCOME:
(0693) 	      switch(work_mode)
    04D0 91600148  LDS	R22,0x148
    04D2 2777      CLR	R23
    04D3 3061      CPI	R22,1
    04D4 E0E0      LDI	R30,0
    04D5 077E      CPC	R23,R30
    04D6 F40C      BGE	0x04D8
    04D7 C076      RJMP	0x054E
    04D8 E084      LDI	R24,4
    04D9 E090      LDI	R25,0
    04DA 1786      CP	R24,R22
    04DB 0797      CPC	R25,R23
    04DC F40C      BGE	0x04DE
    04DD C070      RJMP	0x054E
    04DE EB80      LDI	R24,0xB0
    04DF E090      LDI	R25,0
    04E0 01FB      MOVW	R30,R22
    04E1 9731      SBIW	R30,1
    04E2 940E1AA8  CALL	<created procedures>
    04E4 9409      IJMP
(0694) 		  {
(0695) 		   case TUNER_MODE:
(0696) 		       Set_String(" TUNER");
    04E5 E705      LDI	R16,0x75
    04E6 E010      LDI	R17,0
    04E7 D0A0      RCALL	_Set_String
(0697) 			   break;
    04E8 C065      RJMP	0x054E
(0698) 		   case AV1_MODE:
(0699) 		       Set_String("   AV1");
    04E9 E60E      LDI	R16,0x6E
    04EA E010      LDI	R17,0
    04EB D09C      RCALL	_Set_String
(0700) 			   break;
    04EC C061      RJMP	0x054E
(0701) 		   case AV2_MODE:
(0702) 		       Set_String("   AV2");
    04ED E607      LDI	R16,0x67
    04EE E010      LDI	R17,0
    04EF D098      RCALL	_Set_String
(0703) 			   break;
    04F0 C05D      RJMP	0x054E
(0704) 		   case AV3_MODE:
(0705) 		       Set_String("   AV3");
    04F1 E600      LDI	R16,0x60
    04F2 E010      LDI	R17,0
    04F3 D094      RCALL	_Set_String
(0706) 			   break;
(0707) 		  }
(0708) 		  break;
    04F4 C059      RJMP	0x054E
(0709) 	  default:
(0710) 	  	   if(work_mode!=POWER_OFF_MODE)
    04F5 91800148  LDS	R24,0x148
    04F7 3085      CPI	R24,5
    04F8 F151      BEQ	0x0523
(0711) 		   {
(0712) 		   	g_vfd_grid_buffer[1] = num_xlate_left[Mchvol/10];//(Mchvolume-MAX_VOLUME)/10];
    04F9 E02A      LDI	R18,0xA
    04FA E030      LDI	R19,0
    04FB 9100014F  LDS	R16,0x14F
    04FD 2711      CLR	R17
    04FE 940E19A0  CALL	div16s
    0500 01F8      MOVW	R30,R16
    0501 0FEE      LSL	R30
    0502 1FFF      ROL	R31
    0503 E986      LDI	R24,0x96
    0504 E091      LDI	R25,1
    0505 940E1AB0  CALL	0x1AB0
    0507 93F0019C  STS	R31,_g_vfd_grid_buffer+3
    0509 93E0019B  STS	R30,_g_vfd_grid_buffer+2
(0713)    		    g_vfd_grid_buffer[1] |= num_xlate_right[Mchvol%10];//(Mchvolume-MAX_VOLUME)%10];
    050B E02A      LDI	R18,0xA
    050C E030      LDI	R19,0
    050D 9100014F  LDS	R16,0x14F
    050F 2711      CLR	R17
    0510 940E199E  CALL	mod16s
    0512 01F8      MOVW	R30,R16
    0513 0FEE      LSL	R30
    0514 1FFF      ROL	R31
    0515 EA8A      LDI	R24,0xAA
    0516 E091      LDI	R25,1
    0517 940E1AB0  CALL	0x1AB0
    0519 9030019C  LDS	R3,_g_vfd_grid_buffer+3
    051B 9020019B  LDS	R2,_g_vfd_grid_buffer+2
    051D 2A2E      OR	R2,R30
    051E 2A3F      OR	R3,R31
    051F 9230019C  STS	R3,_g_vfd_grid_buffer+3
    0521 9220019B  STS	R2,_g_vfd_grid_buffer+2
(0714)       
(0715) 		   };
(0716) 	       switch(work_mode)
    0523 91600148  LDS	R22,0x148
    0525 2777      CLR	R23
    0526 3061      CPI	R22,1
    0527 E0E0      LDI	R30,0
    0528 077E      CPC	R23,R30
    0529 F40C      BGE	0x052B
    052A C023      RJMP	0x054E
    052B 940E1CDC  CALL	0x1CDC
    052D F104      BLT	0x054E
    052E EB88      LDI	R24,0xB8
    052F E090      LDI	R25,0
    0530 01FB      MOVW	R30,R22
    0531 9731      SBIW	R30,1
    0532 940E1AA8  CALL	<created procedures>
    0534 9409      IJMP
(0717) 		   {
(0718) 		    case TUNER_MODE:
(0719) 			     tuner_display();
    0535 DD15      RCALL	_tuner_display
(0720) 			     break;
    0536 C017      RJMP	0x054E
(0721) 			case TAPE_MODE:
(0722) 			     Set_String("   AV1");
    0537 E60E      LDI	R16,0x6E
    0538 E010      LDI	R17,0
    0539 D04E      RCALL	_Set_String
(0723) 			     break;
    053A C013      RJMP	0x054E
(0724) 			case AV2_MODE:
(0725) 			    Set_String("   AV2");
    053B E607      LDI	R16,0x67
    053C E010      LDI	R17,0
    053D D04A      RCALL	_Set_String
(0726) 				break;
    053E C00F      RJMP	0x054E
(0727) 			case AV3_MODE:
(0728) 			     Set_String("   AV3");
    053F E600      LDI	R16,0x60
    0540 E010      LDI	R17,0
    0541 D046      RCALL	_Set_String
(0729) 				 break;
    0542 C00B      RJMP	0x054E
(0730) 			case POWER_OFF_MODE:
(0731) 			#ifdef CLOCK_STANDBY
(0732) 			   g_vfd_grid_buffer[7] = num_trans(time_val[0]/10);
(0733) 		   	   g_vfd_grid_buffer[6] = (num_trans(time_val[0]%10)|VFD_LED_COL);
(0734) 		 	   g_vfd_grid_buffer[5] = num_trans(time_val[1]/10);
(0735) 		 	   g_vfd_grid_buffer[4] = (num_trans(time_val[1]%10)|VFD_LED_COL);
(0736) 		       g_vfd_grid_buffer[3] = num_trans(time_val[2]/10);
(0737) 			   g_vfd_grid_buffer[2] = num_trans(time_val[2]%10);
(0738) 			 #endif
(0739) 			   //Set_FS1_H();
(0740) 			   //Set_FS2_H(); 
(0741)     		   muted = 1;
    0543 940E1B8B  CALL	0x1B8B
    0545 940E1B05  CALL	0x1B05
(0742) 			   MCU_mute();
(0743) 			   delay_ms(100);
(0744) 			   led_val = 0x01;
    0547 E081      LDI	R24,1
    0548 93800141  STS	R24,0x141
(0745) 			   decoder_power_off();
    054A 2700      CLR	R16
    054B 2711      CLR	R17
    054C D0CE      RCALL	_DEC_power
    054D 0000      NOP
(0746) 			   break;
(0747) 		   }
(0748) 		   break;
(0749) 
(0750) 		
(0751)    }
(0752)   
(0753)  };	
(0754)   if(work_mode != POWER_OFF_MODE)
    054E 91800148  LDS	R24,0x148
    0550 3085      CPI	R24,5
    0551 F0D1      BEQ	0x056C
(0755)   {
(0756)    	if(muted)
    0552 90200242  LDS	R2,_muted
    0554 2022      TST	R2
    0555 F049      BEQ	0x055F
(0757)       g_vfd_grid_buffer[7] |= VFD_LED_MUTE;
    0556 919001A8  LDS	R25,0x1A8
    0558 918001A7  LDS	R24,0x1A7
    055A 6490      ORI	R25,0x40
    055B 939001A8  STS	R25,0x1A8
    055D 938001A7  STS	R24,0x1A7
(0758)    	if(g_ui_timing_cnt)
    055F 90300198  LDS	R3,_g_ui_timing_cnt+1
    0561 90200197  LDS	R2,_g_ui_timing_cnt
    0563 2022      TST	R2
    0564 F411      BNE	0x0567
    0565 2033      TST	R3
    0566 F029      BEQ	0x056C
(0759) 	   g_vfd_grid_buffer[0] |= VFD_LED_SLEEP;
    0567 940E1D31  CALL	0x1D31
    0569 6890      ORI	R25,0x80
    056A 940E1C6A  CALL	0x1C6A
(0760) 	 //if(g_tape_s.pstate==TAPE_FWD_REC)
(0761) 	   //g_vfd_grid_buffer[10] |= VFD_LED_REC;
(0762)    };
(0763)  VFD_LL_SetGrid();				 
    056C 940E133E  CALL	_VFD_LL_SetGrid
(0764)  for(i=0; i<VFD_BUFFER_SIZE; i++)
    056E 2744      CLR	R20
    056F C00F      RJMP	0x057F
(0765)  {
(0766)   VFD_LL_WriteDisplayRAM( i, g_vfd_grid_buffer[i]);
    0570 E989      LDI	R24,0x99
    0571 E091      LDI	R25,1
    0572 2FE4      MOV	R30,R20
    0573 27FF      CLR	R31
    0574 940E1AB6  CALL	0x1AB6
    0576 8120      LDD	R18,0+Z
    0577 8131      LDD	R19,1+Z
    0578 2F04      MOV	R16,R20
    0579 2711      CLR	R17
    057A 940E1366  CALL	_VFD_LL_WriteDisplayRAM
    057C 940E1C85  CALL	0x1C85
(0767)  
(0768)  VFD_LL_RefreshLED(led_val);
(0769)  #ifdef MORE_THAN_16SEGMENT
(0770)   VFD_LL_WriteExtDisplayRAM(i,g_vfd_grid_ext_buffer[i]);
(0771)  #endif
(0772)  };
    057E 9543      INC	R20
    057F 304C      CPI	R20,0xC
    0580 F378      BCS	0x0570
(0773)  VFD_LL_SetDim(0x0f);
    0581 E00F      LDI	R16,0xF
    0582 E010      LDI	R17,0
    0583 940E1333  CALL	_VFD_LL_SetDim
(0774) }
    0585 940E1A18  CALL	pop_gset2
    0587 9508      RET
_Set_String:
  pos                  --> R20
  str                  --> R16
    0588 940E19F5  CALL	push_gset1
(0775) 
(0776) unsigned char Set_String(unsigned char *str)
(0777) {
(0778) //	int position;
(0779) //	int counter = 0;
(0780) 	int pos;
(0781) //	int letter_index;
(0782) 
(0783) 	for(pos = 9; pos > 1; pos--)
    058A E049      LDI	R20,0x9
    058B E050      LDI	R21,0
(0784) 	{
(0785) 		if (*str)
    058C 01F8      MOVW	R30,R16
    058D 8020      LDD	R2,0+Z
    058E 2022      TST	R2
    058F F409      BNE	0x0591
    0590 C05A      RJMP	0x05EB
(0786) 		{
(0787) 			if ( ((*str)>='A') && ((*str)<='Z'))
    0591 2433      CLR	R3
    0592 01C1      MOVW	R24,R2
    0593 3481      CPI	R24,0x41
    0594 E0E0      LDI	R30,0
    0595 079E      CPC	R25,R30
    0596 F084      BLT	0x05A7
    0597 E58A      LDI	R24,0x5A
    0598 E090      LDI	R25,0
    0599 1582      CP	R24,R2
    059A 0593      CPC	R25,R3
    059B F05C      BLT	0x05A7
(0788) 			{
(0789) 				g_vfd_grid_buffer[pos] =  vfd_alpha[(*str)-'A'];
    059C EB8E      LDI	R24,0xBE
    059D E091      LDI	R25,1
    059E 2DE2      MOV	R30,R2
    059F 27FF      CLR	R31
    05A0 54E1      SUBI	R30,0x41
    05A1 40F0      SBCI	R31,0
    05A2 940E1AA8  CALL	<created procedures>
    05A4 940E1BA2  CALL	0x1BA2
(0790) 			}
    05A6 C041      RJMP	0x05E8
(0791) 			else if ( (*str) == '-' )
    05A7 01F8      MOVW	R30,R16
    05A8 8180      LDD	R24,0+Z
    05A9 328D      CPI	R24,0x2D
    05AA F451      BNE	0x05B5
(0792) 			{
(0793) 				g_vfd_grid_buffer[pos] =  VFD_alpha_DASH;
    05AB E989      LDI	R24,0x99
    05AC E091      LDI	R25,1
    05AD 01FA      MOVW	R30,R20
    05AE 940E1AB6  CALL	0x1AB6
    05B0 E080      LDI	R24,0
    05B1 E290      LDI	R25,0x20
    05B2 8380      STD	R24,0+Z
    05B3 8391      STD	R25,1+Z
(0794) 			}
    05B4 C033      RJMP	0x05E8
(0795) 			else if ( ((*str)>='0') && ((*str)<='9'))
    05B5 01F8      MOVW	R30,R16
    05B6 8020      LDD	R2,0+Z
    05B7 2433      CLR	R3
    05B8 01C1      MOVW	R24,R2
    05B9 3380      CPI	R24,0x30
    05BA E0E0      LDI	R30,0
    05BB 079E      CPC	R25,R30
    05BC F07C      BLT	0x05CC
    05BD E389      LDI	R24,0x39
    05BE E090      LDI	R25,0
    05BF 1582      CP	R24,R2
    05C0 0593      CPC	R25,R3
    05C1 F054      BLT	0x05CC
(0796) 			{
(0797) 
(0798) 				g_vfd_grid_buffer[pos] =  num_xlate[(*str)-'0'];
    05C2 E882      LDI	R24,0x82
    05C3 E091      LDI	R25,1
    05C4 2DE2      MOV	R30,R2
    05C5 27FF      CLR	R31
    05C6 97F0      SBIW	R30,0x30
    05C7 940E1AA8  CALL	<created procedures>
    05C9 940E1BA2  CALL	0x1BA2
(0799) 			}
    05CB C01C      RJMP	0x05E8
(0800) 	        else if((*str)=='*')
    05CC 01F8      MOVW	R30,R16
    05CD 8180      LDD	R24,0+Z
    05CE 328A      CPI	R24,0x2A
    05CF F451      BNE	0x05DA
(0801) 			{
(0802) 			   g_vfd_grid_buffer[pos] = VFD_alpha_aster;
    05D0 E989      LDI	R24,0x99
    05D1 E091      LDI	R25,1
    05D2 01FA      MOVW	R30,R20
    05D3 940E1AB6  CALL	0x1AB6
    05D5 ED8C      LDI	R24,0xDC
    05D6 E09E      LDI	R25,0xE
    05D7 8380      STD	R24,0+Z
    05D8 8391      STD	R25,1+Z
(0803) 			}
    05D9 C00E      RJMP	0x05E8
(0804) 			else if((*str)==0x0D)
    05DA 01F8      MOVW	R30,R16
    05DB 8180      LDD	R24,0+Z
    05DC 308D      CPI	R24,0xD
    05DD F419      BNE	0x05E1
(0805) 			  return 0;
    05DE 2700      CLR	R16
    05DF 2711      CLR	R17
    05E0 C017      RJMP	0x05F8
(0806) 			else if((*str)==0x0A)
    05E1 01F8      MOVW	R30,R16
    05E2 8180      LDD	R24,0+Z
    05E3 308A      CPI	R24,0xA
    05E4 F419      BNE	0x05E8
(0807) 			  return 1;
    05E5 E001      LDI	R16,1
    05E6 E010      LDI	R17,0
    05E7 C010      RJMP	0x05F8
(0808) 			str++;
    05E8 5F0F      SUBI	R16,0xFF
    05E9 4F1F      SBCI	R17,0xFF
(0809) 
(0810) 		}
    05EA C003      RJMP	0x05EE
(0811) 		else

⌨️ 快捷键说明

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