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

📄 main.c

📁 单片机+ST013A+CH375读写U盘播放MP3
💻 C
📖 第 1 页 / 共 2 页
字号:
	       else
		   {   
		       if(i>=DCCHig)
			   {
			      if(!F_DC){
			      F_DC=1;				  
				  Data[0+3]=Data[1+3]=Data[2+3]=0xff;
				  LcdFlash1();
				  }
			   }
		   }
		   //***************************************显示电压数据
			   /*Data[0]=0;
			   for(;i>=100;i-=100){Data[0]+=0x10;}
			   for(;i>=10 ;i-=10 ){Data[0]++;}
			   Data[1]=i<<4;
			   LcdFlash();*/	
		   //****************************************
		}  	
		//-----------------------------------------------------		
        for(i=100;i!=0;i--){KeyRead();}//读取按键盘--按键和遥控器
		//-----------------------------------------------------
		if(F_Lrd)//遥控处理
		{
			F_Lrd=0;
			LrdDo();   
		}
		//-----------------------------------------------------
		if(F_Key)
		{
			//-----------------------------------------------------
			F_InDc=0;
			LightOn();
			KeySz();
			if(F_Key)
			{
			    KeyDo();				
			}
			LcdSetPlay(0);
			LcdFlash();	
			//-----------------------------------------------------
			CH375DiskConnect();  /* 查询U盘是插入 */
		    if( CH375DiskStatus == DISK_DISCONNECT ) goto USB_WATI;
			//-----------------------------------------------------
			if(F_Staty)
			if(F_Auto&&(!F_Key))
			{
			    F_Key=1;
				KeyBuf=0x24;				
				if(((CourntPath[6]&0xf)==9)&&(CourntPath[7]&0xf)==9)
				{
				    CourntPath[6]=CourntPath[7]=0;
				}				
			}						
			//------------------------------------------------------
		}	    
}}

//******************************************************************************
//******************************************************************************
void LrdDo(void)
{              
               /*20 10  25
			     19 9   24
				 17 7   22
				 16 6   21
				 18     23
				    08
				 12 11  13
				    02
				 01     15
				 
				 V+05   V-04
				 
				 
				 
			   /*if     (LrdKey==5 ){F_Key=1;KeyBuf=0x08;}//1
			   else if(LrdKey==10){F_Key=1;KeyBuf=0x17;}//2	
			   else if(LrdKey==15){F_Key=1;KeyBuf=0x09;}//3	
			   else if(LrdKey==20){F_Key=1;KeyBuf=0x11;}//4	
			   else if(LrdKey==25){F_Key=1;KeyBuf=0x20;}//5	
			   else if(LrdKey==4 ){F_Key=1;KeyBuf=0x15;}//6	
			   else if(LrdKey==9 ){F_Key=1;KeyBuf=0x14;}//7	
			   else if(LrdKey==14){F_Key=1;KeyBuf=0x06;}//8	
			   else if(LrdKey==19){F_Key=1;KeyBuf=0x18;}//9	
			   else if(LrdKey==3 ){F_Key=1;KeyBuf=0x12;}//0	
			   else if(LrdKey==8){F_Key=1;KeyBuf=0x21;}//OK	
			   else if(LrdKey==17)//手/自动
			   {
			        //F_Key=1;KeyBuf=0x14;
					if(F_Sys&=0x1)
					{
					   F_Sys&=0xfe;
					   LcdSetHand(0);		            
		               WriteSys();		  
		               LcdFlash();
		               F_Auto=0;
					}
					else
					{
					   F_Sys|=1;
					   LcdSetHand(1);		            
		               WriteSys();		  
		               LcdFlash();
		               F_Auto=1;
					}
			   }
			   else if(LrdKey==24) {F_Key=1;KeyBuf=0x23;}//X	
			   else if(LrdKey==13)//AB
			   {
			        //F_Key=1;KeyBuf=0x17;
					if(F_Sys&=0x2)
					{
					   F_Key=1;KeyBuf=0x02;
					}
					else
					{
					   F_Key=1;KeyBuf=0x05;				
					}
			   }	
			   else if(LrdKey==2 ){F_Key=1;KeyBuf=0x07;}//快退
			   else if(LrdKey==23){F_Key=1;KeyBuf=0x16;}//PUSH	
			   else if(LrdKey==1 ){F_Key=1;KeyBuf=0x22;}//重复	
			   else if(LrdKey==22){F_Key=1;KeyBuf=0x24;}//下
			   else if(LrdKey==12){F_Key=1;KeyBuf=0x13;}//快进	
			   else if(LrdKey==18){F_Key=1;KeyBuf=0x03;}//上	
			   //else if(LrdKey==0x15){F_Key=1;KeyBuf=0x14;}			   
			   else if(LrdKey==11){F_Key=1;KeyBuf=0x01;}//VOL-	
			   //else if(LrdKey==0x17){F_Key=1;KeyBuf=0x17;}	
			   else if(LrdKey==6 ){F_Key=1;KeyBuf=0x04;}//VOL+
			   
			   */
			   
			   //Data[0]=(LrdKey/10)<<4;
			   //Data[0]|=LrdKey%10;
			   //LcdFlash();
			   
			   
			   if     (LrdKey==20){F_Key=1;KeyBuf=0x08;}//1
			   else if(LrdKey==10){F_Key=1;KeyBuf=0x17;}//2	
			   else if(LrdKey==25){F_Key=1;KeyBuf=0x09;}//3	
			   else if(LrdKey==19){F_Key=1;KeyBuf=0x11;}//4	
			   else if(LrdKey==9) {F_Key=1;KeyBuf=0x20;}//5	
			   else if(LrdKey==24){F_Key=1;KeyBuf=0x15;}//6	
			   else if(LrdKey==17){F_Key=1;KeyBuf=0x14;}//7	
			   else if(LrdKey==7) {F_Key=1;KeyBuf=0x06;}//8	
			   else if(LrdKey==22){F_Key=1;KeyBuf=0x18;}//9	
			   else if(LrdKey==6) {F_Key=1;KeyBuf=0x12;}//0	
			   else if(LrdKey==21){F_Key=1;KeyBuf=0x21;}//OK	
			   else if(LrdKey==01)//手/自动
			   {
			        //F_Key=1;KeyBuf=0x14;
					if(F_Sys&=0x1)
					{
					   F_Sys&=0xfe;
					   LcdSetHand(0);		            
		               WriteSys();		  
		               LcdFlash();
		               F_Auto=0;
					}
					else
					{
					   F_Sys|=1;
					   LcdSetHand(1);		            
		               WriteSys();		  
		               LcdFlash();
		               F_Auto=1;
					}
			   }
			   else if(LrdKey==16) {F_Key=1;KeyBuf=0x23;}//X	
			   else if(LrdKey==18)//AB
			   {
			        //F_Key=1;KeyBuf=0x17;
					if(F_Sys&=0x2)
					{
					   F_Key=1;KeyBuf=0x02;
					}
					else
					{
					   F_Key=1;KeyBuf=0x05;				
					}
			   }	
			   else if(LrdKey==12){F_Key=1;KeyBuf=0x07;}//快退
			   else if(LrdKey==23){F_Key=1;KeyBuf=0x16;}//PUSH	
			   else if(LrdKey==15){F_Key=1;KeyBuf=0x22;}//重复	
			   else if(LrdKey==2){F_Key=1;KeyBuf=0x24;}//下
			   else if(LrdKey==13){F_Key=1;KeyBuf=0x13;}//快进	
			   else if(LrdKey==8){F_Key=1;KeyBuf=0x03;}//上	
			   //else if(LrdKey==0x15){F_Key=1;KeyBuf=0x14;}			   
			   else if(LrdKey==5){F_Key=1;KeyBuf=0x01;}//VOL-	
			   //else if(LrdKey==0x17){F_Key=1;KeyBuf=0x17;}	
			   else if(LrdKey==4){F_Key=1;KeyBuf=0x04;}//VOL+
			   
}			   			   
//******************************************************************************
//******************************************************************************
unsigned char TestPow(void)
{
     unsigned char a;
	 unsigned int  d=0;
	 
     ADMUX=0xe6;
	 for(a=40;a!=0;a--){}	 
	 ADCSRA =0x84;
	 ADCSRA|=0x40;
	 while(!(ADCSRA&0x40)){}
	 
	 for(a=4;a!=0;a--)
	 {
	    ADCSRA|=0x40;
	    while(!(ADCSRA&0x40)){}
		d+=ADCH;
	 }
	 d>>=2;
	 a=d%256;
	 return(a);
}

void KeySz(void)//数字键处理
{
    
}
//******************************************************************************
//******************************************************************************
void KeyDo(void)//其它按键处理
{
     unsigned char i,s;
     if     (KeyBuf==0x21)//OK
	 {	    
	    if     (KeyDownNoub==1)
		{		   
		     STA013StopDec();  
		     KeyDownNoub=0;Mp3Start=0;
			 Data[0]=0xff;
			 Data[1]=0xf0;			
			 Data[2]=ListPathSave[0];
			 LcdFlash();
			 F_Key=0;			 
			 for(i=0;i<9;i++){ListPath[i]=CourntPath[i];}
			 ListPath[6]=ListPath[7]=0;
			 ListPath[8]=ListPathSave[0];
			 
			 
			 if(ListFile(0)==ERR_SUCCESS)			
			 {			     
				 CourntPath[6]=ListPath[6];
				 CourntPath[7]=ListPath[7];
				 CourntPath[8]=ListPath[8];
				 mDecoder();
			 }
			 else
			 {
			     Data[0]=0xff;
				 Data[1]=0xa0;					 		 
				 Data[2]=0xff;
				 LcdFlash();			 
			 }
			 			 			 
		}
		else if(KeyDownNoub==2)
		{		     
		     STA013StopDec();
		     KeyDownNoub=0;Mp3Start=0;
			 Data[0]=0xff;
			 Data[1]=0xf0;
			 Data[2] =ListPathSave[0]<<4;
			 Data[2]|=ListPathSave[1];
			 LcdFlash();	
			 F_Key=0;	
			 for(i=0;i<9;i++){ListPath[i]=CourntPath[i];}
			 ListPath[6]=0;
			 ListPath[7]=ListPathSave[0];
			 ListPath[8]=ListPathSave[1];
			 if(ListFile(0)==ERR_SUCCESS)
			 {			     
				 CourntPath[6]=ListPath[6];
				 CourntPath[7]=ListPath[7];
				 CourntPath[8]=ListPath[8];
				 mDecoder();
			 }
			 else
			 {
			     Data[0]=0xff;
				 Data[1]=0xa0;
				 Data[2]=0xff;
				 LcdFlash();			 
			 }	
			 			 
		}
		else if(KeyDownNoub==3)
		{		     
		     STA013StopDec();
		     KeyDownNoub=0;Mp3Start=0;
			 Data[0]=0xff;
			 Data[1]=0xf0|ListPathSave[0];
			 Data[2]=ListPathSave[1]<<4;
			 Data[2]|=ListPathSave[2];
			 LcdFlash();	
			 F_Key=0;	
			 for(i=0;i<9;i++){ListPath[i]=CourntPath[i];}
			 ListPath[6]=ListPathSave[0];
			 ListPath[7]=ListPathSave[1];
			 ListPath[8]=ListPathSave[2];
			 if(ListFile(0)==ERR_SUCCESS)
			 {			     
				 CourntPath[6]=ListPath[6];
				 CourntPath[7]=ListPath[7];
				 CourntPath[8]=ListPath[8];
				 mDecoder();
			 }
			 else
			 {
			     Data[0]=0xff;
				 Data[1]=0xa0;
				 Data[2]=0xff;
				 LcdFlash();			 
			 }	
			  			 
		}
		else if(KeyDownNoub==6)
		{		     
		     F_Rep=0;
		     STA013StopDec();
		     KeyDownNoub=0;Mp3Start=0;	
			 F_Key=0;	
			 for(i=0;i<9;i++){ListPath[i]=ListPathSave[i];}
			 
			 i=ListFile(1);
			 if(i==ERR_SUCCESS)
			 {
			     for(i=0;i<6;i++){CourntPath[i]=ListPathSave[i];}
				 CourntPath[8]=0;CourntPath[6]=0;CourntPath[7]=0;
				 Data[0]=0xff;
				 Data[1]=0xf0;
				 Data[2]=0x00;	
				 LcdFlash();	
				 i=CH375FileClose();				 
				 WriteSet();	
				 
				 if(ListFile(0)==ERR_SUCCESS){mDecoder();}//	 
				 return;
			 }
			 else
			 {
			     Data[0]=0xff;
				 //Data[1]=0x00;		
				 //Data[1]=i;	
				 Data[1]=0xa0;			 
				 Data[2]=0xff;
				 LcdFlash();			 
			 }
			 			  		
		}		
	 }
	 else if(KeyBuf==0x23)//X
	 {
	    F_Key=0;
	    KeyDownNoub=0;
		Data[0]=0xff;Data[1]=0xff;
		Data[2] =CourntPath[6]<<4;
		Data[2]|=CourntPath[7];
		LcdFlash(); 
		
	 }	 
	 else if(KeyBuf==0x03)//上
	 {
	    F_Key=0;
		F_Rep=0;
		STA013StopDec();  
		KeyDownNoub=0;Mp3Start=0;
		
		
		for(s=201;s!=0;s--)
		{
		//if(((CourntPath[6]&0xf)!=0)  || (CourntPath[7]&0xf)!=0)
		//{
		  CourntPath[8]&=0xf;
		  if(CourntPath[8])
		  {
		      CourntPath[8]--;
			  if((CourntPath[8]==0)&&(CourntPath[7]==0)&&(CourntPath[6]==0))
			  {
			     CourntPath[6]=2;
			  }
		  }
		  else                 
		  {  
		    CourntPath[8]=9;
		    CourntPath[7]&=0xf;
		    if(CourntPath[7]){CourntPath[7]--;}
			else                 
			{
			    CourntPath[7]=9;
				CourntPath[6]&=0xf;				
				if(CourntPath[6]==0){CourntPath[6]=2;CourntPath[8]=0;CourntPath[7]=0;}
				else{CourntPath[6]--;}
			}
		  }
			Data[0]=0xff;
			Data[1]=0xf0|CourntPath[6];		
		    Data[2] =CourntPath[7]<<4;
		    Data[2]|=CourntPath[8];
		    LcdFlash();
			
			 for(i=0;i<9;i++){ListPath[i]=CourntPath[i];}			 
			 if(ListFile(0)==ERR_SUCCESS)
			 {	 
				 mDecoder();
				 return;				 
			 }
			 else
			 {
			     Data[0]=0xff;
				 Data[1]=0x00;
				 Data[2]=0xff;
				 LcdFlash();			 
			 }				
		//}
		}
	 }
	 else if(KeyBuf==0x22)//重复
	 {
	    F_Key=0;		
		F_Rep=1;
		
		while(F_Rep)
		{
		     STA013StopDec();  
		     KeyDownNoub=0;Mp3Start=0;
			
			 		
			 Data[0]=0xff;
			 Data[1]=0xf0|CourntPath[6];		
		     Data[2] =CourntPath[7]<<4;
		     Data[2]|=CourntPath[8];
		     LcdFlash();				 
			 
			 for(i=0;i<9;i++){ListPath[i]=CourntPath[i];}			 
			 if(ListFile(0)==ERR_SUCCESS)
			 {	    
				 mDecoder();
				 if(F_Key){return;}
			 }
			 else
			 {
			     Data[0]=0xff;
				 Data[1]=0x00;
				 Data[2]=0xff;
				 LcdFlash();	
				 F_Rep=0;
				 return;		 
			 }
		} 
	 }
	 else if(KeyBuf==0x24)//下
	 {
		 F_Key=0;
		 F_Rep=0;
		 STA013StopDec();  
		 KeyDownNoub=0;Mp3Start=0;
		 
		 
		 
		 for(s=201;s!=0;s--){		 
		 
		 CourntPath[8]&=0xf;
		 CourntPath[8]++;
		 if(CourntPath[6]==2){CourntPath[6]=0;CourntPath[7]=0;CourntPath[8]=0;}
		 if(CourntPath[8]>9)
		 {
		    CourntPath[8]=0;
		    CourntPath[7]&=0xf;
		    CourntPath[7]++;
		    if(CourntPath[7]>9)
		    {
		       CourntPath[7]=0;
			   CourntPath[6]&=0xf;
			   CourntPath[6]++;
			   if(CourntPath[6]>2)
			   {
			       CourntPath[6]=CourntPath[7]=0;
				   CourntPath[8]=1;
			   }
		    }
		  }  
			Data[0]=0xff;
			Data[1]=0xf0|CourntPath[6];		
		    Data[2] =CourntPath[7]<<4;
		    Data[2]|=CourntPath[8];
		    LcdFlash();
			
			 for(i=0;i<9;i++){ListPath[i]=CourntPath[i];}			 
			 if(ListFile(0)==ERR_SUCCESS)
			 {	 
				 mDecoder();	
				 return;			 
			 }
			 else
			 {
			     Data[0]=0xff;
				 Data[1]=0x00;
				 Data[2]=0xff;
				 LcdFlash();			 
			 }
		}
	 }
	 //--------------------------------------
	 else if(KeyBuf==1)//VOL+
	 {
	      F_Key=0;
	 }
	 else if(KeyBuf==4)//VOL-
	 {
	      F_Key=0;
	 }
	 else if(KeyBuf==7)//快退
	 {
	      F_Key=0;
	 }
	 else if(KeyBuf==0x13)//快进
	 {
	      F_Key=0;
	 }	
	 else if(KeyBuf==0x16)//PUSH
	 {
	      F_Key=0;		  
	 } 
	 //--------------------------------------
	 else if(KeyBuf==0x19)//手动
	 {
	      F_Key=0;
		  LcdSetHand(0);
		  F_Sys&=0xfe;
		  WriteSys();
		  LcdFlash();
		  F_Auto=0;
	 }
	 else if(KeyBuf==0x10)//自动
	 {
	      F_Key=0;
		  LcdSetHand(1);
		  F_Sys|=0x01;
		  WriteSys();	
		  LcdFlash();
		  F_Auto=1;	  
	 }
	 else if(KeyBuf==0x2)//A
	 {
	      F_Key=0;
		  LcdSetAB(0);
		  F_Sys&=0xfd;
		  //WriteSys();		  
		  LcdFlash();
		  F_AB=0;
		  LED_Hig();
		  F_Key=1;
		  KeyBuf=0x22;		  
	 }
	 else if(KeyBuf==0x5)//B
	 {
	      F_Key=0;
		  LcdSetAB(1);
		  F_Sys|=0x02;
		  //WriteSys();
		  LcdFlash();
		  F_AB=1;	
		  LED_Low();	
		  F_Key=1;
		  KeyBuf=0x22;		  		    
	 }	 
}
//******************************************************************************
//******************************************************************************

⌨️ 快捷键说明

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