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

📄 t10a2_other_disp.c

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

	data_4094&=~BIT(led_green);
	data_4094|=BIT(led_blue);
	//data_4094|=BIT(fan_con);
	write4094(data_4094);	
	//while(!ini_FreqData());				//初始化频谱显示
	while(!Initial_Display()) ;			//开机画面
		
	single_counter=0;
	no_ok1single_counter=0;
	no_ok2single_counter=0;
	ok1_single_counter=0;
	ok2_single_counter=0;
	bdata0_flag&=~BIT(CHECK_SINGLE_ALLOW);//不允许自动开机
	//state_counter=0;
	counter1_10ms=0;
	//counter_500ms=14;	//开机显示的时间,为0时RUN_F=1;
	//state_reg=0x00;
	sendbyte1_r2s15902();	//打开上次关机通道/
	//bdata2_flag|=BIT(TURN_ON_F);//TURN_ON_F=1
	bdata0_flag&=~BIT(MUTE_F);
	
	bdata0_flag|=BIT(VOL_UP_FLAG);//修改
	bdata0_flag&=~BIT(VOL_DOWN_FLAG);
	//bdata0_flag|=BIT(VOL_DOWN_FLAG);//新加		//2008-04-02
	
	//water_led=0x00;
	//for(i=0;i<65;i++)
	//{disp_reg_copy[i]=0;}//清0
	disp_reg_line=0;
	disp_line=0;
	//display_state=1;//显示慢显
	//bdata4_flag|=BIT(DISPLAY_SLOW_F);
	//write_data_display(0,13,blank);
	counter_500ms=0;	//开机显示的时间,为0时RUN_F=1;12
	//SendDataToDisp_Buffer(blank,t10a,turn_on,*(allinput_select_disp+input_select));//修改,输入选择
	water_led=0;
	//if((input_select==0)||(input_select==1)||(input_select==4))bdata3_flag|=BIT(DECODER_START);//启动解码板 新改
	/*if(input_select>6)//发送卡或USB启动码 ,暂屏蔽
	{
		remote_disposal_usbcard_inputselect();
		remote_usbcard_on_disposal_1();
	}*/
	if((input_select==0)||(input_select==1)||(input_select==4))
	{
		///521 bdata3_flag|=BIT(DECODER_START);
		
		I2C_counter=30;
	}
	delay_ms(20);

	
	remote_disp_init_1();
	state_counter=6;//原为10
	VFD_Variable = input_select;
	
	if (Signal_Detect_OK == 1)
	{
		Display_Proc(Detect_Source_DisMode);
	}
	else
	{
		Display_Proc(Source_DisMode);
	}
	
	//output_disposal();//4/18新加
}
void turn_off_init(void)
{
//	write_data_display(0,13,blank);
	
	//王明文添加
	Display_Proc(StandBy_DisMode);
	Signal_Detect_OK = 0;

	error_counter=0x00;
	counter_1s_error=0x00;
	single_1s_counter=0;
	counter_1s_check=0;//remote 处理
	bdata7_flag&=~BIT(kaiji);	
	
	/****************************附加耳机转换成2.1ch*************************/
	/*if(Tv_HT_f)
	{
	if(ram_ht[9*mode_select_ht+9]==2)ram_ht[9*mode_select_ht+9]=1;//如果为耳机输出转为2.1ch
	}
	else
	{
	if(ram[10*pingduan+10]==2)ram[10*pingduan+10]=1;
	}*/
//	data_4094&=~BIT(led_blue);
	input_select_bak=input_select;//
	bdata0_flag&=~BIT(CHECK_SINGLE_ALLOW);//no allow turn_on
	state_reg=0x15;
	state_counter=4;//控制时间		14
	display_state=1;
	//TWCR= 0x00; //disable twi
	bdata2_flag&=~BIT(SHAN_DONG_F);
	bdata0_flag&=~BIT(MUTE_F);
	PORTA&=~BIT(MUTE_KARAOK);//关掉KARAOK
	bdata0_flag|=BIT(VOL_DOWN_FLAG);//VOL_DOWN_FLAG=1
	vol_max();
	bdata2_flag|=BIT(TURN_OFF_F);//关机标志
	bdata2_flag|=BIT(EEPROM_SAVE_F);//保存标志
	bdata2_flag&=~BIT(TURN_ON_F);
	disp_line=0;
	led=0;	//附加
	single_1s_counter=0;//待确?	counter_1s_check=0;//
	single_counter=0;
	ok1_single_counter=0;
	ok2_single_counter=0;
	no_ok1single_counter=0;
	no_ok2single_counter=0;
	AutoFit_Volume = 0;
    fcounter1=0x00;
    fcounter2=0x00;
    scounter1=0x00;
    scounter2=0x00;
	fvol = 0;
	svol = 0;		
	counter1_10ms=0;
	touch_value=0xff;
	//bdata0_flag|=BIT(STANDBY_SINGLECHECK_F);//STANDBY_SINGLECHECK_F=1;//手动关机有信号不允许开机//待确?	bdata6_flag&=~BIT(KAIJI_FLAG);
	bdata3_flag&=~BIT(USB_CARD_PLAYER_F);
	bdata4_flag&=~BIT(TUICHU_ANJIAN_F);
	bdata3_flag&=~BIT(MENU_OPEN_F);
	
	bdata4_flag&=~BIT(AUTO_SEARCH_F);
	
	menu_address=0;
//	data_4094&=~BIT(led_green);
//	data_4094&=~BIT(led_blue);
	//data_4094&=~BIT(coder);
	data_4094&=~BIT(fan_con);
	write4094(data_4094);
		
}

void Temportect_disposal(void)
{
	static uchar T_Counter = 0;
	static uchar T1_Counter = 0;
	static uchar T2_Counter = 0;
	static uchar T3_Counter = 0;

	T_Counter++;	
	
	if (Temperature_Value <= TEMP_FAN_DRIVE && Temperature_Value >= TEMP_VOLUME_DEC)
	{
		//fan
		T1_Counter++;
	}
	if (Temperature_Value <= TEMP_VOLUME_DEC && Temperature_Value >= TEMP_PROTECT)
	{
		//Volume --		
		T1_Counter++;
		T2_Counter++;
	}
	if (Temperature_Value <= TEMP_PROTECT)
	{
		//standby
		T1_Counter++;
		T2_Counter++;
		T3_Counter++;		
	}

	if (T_Counter >= 20)
	{
		T_Counter = 0;

		if (T1_Counter >= 15 && (!(PINC&BIT(CHECK_SINGLE))))
		{
			//fan	
			data_4094|=BIT(fan_con);
			write4094(data_4094);			
		}
		else
		{
			data_4094&=~BIT(fan_con);
			write4094(data_4094);
		}
		
		if (T2_Counter >= 15)
		{
			//Volume --			

			if (touch_flag&BIT(autofit))
			{
	//			bdata0_flag|=BIT(VOL_UP_FLAG);//VOL_UP_FLAG=1;
	//			bdata5_flag&=~BIT(VOL_FLAG);
				if(AutoFit_Volume < 6)
				{
					AutoFit_Volume++;
					sendbyte2_r2s15902();
					sendbyte3_r2s15902();
					sendbyte4_r2s15902();
				}	
			}
			touch_flag |= BIT(Temperature95);	
		}
		else
		{
			touch_flag &= ~BIT(Temperature95);
		}
		
		if (T3_Counter >= 15)
		{
			//保护 关机
			
			//王明文添加
			VFD_Variable = Temperature_Protect;
			Display_Proc(Protect_DisMode);	
		}			
		T1_Counter = 0;	
		T2_Counter = 0;
		T3_Counter = 0;		
	}
}

/*  测试使用
if (data_4094&BIT(fan_con))
{
	data_4094&=~BIT(fan_con);
}
else
{
	data_4094|=BIT(fan_con);
}				
write4094(data_4094);
*/

void fshizhen(void)
{
		fcounter1++;
		if(!(PING&BIT(f_level)))
		{
			fcounter2++;
		}
		if(fcounter1>10)
		{
			fcounter1=0x00;
			if(fcounter2>5)
			{
				if(fvol<20)
				{
					fvol++;
					sendbyte2_r2s15902();
				}
			}
			fcounter2=0x00;
		}	
}
void sshizhen(void)
{
		scounter1++;
		if(!(PING&BIT(s_level)))
		{
			scounter2++;
		}
		if(scounter1>10)
		{
			scounter1=0x00;
			if(scounter2>5)
			{
				if(svol<20)
				{
					svol++;
					sendbyte3_r2s15902();
					sendbyte4_r2s15902();
				}
			}
			scounter2=0x00;
		}		
}
void Dcportect_disposal(void)
{
	if(!(PIND&BIT(err_dc)))	//直流检测,关机时是否需保存数据,修改
	{	

		PORTD|=BIT(STANDBY_SWITCH);
	
	}
}
void Shortportect_disposal(void)
{
	static uchar Detect_Time = 0;
	static uchar Detect_Time_NoS = 0;
	
	counter_short_20s++;
	
	if(PIND&BIT(err_short))
	{
		Detect_Time++;
		Detect_Time_NoS = 0;
	}
	else
	{
		Detect_Time_NoS++;
	}
	
	if((counter_short_20s > 0) && (counter_short_20s % 4 == 0))
	{
		if (Detect_Time > 0)
		{			
			Detect_Time = 0;				
			short_counter++;
			
			bdata3_flag |= BIT(STATIC_STATE_F);
			state_counter=3;
			
			//加显示
			if(short_counter>=3)
			{
				short_counter=0x00;
				Detect_Time = 0;
				turn_off_init();
				
				//王明文添加
				Display_Proc(StandBy_DisMode);
				
			}
			else
			{
				VFD_Variable = ShortC_Protect;
				Display_Proc(Protect_DisMode);
			}				
		}
	}	
		

	if(Detect_Time_NoS > 5)
	{
		counter_short_20s=0x00;
		short_counter=0x00;
		Detect_Time = 0;
	}	
}

void single_check_turnoff(void)//无信号自动关机
{
	if(single_1s_counter>=1200)
	{
		single_1s_counter=0;
		counter_1s_check=0;
	}
	if((single_1s_counter>1180)&&(counter_1s_check<50))
	{
		turn_off_init();
		bdata0_flag|=BIT(CHECK_SINGLE_ALLOW);//check_single_allow=0;//允许自动开机
		bdata0_flag&=~BIT(STANDBY_SINGLECHECK_F);//STANDBY_SINGLECHECK_F=0;
		input_select_bak=input_select;//保存为当前通道,下次遥控开机时为当前通道.
		/*for(i=0;i<6;i++)//附加待机时音量清0
		{
		ram_1[i]=0;
		}
		delay_us(5);
		sendbyte2_r2s15902();
		delay_us(5);
		sendbyte3_r2s15902();
		delay_us(5);
		sendbyte4_r2s15902();*/
	//	SendDataToDisp_Buffer(blank,turn_off,save,byebye);
		
		//王明文添加
		Display_Proc(StandBy_DisMode);
	}
}


void karaok_insert_pullout_disposal(void)//检测karaok
{
	counter_karaok_10ms++;
	if(bdata3_flag&BIT(OK1_INSERT_FLAG))
	{
		if(!(PINF&BIT(MICIN_1)))no_ok1single_counter++;//ok 拔出
		if((no_ok1single_counter>15)&&(counter_karaok_10ms<20))//新加ok检测,待修改
		{
			bdata3_flag&=~BIT(OK1_INSERT_FLAG);
			no_ok1single_counter=0;
			write_data_display(0,13,mic_pullout_display);	//MIC1 PULLOUT

			state_reg = 0;

			if(VFD_Display_Mode != StandBy_DisMode)
			{
				//王明文添加
				state_counter=4;
				Disp_Type = MIC_1;
				VFD_Variable = MIC_Pullout;
				MIC_Signal_OK = 0;
				Display_Proc(MIC_Connect_DisMode);
				Flg_MIC_Disp = 1;
			}
		}
	}
	else	
		{
			if(PINF&BIT(MICIN_1))ok1_single_counter++;//KARA OK检测放到外面处理
			if((ok1_single_counter>15)&&(counter_karaok_10ms<20))//新加ok检测,待修改
			{
					bdata3_flag|=BIT(OK1_INSERT_FLAG);
	//				bdata7_flag&=~BIT(decode_mute);
					if(!(bdata0_flag&BIT(MUTE_F)))
					{
							
							PORTA|=BIT(MUTE_KARAOK);//打开MIC
					}
					ok1_single_counter=0;	//MIC1 INSERT
					write_2313_page();
					write_mic_delay();
					
					if(VFD_Display_Mode != StandBy_DisMode)
					{
						//王明文添加
						state_counter=4;
						Disp_Type = MIC_1;
						VFD_Variable = MIC_Insert;
						Display_Proc(MIC_Connect_DisMode);
						MIC_Signal_OK = 1;
						Flg_MIC_Disp = 1;
					}
				}
			}
	if (!(bdata3_flag&BIT(OK1_INSERT_FLAG)))
		PORTA&=~BIT(MUTE_KARAOK); //静音MIC
	if(counter_karaok_10ms>=20)
	{
		counter_karaok_10ms=0;
		no_ok1single_counter=0;
		ok1_single_counter=0;
	}
}

void osd_tiaoshi_display(void)//调试时作显示用
{
	/*uchar temp0,temp1;
	write_data_display(0,4,osd_tiaoshi);//osd_tiaoshi	附加显示
	temp0=osd_byte[0];
	temp1=temp0;
	temp0>>=4;
	temp1&=0x0f;
	write_yigezi_display(4,temp0);
	write_yigezi_display(5,temp1);
	write_data_display(6,9,&osd_tiaoshi[6]);
	temp0=osd_byte[1];
	temp1=temp0;
	temp0>>=4;
	temp1&=0x0f;
	write_yigezi_display(9,temp0);
	write_yigezi_display(10,temp1);
	write_data_display(11,13,&osd_tiaoshi[11]);
	display_state=1;*/
}

void touch_disposal(void)
	{
	}

void touch_cm6930_disposal(void)//面板按键处理
{
	if(!(touch_flag&BIT(TOUCH_cm6930_CONTINUE_F)))
	{
		touch_flag|=BIT(TOUCH_cm6930_CONTINUE_F);
		single_1s_counter=0;
		counter_1s_check=0;
		static_state_counter=0;//静态待机清0
		static_counter_10ms=0;
		bdata3_flag&=~BIT(STATIC_STATE_F);
	if(!(bdata0_flag&BIT(RUN_F)))//新加,所有按键能开机
	{
		if(!(bdata2_flag&BIT(TURN_ON_F)))
		{
			if((disp_reg_line==0)||(disp_line==0)||(display_state==1)||(counter_500ms==0)||(state_reg==0))
			{
					remote_data2=0x00;
//					write_data_display(0,13,blank);
					//王明文添加
					//CLEAR_VFD();
			}
		}
	}
	else
	{	
	switch(touch_cm6930_buffer)
	{
		case 0x90:
		data_4094&=~BIT(led_blue);
		data_4094|=BIT(led_green);	
		write4094(data_4094);
		remote_data2=0x27;//ok 确认键
		break;
		case 0x10:
		data_4094&=~BIT(led_blue);
		data_4094|=BIT(led_green);	
		write4094(data_4094);
		remote_data2=0x0b;//ok 确认键
		break;
		case 0xc0:
		data_4094&=~BIT(led_blue);
		data_4094|=BIT(led_green);	
		write4094(data_4094);
		remote_data2=0x11;//ok 确认键
		break;
		case 0xa0://模式			
		data_4094&=~BIT(led_blue);
		data_4094|=BIT(led_green);	
		write4094(data_4094);
		remote_data2=0x03;//mode
		break;
		case 0x60: //MPLAYER
		data_4094&=~BIT(led_blue);
		data_4094|=BIT(led_green);	
		write4094(data_4094);
		remote_data2=0x01;
		break;
		case 0xe0: //TV_THEATRE
		data_4094&=~BIT(led_blue);
		data_4094|=BIT(led_green);	
		write4094(data_4094);
		remote_data2=0x04;
		break;
		case 0x20: //HOME_THEATRE
		data_4094&=~BIT(led_blue);
		data_4094|=BIT(led_green);	
		write4094(data_4094);
		remote_data2=0x05;
		break;
		case 0x40: //AI
		data_4094&=~BIT(led_blue);
		data_4094|=BIT(led_green);	
		write4094(data_4094);		
		remote_data2=0x22;
		break;
		case 0x80: //MIC Menu
		data_4094&=~BIT(led_blue);
		data_4094|=BIT(led_green);	
		write4094(data_4094);		
		remote_data2=0x13;
		break;
		default:
		break;
	}
}
}
}

⌨️ 快捷键说明

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