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

📄 check.c

📁 本人用avr 单片机atmega128开发控制产品的源码。
💻 C
字号:
#include <iom128v.h>
#include <control.h>
#include <String.h>
#include <lcd.h>
#include <macros.h>

extern unsigned char sys_init;
extern unsigned char send_data[100];
extern unsigned char menu_password[6];
extern unsigned char power_password[6];
extern unsigned char serv_trl, ask_server_timer, sever_restore, server_start;
extern unsigned char password_ok;
extern unsigned char time_15s, T_15s;
extern unsigned char disp_status;
extern unsigned char to_power_off;
extern unsigned char memu_operation;
extern unsigned char T_5s, time_5s;
extern unsigned char spk_on, bCurserOn;
extern unsigned char ucCurserPosition;
extern unsigned char ucMenuLayer, ucMenuPosition;
extern unsigned char power_on, restart, power_off;	  
extern unsigned char rst_power_off;
extern unsigned char reset, rst_flg;
extern unsigned char key_in;
extern unsigned char time_1val, time_3mval, LCD_UNDER_LINE_FLAG;
extern unsigned char T_20s, T_2s, time_20sval;
extern unsigned char over_time, T_30s;
extern unsigned char center_frequency;
extern unsigned int  iSmbRat;
extern unsigned char qammode;
extern unsigned char have_connect;
extern unsigned char net_serv_conv;
extern unsigned char net_serv_conv_len;
extern unsigned char qam_num[8];
extern unsigned char qam_ch, center_frequency, qammode;
extern unsigned int  iSmbRatSaved[8];
extern unsigned char have_check;
extern unsigned char power_on_flg;
extern unsigned char ucMenuQModSubPosition[8], ucMenuIFSubPosition[8];

//---------------------------------------------------------
// NAME:	cofig_qam()
// ENTRY:	void.
// RETURN:	void.
// MODIFY:	2004.2.2
//--------------------------------------------------------
void cofig_qam(void)
{
	center_frequency = 1;
	iSmbRat = 6875;
	qammode = 3;	
}

//---------------------------------------------------------
// NAME:	check_qam_status()
// ENTRY:	void.
// RETURN:	void.
// MODIFY:	2004.2.2
//--------------------------------------------------------
void check_qam_status(void)
{
	unsigned char temp[1], i;
	
	for(i = 1; i < 5; i++)
	{ 
		if(qam_num[i-1])
		{
			if(i2c_Read(&temp[0], 0x12, qam1, i) == FALSE)    
			{
				SHOW_LOGO(61);	   
				Disp_char_16_8(2, 29, i + 0x30, 0);
				qammode = ucMenuQModSubPosition[i - 1];
				center_frequency = ucMenuIFSubPosition[i - 1];
				iSmbRat = iSmbRatSaved[i - 1];	
				spk_alarm();
				broad_3033_init(qam1, i);
				delayms(3000);	
			}
			else
			{
				SHOW_LOGO(32);	   
				Disp_char_16_8(2, 29, i + 0x30, 0);				 
				delayms(3000);					
			}
		}
	}
	for(i = 1; i < 5; i++)
	{ 
		if(qam_num[i + 3])
		{
			if(i2c_Read(&temp[0], 0x12, qam2, i) == FALSE)    
			{
				SHOW_LOGO(61);	   
				Disp_char_16_8(2, 29, i + 0x34, 0);
				qammode = ucMenuQModSubPosition[i + 3];
				center_frequency = ucMenuIFSubPosition[i + 3];
				iSmbRat = iSmbRatSaved[i + 3];	
				spk_alarm();
				broad_3033_init(qam2, i);
				delayms(3000);
			}
			else
			{
				SHOW_LOGO(32);	   
				Disp_char_16_8(2, 29,i + 0x34, 0);				 
				delayms(3000);
			}
		}
	}
}
//---------------------------------------------------------
// NAME:	disp_on_time()
// ENTRY:	void.
// RETURN:	void.
// MODIFY:	2004.2.2
//--------------------------------------------------------
void disp_on_time(void)
{
	if((!power_on) || (serv_trl))   
		return;
	if(T_5s)
	{
		disp_status++;
		if(disp_status > 5)  
			disp_status = 1;
		T_5s = 0;
		time_5s = 0;
	}
	switch(disp_status)
	{
	case 2:
		disp_temperature();
		break;
	case 3:
		voltage_disp(1);				 
		break;
	case 1:
		SHOW_LOGO(28);
		show_time();
		break;
	case 4:
		voltage_disp(2);		
		break;			 
	case 5:
		check_qam_status();
		break;
	default:
		break; 
	}	
}
//---------------------------------------------------------
// NAME:	exit_from_menu_operation()
// ENTRY:	void.
// RETURN:	void.
// MODIFY:	2004.2.2
//--------------------------------------------------------
void exit_from_menu_operation(void)
{
	if(to_power_off)       
		return;
	disp_on_time();
	password_ok  = 0;
	ucMenuPosition = 2;
	ucMenuLayer = 0;			
	over_time = 1;	
	time_15s = 0;
	memu_operation = 0;
}
//---------------------------------------------------------
// NAME:	sys_check()
// ENTRY:	void.
// RETURN:	void.
// MODIFY:	2004.2.2
//--------------------------------------------------------
void sys_check( void )
{
	unsigned char i;	
	have_check=read_eeprom(0x0111);
	for(i = 0; i < 4; i++)
		qam_num[i] = 0;
	SHOW_LOGO(60);   
	delayms(5000);    
	PORTE |= 0X40; 
	delayms(500);    
	PORTE &= ~0X40;
	delayms(500);    
	//the first channel		
	for(i = 1; i < 5; i++)                
	{
		if(ReadBCM3033Info(qam1, i) == TRUE)	
		{		
			SHOW_LOGO(32);	   
			Disp_char_16_8(2, 29, i + 0x30, 0);    
			delayms(2000);	
			qam_num[i - 1] = 1;
			qammode = ucMenuQModSubPosition[i - 1];
			center_frequency = ucMenuIFSubPosition[i - 1];
			iSmbRat = iSmbRatSaved[i - 1];	
			broad_3033_init(qam1, i);
		}		 
	} 
	//the second channel
	for(i = 1; i < 5; i++)          
	{
		if(ReadBCM3033Info(qam2, i) == TRUE)
		{     
			SHOW_LOGO(32);	   
			Disp_char_16_8(2, 29, i + 0x34, 0);    
			delayms(2000);	
			qam_num[i + 3] = 1;
			qammode = ucMenuQModSubPosition[i + 3];
			center_frequency = ucMenuIFSubPosition[i + 3];
			iSmbRat = iSmbRatSaved[i + 3];	
			broad_3033_init(qam2, i);
		}
	}	
	//The temperature check
	sensor_init(1);
	sensor_init(2);
	temp_check(1);
	temp_check(1);
	temp_check(1);
	disp_temperature();
	delayms(3000);
	//the voltage check
	voltage_check(1);
	voltage_disp(1);
	delayms(3000);
	voltage_check(2);
	voltage_disp(2);
	delayms(3000);
	write_eeprom(0x0111, 0x01);
}
//---------------------------------------------------------
// NAME:	polling()
// ENTRY:	void.
// RETURN:	void.
// MODIFY:	2004.2.2
//--------------------------------------------------------
void polling( void )
{	
	unsigned char temp = 0;
	com_server_receive();
	ENABLE_XM();
	W3100A_connect();
	if(have_connect)
	{
		write_eeprom(0x0200, 0);
		net_client_receive();
		if(net_serv_conv)
		{ 
			delayms(10);
			net_serv_conv = 0;
			net_send_cmd(2, net_serv_conv_len); 
		}
	}
	else
	{
		if( read_eeprom(0x0200) == 0)
		{
			// start code
			send_data[0] = 0x47;		   		
			send_data[1] = 0x55;
			send_data[2] = 2;	   				
			send_data[3] = 0x20;			   
			send_data[4] = 0xde;	
			// tell the server the net connection is open
			com_server_transmit(5);        
			delayus(500);
			W3100A_socket_init();
			W3100A_connect();
			write_eeprom(0x0200, 0x55);
		}		
	}	 
	DISABLE_XM();	
	if(serv_trl && (!rst_flg))
	{
		SHOW_LOGO(47);
		spk_alarm();
	}  
	if(/*(!sever_restore)&&*/reset && (!rst_flg))
	{
		//rst_pc();    //reset the main server
		//rst_flg=1;
		//reset=0;
	}   	
	if(rst_flg/*(!sever_restore)&&&&serv_trl*/)   
		SHOW_LOGO(48);			
	if(T_30s && power_on && sys_init)
	{
		T_30s = 0;
		time_3mval = 0;
		temp_check(1);
		WDR();
		voltage_check(1);
		voltage_check(2);
	}       
	
}

//---------------------------------------------------------
// NAME:	set_show()
// ENTRY:	void.
// RETURN:	void.
// MODIFY:	2004.2.2
//--------------------------------------------------------
void set_show( void )
{
	key_scan();
	switch (key_in)
	{
	case KEY_POWER:
		OnKeyPower();
		break;
	case KEY_ENTER:
		OnKeyEnter();
		break;
	case KEY_ESC:
		OnKeyEsc();
		break;
	case KEY_PAGE:
		OnKeyPage();
		break;
	case KEY_SHIFT:
		OnKeyShift();
		break;
	default :
		break;
	}
}

//---------------------------------------------------------
// NAME:	pass_sub()
// ENTRY:	set,.
// RETURN:	if return .
// MODIFY:	2004.2.2
//--------------------------------------------------------
unsigned char pass_sub(unsigned char set)
{
	unsigned char mns, key, cod[6], sts, i, flg, set_flg;
	if( password_ok  )  
		return 1;
	key = 0;
	mns = 0;	
	sts = 0;
	password_ok = 0;
	set_flg = set;
	flg = 0;
	memu_operation = 1;
	for(i = 0; i < 6; i++)
		cod[i] = 0;
	//display the password menu
	SHOW_LOGO(15);				
	T_15s = 0;
	time_15s = 0;
	while((key != 1)  && (ucMenuLayer == 0) && (!over_time))
	{
		/* titles num */
		key = key_scan();	
		WDR();
		if(key == KEY_ENTER )
		{
			for(i = 0; i < 6; i++)	
			{
				if(set_flg == 1)
				{
					if(cod[i] != menu_password[i]) 
					{ 
						flg = 0;
						break;
					}			 
					else flg = 1;
				}
				else if(set_flg == 2)
				{
					if(cod[i] != power_password[i]) 
					{ 
						flg = 0;
						break;
					}
					else flg = 1;
				}
			}
			if(flg)
			{
				//display the password ok menu
				SHOW_LOGO(14);			
				password_ok = 1;
				sts = 1;
				WDR();
				delayms(3000);
				ucMenuPosition = 1;
				//enter the set menu,QAM first
				SHOW_LOGO(20);	  				  
				ucMenuLayer = 0;                
				return 1; 
			}
			else  
			{
				//display the password error menu
				SHOW_LOGO(40);		   
				password_ok = 0;
				sts = 0;
				delayms(3000);
				//systerm running normal
				SHOW_LOGO(28); 	 	  
				ucMenuLayer = 0;				
				return 0;
			}       
		}
		else
		{
			if(key != 0)
			{
				if(key == KEY_ESC )
				{
					//systerm running normal
					SHOW_LOGO(28); 	 	  
					memu_operation = 0; 
					time_15s = 0;
					return 0;
				}
				if(mns < 6)
				{
					cod[mns] = key; 
					Disp_char_16_8(2, 43 + mns * 10, 0x2a, 0 );  							 
					mns++;
				}
			} 
			else  if((key != 0) && (mns > 6))
			{ 
				//display the password error menu
				SHOW_LOGO(40);		   
				password_ok = 0;
				sts = 0;
				delayms(3000);
				//systerm running normal
				SHOW_LOGO(28); 	 	  
				return 0;
			}
		}
	}
	over_time = 0;
	return (sts);
}

⌨️ 快捷键说明

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