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

📄 data_disposal.c

📁 此程序位单片机应用程序
💻 C
📖 第 1 页 / 共 2 页
字号:
					 	  source_entrails_exterior();									//选择相应的外部音源
						  source_61510();												//61510做最终音源选择

					 }
					 
					 else report();
					 
				 }
			 series_sign_type=5;
			 break;
			 
             /**************************外部音源2***********************/
 			 case 12:				//外部音源2
				 {
					 if (source_old[0]!=0)
					 {
					     
						 source_state[1]=(source_state[1]&(~(0x01<<(source_old[0]-1))));//清除原先占用状态记录					 
					 
					 }												                    //

					 if ((source_state[1]|0x02)-source_state[1]>0)                      //若音源占用状态表明没被占用&-与,|-或,^-异或,~-求反
					{	  
						  source_state[1]=(source_state[1]|0x02);						//改写音源占用状态
					 	  source_entrails_exterior();									//选择相应的外部音源
						  source_61510();												//61510做最终音源选择

					 }
					 
					 else report();
					 
				 }
			 series_sign_type=5;
			 break;
			 
             /****************外部音源3***********************/
 			 case 13:				//外部音源3
				 {
					 if (source_old[0]!=0)
					 {
					     
						 source_state[1]=(source_state[1]&(~(0x01<<(source_old[0]-1))));//清除原先占用状态记录					 
					 
					 }												                    //

					 if ((source_state[1]|0x04)-source_state[1]>0)                      //若音源占用状态表明没被占用&-与,|-或,^-异或,~-求反
					{	  
						  source_state[1]=(source_state[1]|0x04);						//改写音源占用状态
					 	  source_entrails_exterior();									//选择相应的外部音源
						  source_61510();												//61510做最终音源选择

					 }
					 
					 else report();
					 
				 }
			 series_sign_type=5;
			 break;	
			 
             /***********************外部音源4***********************/
 			 case 14:				//外部音源4
				 {
					 if (source_old[0]!=0)
					 {
					     
						 source_state[1]=(source_state[1]&(~(0x01<<(source_old[0]-1))));//清除原先占用状态记录					 
					 
					 }												                    //

					 if ((source_state[1]|0x08)-source_state[1]>0)                      //若音源占用状态表明没被占用&-与,|-或,^-异或,~-求反
					{	  
						  source_state[1]=(source_state[1]|0x08);						//改写音源占用状态
					 	  source_entrails_exterior();									//选择相应的外部音源
						  source_61510();												//61510做最终音源选择

					 }
					 
					 else report();
					 
				 }
			 series_sign_type=5;
			 break;	
			 
             /***********************外部音源5***********************/
 			 case 15:				//外部音源5
				 {
					 if (source_old[0]!=0)
					 {
					     
						 source_state[1]=(source_state[1]&(~(0x01<<(source_old[0]-1))));//清除原先占用状态记录					 
					 
					 }												                    //

					 if ((source_state[1]|0x10)-source_state[1]>0)                      //若音源占用状态表明没被占用&-与,|-或,^-异或,~-求反
					{	  
						  source_state[1]=(source_state[1]|0x10);						//改写音源占用状态
					 	  source_entrails_exterior();									//选择相应的外部音源
						  hc4094_data();												//后四路音源确定
						  source_61510();												//61510做最终音源选择

					 }
					 
					 else report();
					 
				 }
			 series_sign_type=5;
			 break;	
			 
             /***********************外部音源6***********************/
 			 case 16:				//外部音源6
				 {
					 if (source_old[0]!=0)
					 {
					     
						 source_state[1]=(source_state[1]&(~(0x01<<(source_old[0]-1))));//清除原先占用状态记录					 
					 
					 }												                    //

					 if ((source_state[1]|0x20)-source_state[1]>0)                      //若音源占用状态表明没被占用&-与,|-或,^-异或,~-求反
					{	  
						  source_state[1]=(source_state[1]|0x20);						//改写音源占用状态
					 	  source_entrails_exterior();									//选择相应的外部音源
						  hc4094_data();												//后四路音源确定
						  source_61510();												//61510做最终音源选择

					 }
					 
					 else report();
					 
				 }
			 series_sign_type=5;
			 break;	
			 
             /***********************外部音源7***********************/
 			 case 17:				//外部音源7
				 {
					 if (source_old[0]!=0)
					 {
					     
						 source_state[1]=(source_state[1]&(~(0x01<<(source_old[0]-1))));//清除原先占用状态记录					 
					 
					 }												                    //

					 if ((source_state[1]|0x40)-source_state[1]>0)                      //若音源占用状态表明没被占用&-与,|-或,^-异或,~-求反
					{	  
						  source_state[1]=(source_state[1]|0x40);						//改写音源占用状态
					 	  source_entrails_exterior();									//选择相应的外部音源
						  hc4094_data();												//后四路音源确定
						  source_61510();												//61510做最终音源选择

					 }
					 
					 else report();
					 
				 }
			 series_sign_type=5;
			 break;	
			 
             /***********************外部音源8***********************/
 			 case 18:				//外部音源8
				 {
					 if (source_old[0]!=0)
					 {
					     
						 source_state[1]=(source_state[1]&(~(0x01<<(source_old[0]-1))));//清除原先占用状态记录					 
					 
					 }												                    //

					 if ((source_state[1]|0x80)-source_state[1]>0)                      //若音源占用状态表明没被占用&-与,|-或,^-异或,~-求反
					{	  
						  source_state[1]=(source_state[1]|0x80);						//改写音源占用状态
					 	  source_entrails_exterior();									//选择相应的外部音源
						  hc4094_data();												//后四路音源确定
						  source_61510();												//61510做最终音源选择

					 }
					 
					 else report();
					 
				 }
			 series_sign_type=5;
			 break;				 			 			 			 			 			 				 	

             /******************	19:内部mp3音源*****************/
			 case 19:
			 {
				 uch i;
				 for (i=1;i<7;i++)	//从头开始判断mp3音源占用状态
				  {
				  	 if (source_state[0]&0x01<<(i-1)==0)
					  {
						  if (i<5)
						  {
								main_4094_2_data=(main_4094_2_data&0x3F)|power_4094[i-5]<<6;
								source_state[0]=source_state[0]|0x01<<(i-1);
								i=7;
								series_sign_type=3;
						  }
						  else 
						  {
								main_4094_2_data=(main_4094_2_data&0x3F)|power_4094[i-5]<<6;//更新欲发往主板4094的前两位数据,前两位是4094的低位				  //主板4094_2即U2控制代码。控制音源,3D,重低音,循环等
								hc4094_data();   //61510无需变化,包括fm。功放板4094相应改变
								source_data[0]=0x43;
								i=7;
								series_sign_type=4;						  
						  }
					   }
				  }
 			 break;
			 }
             /******************	20:内部FM音源*****************/
			 case 20:
			 {
			 uch i;
			 for (i=7;i<9;i++)
				 {
				  if (source_state[0]&0x01<<(i-1)==0)
					  {
							main_4094_2_data=(main_4094_2_data&0x3F)|power_4094[i-5]<<6;//更新欲发往主板4094的前两位数据,前两位是4094的低位。主板4094_2即U2控制代码。控制音源,3D,重低音,循环等
							hc4094_data();                                              //61510无需变化,包括fm。功放板4094相应改变
							source_data[0]=0x43;                                        //高四位表示选择了第5路音源,后四位其实只用了后两位,表示响度开到最大。
							i=9;					
					  }
				 }
			 series_sign_type=4;
			 break;
			 }

             /******************	21:音调低音上调*****************/
		     case 21:							   //音调低音上调
             {							           //音调高音上调
  			 tone_add(tone_l);					   //低音位于数组第二元素高四位
 			 tone_l=z;
			 tone_data[room][1]=tone_l<<4|0x08;
			 series_sign_type=3;
			 break;
 			 }	
             /******************	22:音调低音下调*****************/
 	    	 case 22:
			 {							      //音调低音下调
  			 tone_add(tone_h);
 			 tone_h=z;
			 tone_data[room][1]=tone_l<<4|0x08; 
			 series_sign_type=3;
			 break;
			 }
             /******************	23:音调中音上调*****************/
			 case 23:							   //音调中音上调
 			 {							           //音调高音上调
  			 tone_add(tone_m);					   //中音位于数组第一元素低四位
 			 tone_m=z;
			 tone_data[room][0]=tone_h<<4|tone_m;
			 series_sign_type=3;
			 break;
 			 }
             /******************	24:音调中音下调*****************/
 		     case 24:
			 {							           //音调中音下调
  			 tone_add(tone_m);
 			 tone_h=z;
			 tone_data[room][0]=tone_h<<4|tone_m; 
			 series_sign_type=3;
			 break;
			 }
             /****************25:音调高音上调*****************/
			 case 25:
			 {							           //音调高音上调
  			 tone_add(tone_h);
 			 tone_h=z;
			 tone_data[room][0]=tone_h<<4|tone_m;
			 series_sign_type=3;
			 break;
 			 }
             /*****************26:音调高音下调*****************/
  		     case 26:
			 {							          //音调高音下调
			 tone_dec(tone_h);
 			 tone_h=z;
			 tone_data[room][0]=tone_h<<4|tone_m;
			 series_sign_type=3;
			 break;
			 }		 

             /*****************27:音调同步上调*****************/
			 case 27:
			 {
			 tone_add(tone_h);
 			 tone_h=z;
			 tone_m=z;
			 tone_l=z;
			 tone_data[room][0]=tone_h<<4|tone_m;
			 tone_data[room][1]=tone_data[room][1]|tone_l<<4;
			 series_sign_type=3;
			 break;			 
			 }
             /*****************28:音调同步下调*****************/
			 case 28:
			 {
			 tone_dec(tone_h);
 			 tone_h=z;
			 tone_m=z;
			 tone_l=z;
			 tone_data[room][0]=tone_h<<4|tone_m;
			 tone_data[room][1]=tone_data[room][1]|tone_l<<4;
			 series_sign_type=3;
			 break;			 
			 }
             /*****************29:重低音*****************/
			 case 29:
			 {
			 if (power_4094_data&0x20==0)
			 power_4094_data=power_4094_data|0x20;
			 else
			 power_4094_data=power_4094_data&0xDF;
			 series_sign_type=2;
			 break;
			 }
             /*****************30:3D*****************/
			 case 30:
			 {
			 if (power_4094_data&0x40==0)
			 power_4094_data=power_4094_data|0x40;
			 else
			 power_4094_data=power_4094_data&0xBF;
			 series_sign_type=2;
			 break;
			 }
             /*****************31:循环*****************/
 			 case 31:
			 {
			 if (power_4094_data&0x10==0)
			 power_4094_data=power_4094_data|0x10;
			 else
			 power_4094_data=power_4094_data&0xEF;
			 series_sign_type=2;
			 break;
			 }
             /*****************32:节目上选*****************/
             /*****************33:节目下选*****************/
             /******************34:指定节目*****************/
             /******************35:静音**********************/
    		 case 35:
			 {
			 if (power_4094_data&0x80==0)
			 power_4094_data=power_4094_data|0x80;
			 else
			 power_4094_data=power_4094_data&0x7F;
			 series_sign_type=2;
			 break;
			 }
			 /******************36:暂停*****************/
			 case 36:
			 {
			 
			 }
 
         } 
      }

	}
	

	void main()
	{
 	   while (1)
	   if (series_sign==1)	 //有串行数据
	   {
				           
			data_disp();    //调用数据处理函数 
			switch(series_sign_type)
		   {
			   case 1:
			   {
				   series_m4094_send();	 //主板4094串行数据发送程序
			   }
			   
			   case 2:
			   {
				   series_p4094_send();	 //功放板4094串行数据发送程序
	   
			   }
			   case 3:
			   {
					series_p61510_send(); //主板61510串行数据发送程序
			   }	   
			   case 4:
			   {
					series_p4094_send();	 //功放板4094串行数据发送程序
					series_p61510_send(); //主板61510串行数据发送程序
			   }

			   case 5:
			   {
					series_m4094_send();	 //主板4094串行数据发送程序
					series_p4094_send();	 //功放板4094串行数据发送程序
					series_p61510_send(); //主板61510串行数据发送程序
			   }
	      series_sign=0;		 //串行数据标识清零,等待下次中断
	      }
	   }

	} 

⌨️ 快捷键说明

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