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

📄 t10a2_remote_disposal.c

📁 AVR单片机基础程序实例! 十个程序源代码。
💻 C
字号:
#include <iom64.h>
#include <inavr.h>
#include <ioavr.h>
#define uchar unsigned char
#define uint  unsigned int
#include "T10A2_flash_extern.H"
#include "T10A2_extern_data.H"

void remote_disp_init(void)//remote 前面段处理
		{
		remote_data2=0xff;
		state_counter=6;//原为10
		bdata2_flag&=~BIT(SHAN_DONG_F);
		}
void remote_disp_init_1(void)//remote
		{
		remote_disp_init();	
		display_state=1;						
		disp_line=41;//不处理流动显示
		static_state_counter=0;//静态待机清0
		}	
void display_init(void)
		{		
		state_counter=6;
		bdata2_flag&=~BIT(SHAN_DONG_F);
		display_state=1;						
		disp_line=41;//不处理流动显示
		static_state_counter=0;//静态待机清0
		}		
void remote_usbcard_on_disposal(void)	
		{		
		if((bdata3_flag&BIT(USB_CARD_PLAYER_F))&&(menu_address==0x00))
				{
				state_reg=0x19;							
				osd_byte[0]=0xb0;
				osd_byte[1]=remote_data2;
				PORTC|=BIT(TWI_TRANS_F);
				I2C_counter=2;	
				//osd_tiaoshi_display();//调试用
				//display_init();
				}	
		}
void remote_usbcard_on_disposal_1(void)	/*待修改*/
		{			
		transfer_senddata_disp[4]=transfer_senddata_disp[2];
		transfer_senddata_disp[5]=transfer_senddata_disp[3];
		transfer_senddata_disp[3]=transfer_senddata_disp[1];		
		transfer_senddata_disp[2]=transfer_senddata_disp[0];		
		transfer_senddata_disp[0]=osd_byte[0];
		transfer_senddata_disp[1]=osd_byte[1];							
		PORTC|=BIT(TWI_TRANS_F);
		I2C_counter=2;		
		}			
void remote_disposal_usbcard_inputselect(void)//改
		{	
		switch(cd_input_select)
				{
				case 0:		
						osd_byte[0]=0xa0;
						osd_byte[1]=0x01;
						input_select=7;						
						break;
				case 1:
						osd_byte[0]=0xa0;
						osd_byte[1]=0x03;
						input_select=8;						
						break;
				case 2:
						osd_byte[0]=0xa0;
						osd_byte[1]=0x05;
						input_select=9;						
						break;
				case 3:
						osd_byte[0]=0xa0;
						osd_byte[1]=0x02;
						input_select=10;						
						break;	
				case 4:
						osd_byte[0]=0xa0;
						osd_byte[1]=0x04;
						input_select=11;						
						break;	
				case 5:
						osd_byte[0]=0xa0;
						osd_byte[1]=0x06;
						input_select=12;						
						break;				
				default:
						break;
				}
		theatre_mode=2;//新加	
		} 		 	
void remote_disposal_pingheng(void)
		{		
		if(channel_select==0)
				{				
				if(anjian!=0xff)osd_byte[1]=ram[0];									
				}	
		else
				{
				switch(theatre_mode)
						{
						case 0:								
								if(anjian!=0xff)osd_byte[1]=ram[10*pingduan+channel_select];
								break;
						case 1:	 												 													
								if(anjian!=0xff)osd_byte[1]=ram_ht[9*mode_select_ht+channel_select];
								break;						 							
		 				case 2:
								if(anjian!=0xff)osd_byte[1]=ram_cd[channel_select];
								break;	
						default:
								break;			
						}					
				//write_data_display(0,8,table_pingheng[channel_select]);		 												 											 						
				}					
		}			 		 				
void remote_disposal_pinghengjian(void)
		{		
		if(channel_select==0)
				{
				if(ram[0]>0)ram[0]--;	
				if(anjian==0xff) 	
						{ 									 								
	//					write_yigezi_display(9,ram[0]/10);				
//						write_yigezi_display(10,ram[0]%10);	
//						write_data_display(11,13,blank);
//						write_data_display(0,9,table_pingheng[0]);
						
						//王明文添加
						Disp_Type = channel_select;
						VFD_Variable = ram[0];
						Display_Proc(Volume_DisMode);
						}
				else	osd_byte[1]=ram[0];										
				}	
		else
				{
				switch(theatre_mode)
						{
						case 0:
								if((ram[10*pingduan+channel_select]>0)&&(ram[0]+ram[10*pingduan+channel_select]>10))
										ram[10*pingduan+channel_select]--;					 															
								if(anjian!=0xff)osd_byte[1]=ram[10*pingduan+channel_select];
								else
								{
									write_data_display(8,13,table_vol[ram[10*pingduan+channel_select]]);
									VFD_Variable = ram[10*pingduan+channel_select];
								}
								break;
						case 1:			 												 					
								if((ram_ht[9*mode_select_ht+channel_select]>0)&&(ram[0]+ram_ht[9*mode_select_ht+channel_select]>10))
										ram_ht[9*mode_select_ht+channel_select]--;								
								if(anjian!=0xff)osd_byte[1]=ram_ht[9*mode_select_ht+channel_select];
								else
								{
									write_data_display(8,13,table_vol[ram_ht[9*mode_select_ht+channel_select]]);
									VFD_Variable = ram_ht[9*mode_select_ht+channel_select];
								}
								break;						 							
		 				case 2:
			 					if((ram_cd[channel_select]>0)&&(ram[0]+ram_cd[channel_select]>10))
										ram_cd[channel_select]--;									
								if(anjian!=0xff)osd_byte[1]=ram_cd[channel_select];
								else
								{
									write_data_display(8,13,table_vol[ram_cd[channel_select]]);
									VFD_Variable = ram_cd[channel_select];
								}
								break;	
						default:
								break;			
						}	
				if(anjian==0xff)						
				{
//					write_data_display(0,8,table_pingheng[channel_select]);
					//王明文添加
					Disp_Type = channel_select;
					Display_Proc(Volume_DisMode);
				}		 												 											 						
				}					
		}		
void remote_disposal_pinghengjia(void)
		{	
		if(channel_select==0)
		{
			if(ram[0]<60)ram[0]++;	
			if(anjian==0xff) 	
					{								 								
	//					write_yigezi_display(9,ram[0]/10);				
	//					write_yigezi_display(10,ram[0]%10);	
	//					write_data_display(11,13,blank);
	//					write_data_display(0,9,table_pingheng[0]);
						
						//王明文添加
						Disp_Type = channel_select;
						VFD_Variable = ram[0];
						Display_Proc(Volume_DisMode);
					}
			else	osd_byte[1]=ram[0];																				
		}	
		else
		{
			switch(theatre_mode)
			{
				case 0:
						if(ram[10*pingduan+channel_select]<20)ram[10*pingduan+channel_select]++;					 									
						else 	ram[10*pingduan+channel_select]=20;	 														 															
						if(anjian!=0xff)osd_byte[1]=ram[10*pingduan+channel_select];
						else
						{
							write_data_display(8,13,table_vol[ram[10*pingduan+channel_select]]);
							VFD_Variable = ram[10*pingduan+channel_select];
						}
						break;
				case 1:			 												 					
						if(ram_ht[9*mode_select_ht+channel_select]<20)ram_ht[9*mode_select_ht+channel_select]++;					 									
						else 	ram_ht[9*mode_select_ht+channel_select]=20;								
						if(anjian!=0xff)osd_byte[1]=ram_ht[9*mode_select_ht+channel_select];								
						else
						{
							write_data_display(8,13,table_vol[ram_ht[9*mode_select_ht+channel_select]]);
							VFD_Variable = ram_ht[9*mode_select_ht+channel_select];
						}
						break;						 							
					case 2:
							if(ram_cd[channel_select]<20)ram_cd[channel_select]++;					 									
						else 	ram_cd[channel_select]=20;									
						if(anjian!=0xff)osd_byte[1]=ram_cd[channel_select];
						else
						{
							write_data_display(8,13,table_vol[ram_cd[channel_select]]);
							VFD_Variable = ram_cd[channel_select];
						}
						break;	
				default:
						break;			
			}
			if(anjian==0xff)
			{
//				write_data_display(0,8,table_pingheng[channel_select]);
				//王明文添加
				Disp_Type = channel_select;
				Display_Proc(Volume_DisMode);
			}				
		}						
}	
void remote_disposal_EQ_jian(void)
{
	uchar temp,temp1=0;		
	if(bdata1_flag&BIT(EQ_BASS_TREB_F))//treble				
			temp=1;
	else 	temp=0;				
//	if(anjian==0xff)write_data_display(0,8,eq_table[temp]);		
	switch(theatre_mode)
			{
			case 0:
					if(ram[10*pingduan+8+temp]>0)
							ram[10*pingduan+8+temp]--;
					temp1=ram[10*pingduan+8+temp];
					if(anjian!=0xff)osd_byte[1]=temp1;
					else	write_data_display(8,13,table_tone[temp1]);					
					break;	
			case 1:
					if(ram_ht[9*mode_select_ht+7+temp]>0)					 									
							ram_ht[9*mode_select_ht+7+temp]--;
					temp1=ram_ht[9*mode_select_ht+7+temp];	
					if(anjian!=0xff)osd_byte[1]=temp1;
					else	write_data_display(8,13,table_tone[temp1]);	
					break;
			case 2:
					if(ram_cd[7+temp]>0)					 									
							ram_cd[7+temp]--;
					temp1=ram_cd[7+temp];	
					if(anjian!=0xff)osd_byte[1]=temp1;
					else	write_data_display(8,13,table_tone[temp1]);	
					break;
			default:
					break;
			}
	sendbyte1_r2s15902();	

	if(bdata3_flag&BIT(MENU_OPEN_F))return;

	//王明文添加
	
	if (temp == 1)
	{
		Disp_Type = Treble_Mode;
	}
	else
	{
		Disp_Type = BASS_Mode;
	}
	VFD_Variable = temp1;
	Display_Proc(EQ_DisMode);
}
void remote_disposal_EQ_jia(void)
{		
	uchar temp,temp1;		
	if(bdata1_flag&BIT(EQ_BASS_TREB_F))//treble				
		temp=1;
	else temp=0;					
//	if(anjian==0xff)write_data_display(0,8,eq_table[temp]);	
	switch(theatre_mode)
			{
			case 0:
					if(ram[10*pingduan+8+temp]<14)					 									
							ram[10*pingduan+8+temp]++;
					temp1=ram[10*pingduan+8+temp];	
					if(anjian!=0xff)osd_byte[1]=temp1;
					else	write_data_display(8,13,table_tone[temp1]);	
					break;	
			case 1:
					if(ram_ht[9*mode_select_ht+7+temp]<14)					 									
							ram_ht[9*mode_select_ht+7+temp]++;
					temp1=ram_ht[9*mode_select_ht+7+temp];	
					if(anjian!=0xff)osd_byte[1]=temp1;
					else	write_data_display(8,13,table_tone[temp1]);	
					break;
			case 2:
					if(ram_cd[7+temp]<14)					 									
							ram_cd[7+temp]++;
					temp1=ram_cd[7+temp];	
					if(anjian!=0xff)osd_byte[1]=temp1;
					else	write_data_display(8,13,table_tone[temp1]);	
					break;
			default:
					break;
			}			
	sendbyte1_r2s15902();	

	
	if(bdata3_flag&BIT(MENU_OPEN_F))return;
	//王明文添加
	if (temp == 1)
	{
		Disp_Type = Treble_Mode;
	}
	else
	{
		Disp_Type = BASS_Mode;
	}
	VFD_Variable = temp1;
	Display_Proc(EQ_DisMode);
}	
void remote_disposal_EQ_disp(void)	
{
	uchar temp,temp1;	

	if(bdata1_flag&BIT(EQ_BASS_TREB_F))//treble		
	{
		temp=1;
	}
	else
	{
		temp=0;
	}
	if(anjian==0xff)
	{
//		write_data_display(0,8,eq_table[temp]);
	}	
										
	switch(theatre_mode)
	{
		case 0:	
				temp1=ram[10*pingduan+8+temp]; 	
				if(anjian!=0xff)osd_byte[1]=temp1;
				else	write_data_display(8,13,table_tone[temp1]);	
				break;	
		case 1:
				temp1=ram_ht[9*mode_select_ht+7+temp];
				if(anjian!=0xff)osd_byte[1]=temp1;
				else	write_data_display(8,13,table_tone[temp1]);	
				break;
		case 2:		
				temp1=ram_cd[7+temp];
				if(anjian!=0xff)osd_byte[1]=temp1;
				else	 						
						write_data_display(8,13,table_tone[temp1]);	
				break;
		default:
				break;
	}	
	
	if(bdata3_flag&BIT(MENU_OPEN_F))return;
	//王明文添加
	if (temp == 1)
	{
		Disp_Type = Treble_Mode;
	}
	else
	{
		Disp_Type = BASS_Mode;
	}
	VFD_Variable = temp1;
	Display_Proc(EQ_DisMode);
	
}
void remote_display_mic(void)
		{		
		switch(mic_select)	
				{
				case 0:
						if(anjian!=0xff)osd_byte[1]=mic_vol1;
						break;
				case 1:	
						if(anjian!=0xff)osd_byte[1]=mic_vol2;					
						break;
				case 2:
						if(anjian!=0xff)osd_byte[1]=mic_echo;					
						break;						
				case 3:
						if(anjian!=0xff)osd_byte[1]=mic_delay;					
						break;						
				case 4:
						if(anjian!=0xff)osd_byte[1]=mic_treble;
						break;
				case 5:								
						if(anjian!=0xff)osd_byte[1]=mic_bass;
						break;
				default:
						break;
				}						
		}		
void remote_disposal_mic_jia(void)
		{	
		uchar i;	
		switch(mic_select)	
				{
				case 0:
						if(mic_vol1<30)mic_vol1++;
						if(anjian!=0xff)osd_byte[1]=mic_vol1;
						break;
				case 1:	
						if(mic_vol2<30)mic_vol2++;
						if(anjian!=0xff)osd_byte[1]=mic_vol2;					
						break;
				case 2:
						if(mic_echo<8)mic_echo++;	
						if(anjian!=0xff)osd_byte[1]=mic_echo;
						for(i=0;i<4;i++)
								{
								ram[114+i]=ram_2[i];
								kalaok_mode=5;
								}
						break;
				case 3:
						if(mic_delay<16)mic_delay++;	
						if(anjian!=0xff)osd_byte[1]=mic_delay;
						for(i=0;i<4;i++)
								{
								ram[114+i]=ram_2[i];	
								kalaok_mode=5;
								}
						break;
						
				case 4:
						if(mic_treble<8)mic_treble++;	
						if(anjian!=0xff)osd_byte[1]=mic_treble;
						for(i=0;i<4;i++)
								{
								ram[114+i]=ram_2[i];
								kalaok_mode=5;
								}
						break;
				case 5:	
						
						if(mic_bass<8)mic_bass++;
						if(anjian!=0xff)osd_byte[1]=mic_bass;
						for(i=0;i<4;i++)
								{
								ram[114+i]=ram_2[i];	/*保存到用户模式*/
								kalaok_mode=5;
								}
						break;
				default:
						break;
				}				
		write_2313_page();/*kalaok vol */
		write_mic_delay();//kalaok delay			
		}
void remote_disposal_mic_jian(void)	
		{
		uchar i;
		switch(mic_select)	
				{
				case 0:
						if(mic_vol1>0)mic_vol1--;							
						if(anjian!=0xff)osd_byte[1]=mic_vol1;																		
						break;
				case 1:	
						if(mic_vol2>0)mic_vol2--;
						if(anjian!=0xff)osd_byte[1]=mic_vol2;
						break;
				case 2:
						if(mic_echo>0)mic_echo--;	
						if(anjian!=0xff)osd_byte[1]=mic_echo;
						for(i=0;i<4;i++)
								{
								ram[114+i]=ram_2[i];
								kalaok_mode=5;
								}
						break;						
				case 3:
						if(mic_delay>0)mic_delay--;	
						if(anjian!=0xff)osd_byte[1]=mic_delay;
						for(i=0;i<4;i++)
								{
								ram[114+i]=ram_2[i];	
								kalaok_mode=5;
								}
						break;						
				case 4:
						if(mic_treble>0)mic_treble--;	
						if(anjian!=0xff)osd_byte[1]=mic_treble;
						for(i=0;i<4;i++)
								{
								ram[114+i]=ram_2[i];
								kalaok_mode=5;	
								}
						break;
				case 5:	
						if(mic_bass>0)mic_bass--;
						if(anjian!=0xff)osd_byte[1]=mic_bass;
						for(i=0;i<4;i++)
								{
								ram[114+i]=ram_2[i];//mic_bass_user=mic_bass;	
								kalaok_mode=5;
								}					/*保存到用户模式*/													
						break;
				default:
						break;
					}
		write_2313_page();/*kalaok vol 全在这里送音量,EQ等*/
		write_mic_delay();//kalaok delay 			
		}				
void remote_disposal_mic_disp(void)	
{
 	switch(mic_select)	
 	{	
		case 0:		
				
				VFD_Variable = mic_vol1;			//王明文添加
				
				break;				
		case 1:
			
				
				VFD_Variable = mic_vol2;			//王明文添加
				break;
		case 2:
			
				
				VFD_Variable = mic_echo;			//王明文添加
				break;							
		case 3:
	//			write_data_display(0,8,delay_time_disp);
	//			write_data_display(8,13,delay_data_disp[mic_delay]);
				
				VFD_Variable = mic_delay;		//王明文添加
				break;
		case 4:						
				
				
				VFD_Variable = mic_treble;		//王明文添加
				break;		
		case 5:
				
				VFD_Variable = mic_bass;			//王明文添加
				break;
		default:
				break;
	}		

	
	//王明文添加
	Disp_Type = mic_select;
	Display_Proc(MIC_Data_DisMode);	
}

⌨️ 快捷键说明

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