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

📄 t10a2_other_disp.c

📁 AVR单片机基础程序实例! 十个程序源代码。
💻 C
📖 第 1 页 / 共 3 页
字号:
		Display_Proc(HT_TV_Mode_DisMode);
	}
	
}

void input_select_autojia(void)
{
	input_select++;
	if(input_select>=13)input_select=0;
	switch(input_select)
	{
		case 0:
		break;
		case 1:
		if(!(ht_input_f&BIT(HT_COAXIAL_ON)))
		input_select+=1;
		else	{break;}
		case 2:
		if(!(ht_input_f&BIT(HT_5CH1_ON)))
		input_select+=1;
		else	{break;}
		case 3:
		break;
		case 4:
		if(!(tv_input_f&BIT(TV_COAXIAL_ON)))
		input_select+=1;
		else 	{break;}
		case 5:
		if(!(tv_input_f&BIT(TV_5CH1_ON)))
		input_select+=1;
		else 	{break;}
		case 6:
		break;
		case 7: if(!(cd_input_f&BIT(USB_INSERT_F)))
		input_select+=1;
		else	{break;}
		case 8: if(!(cd_input_f&BIT(USB_INSERT_F)))
		input_select+=1;
		else	{break;}
		case 9: if(!(cd_input_f&BIT(USB_INSERT_F)))
		input_select+=1;
		else	{break;}
		case 10: if(!(cd_input_f&BIT(CARD_INSERT_F)))
		input_select+=1;
		else	{break;}
		case 11: if(!(cd_input_f&BIT(CARD_INSERT_F)))
		input_select+=1;
		else	{break;}
		case 12: if(!(cd_input_f&BIT(CARD_INSERT_F)))
		input_select=0;
		else	{break;}
		break;

		default:
		break;
	}
}
/***********************************************
函    数    名:input_select
功          能:四个输入选择
说          明:
返    回    值:
修          改:
************************************************/
void input_select_disposal(void)
{
	bdata7_flag|=BIT(kaiji);
	data_4094&=~BIT(MUTE_ALL);
	data_4094&=~BIT(MUTE_SURROUND);
	write4094(data_4094);
	decode_counter=0;
	switch(input_select)
	{
	case 0://光纤
	bdata1_flag&=~BIT(CHANNLE_2AND5_F);
	if(output_state_ht==0)bdata1_flag|=BIT(CHANNLE_2AND5_F);	
	if(!(bdata7_flag&BIT(mode_adj_f)))
	{
		bdata3_flag|=BIT(DECODER_START);//启动解码板 暂不用 //521
		
	}
		PORTG|=BIT(SEL_5_A);
		PORTA&=~BIT(SEL_5_B);
	//	PORTB&=~BIT(SEL_5_INH);//SEL_5_INH=0;
		bdata1_flag|=BIT(SELECT_MULTI);//SELECT_MULTI=1;
		PORTG|=BIT(SPDIF_SEL);
		theatre_mode=1;
		bdata3_flag&=~BIT(USB_CARD_PLAYER_F);
		break;
		case 1://HT coaxial
		bdata1_flag&=~BIT(CHANNLE_2AND5_F);
		if(output_state_ht==0)bdata1_flag|=BIT(CHANNLE_2AND5_F);	
		if(!(bdata7_flag&BIT(mode_adj_f)))
		{
		bdata3_flag|=BIT(DECODER_START);//启动解码板 暂不用 //521
		
		}
	
		PORTG|=BIT(SEL_5_A);
		PORTA&=~BIT(SEL_5_B);
	//	PORTB&=~BIT(SEL_5_INH);
		bdata1_flag|=BIT(SELECT_MULTI);//SELECT_MULTI=1;	LIN输入
		PORTG&=~BIT(SPDIF_SEL);
		theatre_mode=1;
	//	bdata3_flag|=BIT(DECODER_START);//启动解码板 暂不用 //521
		bdata3_flag&=~BIT(USB_CARD_PLAYER_F);
		break;
		case 2://HT 5.1CH
		PORTG&=~BIT(SEL_5_A);//SEL_5_A=0;
		PORTA|=BIT(SEL_5_B);//SEL_5_B=0;
//		PORTB&=~BIT(SEL_5_INH);//SEL_5_INH=0;
		r2s15_input_select=0xc0;
		bdata1_flag&=~BIT(SELECT_MULTI);//SELECT_MULTI=1;
		bdata1_flag|=BIT(CHANNLE_2AND5_F);
		theatre_mode=1;
		bdata3_flag&=~BIT(USB_CARD_PLAYER_F);
		
	
			bdata7_flag&=~BIT(decode_mute);
			bdata3_flag&=~BIT(DECODER_START);
			
		
		
		break;
		case 3://AUX
		bdata1_flag&=~BIT(CHANNLE_2AND5_F);
		if(output_state_ht==0)bdata1_flag|=BIT(CHANNLE_2AND5_F);	
		PORTG|=BIT(SEL_5_A);
		PORTA|=BIT(SEL_5_B);
	//	PORTB&=~BIT(SEL_5_INH);//SEL_5_INH=0;   //电路板改 原为1
		r2s15_input_select=0x40;
		bdata1_flag&=~BIT(SELECT_MULTI);//SELECT_MULTI=0;
		theatre_mode=1;
		bdata3_flag&=~BIT(USB_CARD_PLAYER_F);
		
	
			bdata7_flag&=~BIT(decode_mute);
			bdata3_flag&=~BIT(DECODER_START);
			
		
		
		break;
		case 4://附加 coaxial
		bdata1_flag&=~BIT(CHANNLE_2AND5_F);
		if(output_state_tv==0)bdata1_flag|=BIT(CHANNLE_2AND5_F);	
		if(!(bdata7_flag&BIT(mode_adj_f)))
		{
		bdata3_flag|=BIT(DECODER_START);//启动解码板 暂不用 //521
		
		}
	
		PORTG|=BIT(SEL_5_A);
		PORTA&=~BIT(SEL_5_B);
//		PORTB&=~BIT(SEL_5_INH);//SEL_5_INH=0;
		bdata1_flag|=BIT(SELECT_MULTI);//SELECT_MULTI=1;	LIN输入
		PORTG&=~BIT(SPDIF_SEL);
		theatre_mode=0;
	//	bdata3_flag|=BIT(DECODER_START);//启动解码板 暂不用 //521
		bdata3_flag&=~BIT(USB_CARD_PLAYER_F);
		break;
		case 5://TV5.1
		PORTG&=~BIT(SEL_5_A);//SEL_5_A=0;
		PORTA&=~BIT(SEL_5_B);//SEL_5_B=0;
	//	PORTB&=~BIT(SEL_5_INH);//SEL_5_INH=0;
		r2s15_input_select=0x20;
		bdata1_flag&=~BIT(SELECT_MULTI);//SELECT_MULTI=1;
		bdata3_flag&=~BIT(USB_CARD_PLAYER_F);
		bdata1_flag|=BIT(CHANNLE_2AND5_F);
		theatre_mode=0;
		
	
			bdata7_flag&=~BIT(decode_mute);
			bdata3_flag&=~BIT(DECODER_START);
			
	
	
		break;
		case 6://TV2.1  //声场2.1and5.1
		bdata1_flag&=~BIT(CHANNLE_2AND5_F);
		if(output_state_tv==0)bdata1_flag|=BIT(CHANNLE_2AND5_F);	
		PORTG|=BIT(SEL_5_A);
		PORTA|=BIT(SEL_5_B);
	//	PORTB&=~BIT(SEL_5_INH);//SEL_5_INH=0;   //电路板改 原为1
		bdata1_flag&=~BIT(SELECT_MULTI);//SELECT_MULTI=0;
		r2s15_input_select=0x80;
		theatre_mode=0;
		bdata3_flag&=~BIT(USB_CARD_PLAYER_F);
	
			bdata7_flag&=~BIT(decode_mute);
			bdata3_flag&=~BIT(DECODER_START);
			
	
		
		break;
		case 7://CD USB 修改//
		case 8:
		case 9:
			bdata1_flag&=~BIT(CHANNLE_2AND5_F);
			cd_input_select=input_select-7;//附加
			PORTG|=BIT(SEL_5_A);
			PORTA&=~BIT(SEL_5_B);
	//		PORTB&=~BIT(SEL_5_INH);//SEL_5_INH=0;
			r2s15_input_select=0x00;
			bdata1_flag|=BIT(SELECT_MULTI);
			bdata3_flag|=BIT(USB_CARD_PLAYER_F);
	
	
			bdata7_flag&=~BIT(decode_mute);
			bdata3_flag&=~BIT(DECODER_START);
			
		
	
		break;
		case 10://CD CARD 修改
		case 11:
		case 12:
			bdata1_flag&=~BIT(CHANNLE_2AND5_F);
			cd_input_select=input_select-7;//附加
			PORTG|=BIT(SEL_5_A);
			PORTA&=~BIT(SEL_5_B);
	//		PORTB&=~BIT(SEL_5_INH);//SEL_5_INH=0;
			r2s15_input_select=0x00;
			bdata1_flag|=BIT(SELECT_MULTI);
			bdata3_flag|=BIT(USB_CARD_PLAYER_F);
			theatre_mode=2;
	

			bdata7_flag&=~BIT(decode_mute);
			bdata3_flag&=~BIT(DECODER_START);
			
		
	
		break;
		default:
		break;
	}
	sendbyte1_r2s15902();

/*

	switch(input_select)
	{
	case 0://光纤

		PORTG|=BIT(SEL_5_A);
		PORTA&=~BIT(SEL_5_B);

		PORTG|=BIT(SPDIF_SEL);

		break;
		case 1://HT coaxial

		PORTG|=BIT(SEL_5_A);
		PORTA&=~BIT(SEL_5_B);

		PORTG&=~BIT(SPDIF_SEL);

		break;
		case 2://HT 5.1CH
		PORTG&=~BIT(SEL_5_A);//SEL_5_A=0;
		PORTA|=BIT(SEL_5_B);//SEL_5_B=0;
	
		
		break;
		case 3://AUX

		PORTG|=BIT(SEL_5_A);
		PORTA|=BIT(SEL_5_B);

		
		break;
		case 4://附加 coaxial

		decode_counter=0;
		PORTG|=BIT(SEL_5_A);
		PORTA&=~BIT(SEL_5_B);

		PORTG&=~BIT(SPDIF_SEL);

		break;
		case 5://TV5.1
		PORTG&=~BIT(SEL_5_A);//SEL_5_A=0;
		PORTA&=~BIT(SEL_5_B);//SEL_5_B=0;

	
		break;
		case 6://TV2.1  //声场2.1and5.1

		PORTG|=BIT(SEL_5_A);
		PORTA|=BIT(SEL_5_B);

		
		break;
		case 7://CD USB 修改//
		case 8:
		case 9:

			PORTG|=BIT(SEL_5_A);
			PORTA&=~BIT(SEL_5_B);
	
	
		break;
		case 10://CD CARD 修改
		case 11:
		case 12:

			PORTG|=BIT(SEL_5_A);
			PORTA&=~BIT(SEL_5_B);

	
		break;
		default:
		break;
	}
*/
		
}
void mode_select_disposal(void)
{
	uchar temp_mode;
	if(theatre_mode!=0)return;
	temp_mode=ram[10*pingduan+7];//ram[10*pingduan+10];
	if(ram[10*pingduan+7]>5)
	temp_mode=ram[10*pingduan+7]-6;
	ram[10*pingduan+3]=tv_mode_parameter[temp_mode][0];
	ram[10*pingduan+4]=tv_mode_parameter[temp_mode][1];
	ram[10*pingduan+8]=tv_mode_parameter[temp_mode][2];
	ram[10*pingduan+9]=tv_mode_parameter[temp_mode][3];
}

void output_disposal(void)//这里显示会有问题,ram_cd 改
{
	uchar temp_out;
	switch(theatre_mode)
	{
		case 0:
		//temp_out=ram[10*pingduan+10];
		temp_out=output_state_tv;
		if(input_select==5)temp_out=0;
		break;
		case 1:
		//temp_out=ram_ht[9*mode_select_ht+9];
		temp_out=output_state_ht;
		if(input_select==2)temp_out=0;
		break;
		case 2:
		//temp_out=ram_cd[9];
		temp_out=1;
		break;
		default:
		break;
	}
	switch(temp_out)
	{
		case 0:
	//	if(bdata7_flag&BIT(adj_5_2))
	//	{
		bdata1_flag|=BIT(CHANNLE_2AND5_F);//CHANNLE_2AND5_F=1;
	//	bdata7_flag&=~BIT(adj_5_2);
	//	}
		if(!(bdata7_flag&BIT(kaiji)))
		{
			if(!(bdata0_flag&BIT(MUTE_F)))
			{
				if(!(bdata0_flag&BIT(decode_mute)))
				{
					data_4094|=BIT(MUTE_SURROUND);//打开环绕
					write4094(data_4094);
				}
			}
		}
		//byte2_4094&=~BIT(SW_SWITCH);
	//	PORTB&=~BIT(SEL_5_INH);
	//	PORTE|=BIT(MUTE_EAR);
		if((input_select==0)||(input_select==1)||(input_select==4))
		{
			if(digital_coding_format==2)//PCM
			{osd_byte[0]=table_deBT_Sel_command[4][0];//prologicII
				osd_byte[1]=table_deBT_Sel_command[4][1];
				deBT_Sel_output_bak[0]=osd_byte[0];
				deBT_Sel_output_bak[1]=osd_byte[1];
				remote_usbcard_on_disposal_1();
			}
			else if(digital_coding_format==0)//ac3
			{
				switch(digital_signal_x_x)
				{
					case 5:
					case 6:
					case 7:
					case 8:
					osd_byte[0]=table_deBT_Sel_command[1][0];//standard output
					osd_byte[1]=table_deBT_Sel_command[1][1];
					deBT_Sel_output_bak[0]=osd_byte[0];
					deBT_Sel_output_bak[1]=osd_byte[1];
					remote_usbcard_on_disposal_1();
					break;
					default:
					osd_byte[0]=table_deBT_Sel_command[4][0];//prologic II
					osd_byte[1]=table_deBT_Sel_command[4][1];
					deBT_Sel_output_bak[0]=osd_byte[0];
					deBT_Sel_output_bak[1]=osd_byte[1];
					remote_usbcard_on_disposal_1();
					break;
				}
			}
			else if(digital_coding_format==1)//dts
			{
				osd_byte[0]=table_deBT_Sel_command[1][0];//standard
				osd_byte[1]=table_deBT_Sel_command[1][1];
				deBT_Sel_output_bak[0]=osd_byte[0];
				deBT_Sel_output_bak[1]=osd_byte[1];
				remote_usbcard_on_disposal_1();
			}
			else asm("nop");
		}
		break;
		case 1:
	
		bdata1_flag&=~BIT(CHANNLE_2AND5_F);//CHANNLE_2AND5_F=1;
	
		if((input_select==0)||(input_select==1)||(input_select==4))
		{
			if(digital_coding_format==2)//PCM
			{osd_byte[0]=table_deBT_Sel_command[1][0];//标准
				osd_byte[1]=table_deBT_Sel_command[1][1];
				deBT_Sel_output_bak[0]=osd_byte[0];
				deBT_Sel_output_bak[1]=osd_byte[1];
				remote_usbcard_on_disposal_1();
			}
			else if(digital_coding_format==0)//ac3
			{
				switch(digital_signal_x_x)
				{
					case 5:
					case 6:
					case 7:
					case 8:
					osd_byte[0]=table_deBT_Sel_command[0][0];//downmix
					osd_byte[1]=table_deBT_Sel_command[0][1];
					deBT_Sel_output_bak[0]=osd_byte[0];
					deBT_Sel_output_bak[1]=osd_byte[1];
					remote_usbcard_on_disposal_1();
					break;
					default:
					osd_byte[0]=table_deBT_Sel_command[1][0];//标准
					osd_byte[1]=table_deBT_Sel_command[1][1];
					deBT_Sel_output_bak[0]=osd_byte[0];
					deBT_Sel_output_bak[1]=osd_byte[1];
					remote_usbcard_on_disposal_1();
					break;
				}
			}
			else if(digital_coding_format==1)//DTS
			{
				osd_byte[0]=table_deBT_Sel_command[0][0];//downmix
				osd_byte[1]=table_deBT_Sel_command[0][1];
				deBT_Sel_output_bak[0]=osd_byte[0];
				deBT_Sel_output_bak[1]=osd_byte[1];
				remote_usbcard_on_disposal_1();
			}
			else asm("nop");
		}
		break;
		default:break;
	}
}




void input_select_init(void)
{
	bdata0_flag|=BIT(VOL_DOWN_FLAG);
	vol_max();
	//output_disposal();
	bdata0_flag|=BIT(INPUT_FLAG);
}

void video_disposal(void)
{
	switch(video_select)
	{
		case 0:
		PORTC&=~BIT(VSEL_A);
		PORTC&=~BIT(VSEL_B);
		break;
		case 1:
		PORTC|=BIT(VSEL_A);
		PORTC&=~BIT(VSEL_B);
		break;
		case 2:
		PORTC&=~BIT(VSEL_A);
		PORTC|=BIT(VSEL_B);
		break;
		case 3:
		PORTC|=BIT(VSEL_A);
		PORTC|=BIT(VSEL_B);
		break;
		default:
		break;
	}
}
void static_state_disposal(void)	//无信号待机屏蔽
{
	uchar i;
	if((static_counter_10ms<1000)&&(static_state_counter>800))
	{
		if(!(bdata3_flag&BIT(STATIC_STATE_F)))
		{
			bdata3_flag|=BIT(STATIC_STATE_F);
			display_state=1;
//			write_data_display(0,13,blank);
			static_counter_10ms=0;
			static_state_counter=0;
			bdata4_flag|=BIT(DISPLAY_SLOW_F);
			state_reg=0x25;
			state_counter=6;//控制时间	,要调试	上次是1
			for(i=0;i<65;i++)
			//{disp_reg_copy[i]=0;}//清0
			//	display_state=3;																2007年3/26根据谢锋的提示改
			//	write_data_display(0,13,&long_avlight[13]);
			disp_reg_line=0;
		}
	}
}
void turn_on_init(void)//开机初化始
{
	uchar i;
	
	bdata7_flag|=BIT(kaiji);
	bdata6_flag&=~BIT(TOUCH_6930_FLAG);
	//bdata6_flag|=BIT(OUT_PUT_FLAG0);
	if((input_select==0)||(input_select==1)||(input_select==4))
		{bdata6_flag|=BIT(OUT_PUT_FLAG0);}
	bdata6_flag|=BIT(KAIJI_FLAG);
	display_state=1;
//	write_data_display(0,13,blank);

	//王明文添加
	CLEAR_VFD();
	
	PORTC&=~BIT(STANDBY);//继电器开机??????
	delay_ms(10);
	PORTC|=BIT(POWER_DECODER);

	//data_4094|=BIT(coder);

⌨️ 快捷键说明

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