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

📄 646545.c

📁 一个电子产品开发时的部分c代码D!绝对能用!
💻 C
📖 第 1 页 / 共 4 页
字号:
			password_set_think(key_in);
			break;	
		default:
			break;
		}
		break;
		case 3: //set the sound (switch and type) and  qam (if,sy,mode)
			switch(ucMenuPosition)
			{
			case 1://set qam symblrate
				ucsubMenuCurrentPosition++;
				if(ucsubMenuCurrentPosition==4)  ucsubMenuCurrentPosition=1;
				qam_ifmodsymb();
				break;
			case 4: //set the sound switch			   
				set_sound_switch();
				break;
			case 5:
				switch(ucMenuCurrentPosition)
				{
				case 1:						  
					net_modify(net_gatway);
					break;
				case 2:
					net_modify(net_sub);
					break;
				case 3:
					net_modify(net_lip);
					break; 
				case 4:
					net_modify(net_dip);
					break;
				default:
					break;
				}
				break;		   
				default:
					break;						   
			}
			break;
			case 4:
				qam_modefy();
				break;	   
			default:
				break;
	}
}
//---------------------------------------------------------
// NAME:	OnKeyShift()
// ENTRY:	void
// RETURN:	void
// FUNCTION:按键处理Shift
// MODIFY DATE :	2004.1.28
//--------------------------------------------------------
void OnKeyShift( void )
{
	switch(ucMenuLayer)
	{
	case 1:
		if( !password_ok )
			return;
		else
		{
			ucMenuPosition--;
			if(ucMenuPosition==0)  ucMenuPosition=8;
			show_main_menu(ucMenuPosition);                
		}    	  		
		break;
	case 2:
		switch(ucMenuPosition)
		{
		case 1:
			qam_ch_position--;
			if((qam_ch_position+1)==0)  qam_ch_position=7;
			show_qam_chanl(qam_ch_position+1);
			break;
		case 2:		//temperature
			ucCurserPosition++;
			if(ucCurserPosition==5)  ucCurserPosition=1;
			show_TEMP_set(ucCurserPosition,temp_bk1,temp_bk2);
			break;
		case 3:
			vol_ch_position--;  
			if(vol_ch_position+1==0)    
				vol_ch_position=3;
			show_volt_set(vol_ch_position+1);
			break;		
		case 5:     //Ethernet
			ucMenuCurrentPosition--;
			if(ucMenuCurrentPosition==0)  
				ucMenuCurrentPosition=4;
			show_net_submenu();	 	
			break;
		case 6:
			set_com();				            
			break;	
		case 7:    //clock
			if(ucCurserPosition<6)
				ucCurserPosition+=1;
			else
				ucCurserPosition=1;
			show_time_set(ucCurserPosition,0);				
			break;
		case 8:    //password
			password_set_think(key_in);
			break;
		default:
			break;
		}
		break;
		case 3:   //muen layer
			switch(ucMenuPosition)
			{		
			case 1:
				ucsubMenuCurrentPosition--;
				if(ucsubMenuCurrentPosition==0)  ucsubMenuCurrentPosition=3;
				qam_ifmodsymb();
				break;
			case 4:        //sound					        
				set_sound();    					          
				break;  		
			case 5:   //net
				ucCurserPosition++;
				if(ucCurserPosition==13)  ucCurserPosition=1;
				switch(ucMenuCurrentPosition)
				{
				case 1:					  
					show_net_currsor(net_gatway);
					break;
				case 2:
					show_net_currsor(net_sub);
					break;
				case 3:
					show_net_currsor(net_lip);
					break;
				case 4:
					show_net_currsor(net_dip);
					break;
				default:
					break;
				}	
				break;
				default:
					break;			
			} 
			break;
			case 4:
				switch(ucMenuPosition)
				{
				case 1:															            
					if(ucsubMenuCurrentPosition==3)     selbit_symrat();
					break;            	  												           				    
				default:
					break;     			   
				}				       
				break;		
				default:   //mulayer
					break;
}
}

//---------------------------------------------------------
// NAME:	OnKeyEnter()
// ENTRY:	void
// RETURN:  void
// FUNCTION:按键处理Enter
// MODIFY DATE :	2004.1.28
//--------------------------------------------------------
void OnKeyEnter(void)
{
	//if(serv_trl||temperature_alarm)  return;
	if(!power_on)   return;
	switch(ucMenuLayer)
	{
	case 0:	//if want to set the configration ,input the password first
		if( pass_sub(1) )
		{
			ucMenuLayer++;
			ucMenuPosition=1;
		}
		break;
	case 1:	//sub menu
		if(!password_ok ) return;
		ucMenuLayer++;
		ucMenuCurrentPosition=1;
		switch(ucMenuPosition)
		{
		case 1:		//qam
			SHOW_LOGO(21);
			qam_ch_position=0;
			break;
		case 2:		//temperture 1
			LCD_CLR();
			SHOW_ALL_HEAD(0);	
			temperature_h[0]=read_eeprom(S1_TEMP_ADDR_H);
			temperature_l[0]=read_eeprom(S1_TEMP_ADDR_L);
			temp_bk1=temperature_h[0];
			temp_bk2=temperature_l[0];
			ucCurserPosition=1;
			show_TEMP_set(ucCurserPosition,temp_bk1,temp_bk2);
			break;
		case 3:		//voltage 1
			show_volt_set(1);	
			break;
		case 4:		//sound switch
			SHOW_LOGO(5);			 			   
			break;			 
		case 5:   //net
			SHOW_LOGO(24);			 	
			break;		   
		case 6:     //com
			if(com_set==9600)
				SHOW_LOGO(33);
			else 
				SHOW_LOGO(35); 		 			
			break;			  
		case 7:     //clock
			LCD_CLR();
			show_time_set(1,1);//时间设置界面			    			
			break;
		case 8:     //password
			password_number=0;
			LCD_CLR();
			show_key_set(1);//密码设置界面
			ucCurserPosition=1;
			break;
		default:
			break;
		}
		break;
		case 2:
			ucMenuLayer++;	  			   
			save_set_menu();
			break;
		case 3:    //set sound (ON-OFF  and music type select),qam  symble rate,if,mod
			switch(ucMenuPosition)
			{
			case 1:     
				ucMenuLayer++;	  			   
				sel_ifmodsymb(); 			
				break;
			case 4:					   //SOUND
				show_set_sound(ucMenuCurrentPosition);
				soundMenuPosition=1;							  
				ucMenuLayer--;
				break;
			case 5:
				ucMenuLayer--;
				show_net_submenu();	 
				net_save();
				modify_net_config();
				break;			  
			default :
				break;
			}
			break;
			case 4:
				switch(ucMenuPosition)
				{
				case 1:     
					save_qam_config();			
					ucMenuLayer--;
					ucMenuLayer--;
					//ucMenuLayer=3;
					//qam_set=1;
					//qam_ifmodsymb();
					break;			
				default:
					break;
				}							
				break;
				default :
					break;
	}
}

//---------------------------------------------------------
// NAME:	OnKeyEsc()
// ENTRY:	void
// RETURN:  void
// FUNCTION:按键处理Esc
// MODIFY DATE :	2004.1.28
//--------------------------------------------------------
void OnKeyEsc(void)
{
	bCurserOn = 0;
	switch(ucMenuLayer)
	{
		//display the "RUNNING",return from the password check status
	case 1:	
		if(password_ok )
		{
			SHOW_LOGO(28);
			password_ok  = 0;
			ucMenuPosition = 1;
			ucMenuLayer = 0;										
			read_time_date();
			show_time();
		}				
		break;
		
		//display the "RUNNING",return from the main menu
	case 2: 
		ucMenuLayer--;
		exit_to_mainmeun();			
		break;
		//goto the main menu or exit from the modify status
	case 3:	
		ucMenuLayer = 2;
		switch( ucMenuPosition )
		{
			//QAM
		case 1:     
			show_qam_chanl(qam_ch_position+1);
			break;      
			
			//sound
		case 4:	  
			show_set_sound(ucMenuCurrentPosition);
			soundMenuPosition = 1;
			//ucMenuLayer--;
			break;		  
			
		case 5:
			show_net_submenu();	 
			break;    				
			
		default :
			break;  
		}   
		ucsubMenuCurrentPosition = 1;
		break;
		
		case 4:
			ucMenuLayer = 3;
			qam_ifmodsymb();
			break;		   	
			
		default:
			break;
	}
}

//---------------------------------------------------------
// NAME:	server_power_on()
// ENTRY:	void
// RETURN:  void
// FUNCTION:服务器上电操作
// MODIFY DATE :	2004.1.28
//--------------------------------------------------------
void server_power_on(void)
{ 
	DDRC |= 0x3C;
	//turn on power of the scsi hard disk 
	PORTC &= ~0x10;
	PORTC |= 0x04;
	PORTC |= 0x10;
	PORTC &= ~0x10;
	PORTC |= 0X10;	
	delayms(3000);
	//turn on power of the main server board  
	PORTC &= ~0x08;
	PORTC |= 0x04;
	PORTC |= 0x08;
	PORTC &= ~0x08;
	PORTC |= 0x08;
	delayms(6000); 
	PORTC &= ~0x08;
	PORTC &= ~0x04;
	PORTC |= 0x08;
	PORTC &= ~0x08;
	PORTC |= 0x08;		  
	power_on = 1;
	powre_off_flg = 0;
	delayms(5000);
	T_1s = 0;
	
}

//---------------------------------------------------------
// NAME:	server_power_off()
// ENTRY:	void
// RETURN:  void
// FUNCTION:服务器下电操作
// MODIFY DATE :	2004.1.28
//--------------------------------------------------------
void server_power_off(void)
{	
	spk_key(0x49);
	spk_key(0x48);
	spk_key(0x47);
	spk_key(0x46);
	spk_key(0x45);
	spk_key(0x44);
	spk_key(0x43);
	spk_key(0x42);
	spk_key(0x41);
	DDRD = 0x00;
	PORTD = 0x00;
	DDRB = 0x00;
	PORTB = 0x00;
	sys_init=0;
	//turn off power of the main server board 
	PORTC &= ~0x08;
	PORTC |= 0x04;
	PORTC |= 0x08;
	PORTC &= ~0x08;
	PORTC |= 0x08;	 
	delayms(6000);
	PORTC &= ~0x08;
	PORTC &= ~0x04;
	PORTC |= 0x08;
	PORTC &= ~0x08;
	PORTC |= 0x08;
	delayms(20000); 
	//turn off power of the scsi hard disk 
	PORTC &= ~0x10;
	PORTC &= ~0x04;
	PORTC |= 0x10;
	PORTC &= ~0x10;
	PORTC |= 0x10;
	restart = 1;	  
	server_start = 0;								  
	power_on = 0;
	have_check = 0;
	write_eeprom(0x0111, 0x00);
	reset = 0;
	serv_trl = 0;
	power_off = 0;
	SHOW_LOGO(34);
	delayms(5000);
	
}

//---------------------------------------------------------
// NAME:	server_control_power_off()
// ENTRY:	void
// RETURN:  void
// FUNCTION:手动操作服务器下电
// MODIFY DATE :	2004.1.28
//--------------------------------------------------------
void server_control_power_off(void)
{
	unsigned char key_dat = 0;
	if(!pass_sub(2))   
		return;
	else 
	{	        
		SHOW_LOGO(49);			
		to_power_off = 1; 
		while(1)
		{
			key_dat = key_scan();
			if(key_dat == KEY_POWER)   
				break; 
			if(key_dat == KEY_ESC)
			{
				password_ok = 0;
				to_power_off = 0;
				return;
			}	
		}	
		SHOW_LOGO(31);
		ucMenuLayer = 0; 
		password_ok = 0;
	}
	delayms(3000);  
	SHOW_LOGO(57);
	delayms(3000);  
	SHOW_LOGO(58);
	delayms(3000);  
	SHOW_LOGO(59);  
	delayms(3000);  
	server_power_off();	  
}
//---------------------------------------------------------
// NAME:	OnKeyPower()
// ENTRY:	void
// RETURN:  void
// FUNCTION:按键处理Power
// MODIFY DATE :	2004.1.28
//--------------------------------------------------------
void  OnKeyPower(void)
{
	DDRC  = 0xfd;
	PORTC |= 0x20;
	delayus(5);
	if(!power_on)
		server_power_on();
	if(power_on && (!ucMenuLayer) && power_off)
		server_control_power_off();
}

//---------------------------------------------------------
// NAME:	rst_pc()
// ENTRY:	void
// RETURN:  void
// FUNCTION:复位服务器操作
// MODIFY DATE :	2004.1.28
//--------------------------------------------------------
void rst_pc(void)
{
	DDRC	|= 0x3c;
	PORTC	&= ~0x20;
	PORTC	|= 0x04;
	PORTC	|= 0x20;
	PORTC	&= ~0x20;
	PORTC	|= 0x20;
	delayms(2000); 
	PORTC	&= ~0x20;
	PORTC	&= ~0x04;
	PORTC	|= 0x20;
	PORTC	&= ~0x20;
	PORTC	|= 0x20;	  
}

⌨️ 快捷键说明

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