main.c

来自「工厂环境污染控制数据采集器」· C语言 代码 · 共 2,994 行 · 第 1/5 页

C
2,994
字号
	UARTInit(1,9600);
	UARTInit(2,9600);
	UARTInit(3,19200);	

	set_uart0_to_rx_status();
	set_uart1_to_rx_status();
	set_uart2_to_rx_status();
	set_uart3_to_rx_status();	*/
	/////////////////  init some device
 	L_HC595_SHCP();
 	L_HC595_STCP();
 	L_HC595_DS();
	
	H_TLV2556_CS1();
	H_TLV2556_CS2();
	L_TLV2556_CLK();
	
	H_STC51SS();
	L_STC51SCK();
	L_STC51MISO();
 	
 	OFF_BEEP();
	
	OFF_LED18();
	OFF_LED23();
	
	SET_OUTPUT_STATUS(1,0);
	SET_OUTPUT_STATUS(2,0);
	SET_OUTPUT_STATUS(3,0);
	SET_OUTPUT_STATUS(4,0);
	//////////////////   init the variable
	SYSTEM_STATUS=SHOW_MAIN_VIEW_1;
	KEY_CODE=0X00;
	key_debounce_flag=0;
	IO_STATUS=0;
	JIN_SHUI_SHE_ZHE_FLAG=0;
	
	UART4Count=0;
	UART4TxEmpty=1;
	
	udp_wait_ack=0;
	/////////////////////
 	delay(10000);       //wait for a monent when power_up then initialize the device
	////////////////// LCD init
 	GUI_Initialize();   //	
	show_start_screent();	
	
	///////////////////file system init
	finit();
	//////////////////
	feed_watchdog();
    ///////////////////tcp_ip init
	init_TcpNet();	
	//////////////////
	feed_watchdog();
		
 	//////////////////AD converter init
	CONTROL_TLV2556(0,0x0f,0x00);
	CONTROL_TLV2556(1,0x0f,0x00);
	///////////////// eeprom init
	init_eeprom();

    var1 = read(SYS_INIT_BYTE_ADDR,TEMP_PASSWORD_BUF, 1);

	//if (TEMP_PASSWORD_BUF[0] != 'I')
	//	initeeprom();

	///////////////读取密码
	read(PASSWORD_ADDRESS,TEMP_PASSWORD_BUF,6);
	///////////////进水流量 使用与不使用
	read(JIN_SUI_LIU_LIANG_USED_ADDR,tmp_buf1,6);
	JIN_SUI_FLAG1=tmp_buf1[0];
	//////////////
	//读取配置文件
	config();
  	//////////////////////////////////////
	//////////////////// init the UARTs
	UARTInit(0, g_site_conf_extend.com_port[0].baud);
	UARTInit(1, g_site_conf_extend.com_port[1].baud);
	UARTInit(2, g_site_conf_extend.com_port[2].baud);
	UARTInit(3, g_site_conf_extend.com_port[3].baud);	
	set_uart0_to_rx_status();
	set_uart1_to_rx_status();
	set_uart2_to_rx_status();
	set_uart3_to_rx_status();
	/////////////set local ip//////////////////////////////

	Ldelay(20);	
	display_main_view_screen_1();

 	////////////////set center ip/protocol//////////////////////////
   // Initialize UDP Socket and start listening
   socket_udp = udp_get_socket (0, UDP_OPT_SEND_CS | UDP_OPT_CHK_CS, udp_callback);
   if (socket_udp != 0) {
      udp_open (socket_udp,1001);
   }
	
   // Initialize TCP Socket and start listening
   socket_tcp = tcp_get_socket(TCP_TYPE_SERVER, 0, 10, tcp_callback);
   if(socket_tcp != 0) 
   {
      tcp_listen (socket_tcp,1000);
   }	


	///////////////
	enable_timer(0);
	///////////////
    ///////////////////////////////////////////////////////

	SUN_SHI_LIU_LIANG=0;

	
	
	while(1)
	{
		///////////////TCP UDP part
		main_TcpNet();
			
		if(tcpip_time_base>=20)
		{
			tcpip_time_base=0;
			timer_tick();
		}
		
		///////////////read AD converter  and  DIGITAL input
		if(read_ad_timebase>=3)  //30ms
		{
			read_ad_timebase=0;
			READ_AD_INPUT();
		}
		
		/////////////UART 4 service  (use stc12c5410)		
		DUMMY_READ_UART4();
		
		//////////////KEY SCAN
		if(key_scan_time_base_counter>5)
		{
			key_scan_time_base_counter=0;
			KEY_SCAN();
		}
		
		
		/////////////FEED THE WATCH_DOG	
		feed_watchdog();
		if (g_site_conf_extend.devsnap.bHasFlow)
		{
			//判断是否读流量探头
			switch (g_site_conf_extend.flux_param.FLUX_SET)
			{
				case 1:
					readrisendata();
					break;
				case 2:
					break;
				case 3:
					break;
				default:
					
					break;
			}
			////////流量采集 //////////
			if (flow_collection_timebase >= (100 * g_site_conf_extend.flux_param.sleeptime))
			{
				flow_collection_timebase = 0;
				switch (g_site_conf_extend.flux_param.FLUX_SET)
				{
					case 1:
						sendtorisen();
						break;
					case 2:	//AD,在AD的时间片去读取
						break;
					case 3:	//other	flow device	,读取串口获得其他流量计数据
						break;
					default:
						break;
				}
			}
		}
		else
		{
			//setinstantflow(0);
		}

		if (g_site_conf_extend.devsnap.bHasPH)
		{
			//PH采集
		}
		else
		{
			//setinstantflow(0);
		}

		if (g_site_conf_extend.devsnap.bHasCOD)
		{
			//COD采集
		}
		else
		{
			//setinstantflow(0);
		}

		if (g_site_conf_extend.devsnap.bHasMotor)
		{
			//电机状态采集
		}
		else
		{
			//setinstantflow(0);
		}

		//1查看是否到统计时间如果是则统计(统计时间,5 min/1 hour/1 day  )

		//2查看是否到达数据上报时间,如果是则上报

		//3查看是否到DO时间,如是则控制

		if(send_request_by_uart4_timebase>100)
		{
			//该口固定用于远程通信
			send_request_by_uart4_timebase=0;
			UART4_SEND(0x01);
			UART4_SEND(0x03);
			UART4_SEND(0x00);
			UART4_SEND(0x06);
			UART4_SEND(0x00);
			UART4_SEND(0x02);
			UART4_SEND(0x24);
			UART4_SEND(0x0a);
			
			buf1[0]=0x55;
			UARTSend(0,buf1,1);
			UARTSend(1,buf1,1);
			UARTSend(2,buf1,1);
			UARTSend(3,buf1,1);
			
		}
		///////////////////  send AD status by UDP
		if(send_status_by_udp_timebase>100)
		{
			send_status_by_udp_timebase=0;
			////////
			udp_sendbuf = udp_get_buf(20);
			udp_sendbuf[0]=(TEMP_CHANNEL_1_AD_VALUE>>8)&0x0f;
			udp_sendbuf[1]=TEMP_CHANNEL_1_AD_VALUE&0x0f;
			flag1=udp_send (socket_udp,remip,1001,udp_sendbuf,2);
		}
		/////////////////////save to file
		if(save_to_sd_card_file_timebase>150)
		{
			save_to_sd_card_file_timebase=0;
			//////////
			/*ff_handle=__fopen("aa.txt",FILE_A);
			test_long=__get_flen(ff_handle);
			__setfpos(ff_handle,test_long);	
			//__read(ff_handle,tmp_buf1,2);
			tmp_buf1[0]=(TEMP_CHANNEL_1_AD_VALUE>>8)&0x0f;
			tmp_buf1[1]=TEMP_CHANNEL_1_AD_VALUE&0x0f;
			__write(ff_handle,tmp_buf1,2);
			__fclose(ff_handle);*/
			
		}
		
		
		

		//////////////////SYSTEM STATUS HANDLE
		switch(SYSTEM_STATUS)
		{
			case IDLE:
				break;
			case SHOW_MAIN_VIEW_1:
				if(refresh_input_value_counter>200)
				{
					refresh_input_value_counter=0;
					display_main_view_screen_1();
					
				}
				
				if(KEY_CODE==2)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_2;
					display_main_view_screen_2();
				}
				else if(KEY_CODE==3)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_3;
					show_menu_14_screen(1,TEMP_CHANNEL_1_AD_VALUE,2,TEMP_CHANNEL_2_AD_VALUE);
				}
				else if(KEY_CODE==4)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_4;
					show_menu_14_screen(3,TEMP_CHANNEL_3_AD_VALUE,4,TEMP_CHANNEL_4_AD_VALUE);
				}
				else if(KEY_CODE==5)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_5;
					show_menu_14_screen(5,TEMP_CHANNEL_5_AD_VALUE,6,TEMP_CHANNEL_6_AD_VALUE);
				}
				else if(KEY_CODE==6)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_6;
					show_menu_14_screen(7,TEMP_CHANNEL_7_AD_VALUE,8,TEMP_CHANNEL_8_AD_VALUE);
				}
				else if(KEY_CODE==7)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_7;
					show_menu_14_screen(9,TEMP_CHANNEL_9_AD_VALUE,10,TEMP_CHANNEL_10_AD_VALUE);
				}
				else if(KEY_CODE==8)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_8;
					show_menu_14_screen(11,TEMP_CHANNEL_11_AD_VALUE,12,TEMP_CHANNEL_12_AD_VALUE);
				}
				else if(KEY_CODE==9)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_9;
					show_menu_15_screen(IO_STATUS);
				}
				else if(KEY_CODE==0x10)    //进入设置
				{
					//SYSTEM_STATUS=SETTING_MENU1;
					//temp_sel_1=1;
					//show_menu_1_screen();
					
					SYSTEM_STATUS=INPUT_PASSWORD_STATUS;
					temp_sel_1=1;
					input_password_pos_var1=0;
					show_password_input_screen(input_password_pos_var1);
					
				}
				KEY_CODE==0;
				break;
			case SHOW_MAIN_VIEW_2:
				if(refresh_input_value_counter>200)
				{
					refresh_input_value_counter=0;
					display_main_view_screen_2();
				}				
				
				if(KEY_CODE==1)
				{
					KEY_CODE=0;
					SYSTEM_STATUS=SHOW_MAIN_VIEW_1;
					display_main_view_screen_1();
				}
				else if(KEY_CODE==3)
				{
					KEY_CODE=0;
					SYSTEM_STATUS=SHOW_MAIN_VIEW_3;
					show_menu_14_screen(1,TEMP_CHANNEL_1_AD_VALUE,2,TEMP_CHANNEL_2_AD_VALUE);
				}
				else if(KEY_CODE==4)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_4;
					show_menu_14_screen(3,TEMP_CHANNEL_3_AD_VALUE,4,TEMP_CHANNEL_4_AD_VALUE);
				}
				else if(KEY_CODE==5)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_5;
					show_menu_14_screen(5,TEMP_CHANNEL_5_AD_VALUE,6,TEMP_CHANNEL_6_AD_VALUE);
				}
				else if(KEY_CODE==6)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_6;
					show_menu_14_screen(7,TEMP_CHANNEL_7_AD_VALUE,8,TEMP_CHANNEL_8_AD_VALUE);
				}
				else if(KEY_CODE==7)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_7;
					show_menu_14_screen(9,TEMP_CHANNEL_9_AD_VALUE,10,TEMP_CHANNEL_10_AD_VALUE);
				}
				else if(KEY_CODE==8)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_8;
					show_menu_14_screen(11,TEMP_CHANNEL_11_AD_VALUE,12,TEMP_CHANNEL_12_AD_VALUE);
				}
				else if(KEY_CODE==9)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_9;
					show_menu_15_screen(IO_STATUS);
				}				
				else if(KEY_CODE==0x10)    //进入设置
				{
					//KEY_CODE=0;
					//SYSTEM_STATUS=SETTING_MENU1;
					//temp_sel_1=2;
					//show_menu_1_screen();
					
					SYSTEM_STATUS=INPUT_PASSWORD_STATUS;
					temp_sel_1=2;
					input_password_pos_var1=0;
					show_password_input_screen(input_password_pos_var1);					
				}
				KEY_CODE=0;
				break;
			case SHOW_MAIN_VIEW_3:
				if(refresh_input_value_counter>200)
				{
					refresh_input_value_counter=0;
					show_menu_14_screen(1,TEMP_CHANNEL_1_AD_VALUE,2,TEMP_CHANNEL_2_AD_VALUE);
				}				
				
				if(KEY_CODE==1)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_1;
					display_main_view_screen_1();
				}
				else if(KEY_CODE==2)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_2;
					display_main_view_screen_2();
				}
				else if(KEY_CODE==4)
				{
					KEY_CODE=0;
					SYSTEM_STATUS=SHOW_MAIN_VIEW_4;
					show_menu_14_screen(3,TEMP_CHANNEL_3_AD_VALUE,4,TEMP_CHANNEL_4_AD_VALUE);
				}
				else if(KEY_CODE==5)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_5;
					show_menu_14_screen(5,TEMP_CHANNEL_5_AD_VALUE,6,TEMP_CHANNEL_6_AD_VALUE);
				}
				else if(KEY_CODE==6)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_6;
					show_menu_14_screen(7,TEMP_CHANNEL_7_AD_VALUE,8,TEMP_CHANNEL_8_AD_VALUE);
				}
				else if(KEY_CODE==7)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_7;
					show_menu_14_screen(9,TEMP_CHANNEL_9_AD_VALUE,10,TEMP_CHANNEL_10_AD_VALUE);
				}
				else if(KEY_CODE==8)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_8;
					show_menu_14_screen(11,TEMP_CHANNEL_11_AD_VALUE,12,TEMP_CHANNEL_12_AD_VALUE);
				}
				else if(KEY_CODE==9)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_9;
					show_menu_15_screen(IO_STATUS);
				}				
				else if(KEY_CODE==0x10)    //进入设置
				{
					//SYSTEM_STATUS=SETTING_MENU1;
					//temp_sel_1=3;
					//show_menu_1_screen();
					
					SYSTEM_STATUS=INPUT_PASSWORD_STATUS;
					temp_sel_1=3;
					input_password_pos_var1=0;
					show_password_input_screen(input_password_pos_var1);					
				}
				KEY_CODE=0;
				break;
			case SHOW_MAIN_VIEW_4:
				if(refresh_input_value_counter>200)
				{
					refresh_input_value_counter=0;
					show_menu_14_screen(3,TEMP_CHANNEL_3_AD_VALUE,4,TEMP_CHANNEL_4_AD_VALUE);
				}					
				
				if(KEY_CODE==1)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_1;
					display_main_view_screen_1();
				}
				else if(KEY_CODE==2)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_2;
					display_main_view_screen_2();
				}
				else if(KEY_CODE==3)
				{
					KEY_CODE=0;
					SYSTEM_STATUS=SHOW_MAIN_VIEW_3;
					show_menu_14_screen(1,TEMP_CHANNEL_1_AD_VALUE,2,TEMP_CHANNEL_2_AD_VALUE);
				}
				else if(KEY_CODE==5)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_5;
					show_menu_14_screen(5,TEMP_CHANNEL_5_AD_VALUE,6,TEMP_CHANNEL_6_AD_VALUE);
				}
				else if(KEY_CODE==6)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_6;
					show_menu_14_screen(7,TEMP_CHANNEL_7_AD_VALUE,8,TEMP_CHANNEL_8_AD_VALUE);
				}
				else if(KEY_CODE==7)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_7;
					show_menu_14_screen(9,TEMP_CHANNEL_9_AD_VALUE,10,TEMP_CHANNEL_10_AD_VALUE);
				}
				else if(KEY_CODE==8)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_8;
					show_menu_14_screen(11,TEMP_CHANNEL_11_AD_VALUE,12,TEMP_CHANNEL_12_AD_VALUE);
				}
				else if(KEY_CODE==9)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_9;
					show_menu_15_screen(IO_STATUS);
				}				
				else if(KEY_CODE==0x10)    //进入设置
				{
					//SYSTEM_STATUS=SETTING_MENU1;
					//temp_sel_1=4;
					//show_menu_1_screen();
					
					SYSTEM_STATUS=INPUT_PASSWORD_STATUS;
					temp_sel_1=4;
					input_password_pos_var1=0;
					show_password_input_screen(input_password_pos_var1);					
				}				
				KEY_CODE=0;
				break;
			case SHOW_MAIN_VIEW_5:
				if(refresh_input_value_counter>200)
				{
					refresh_input_value_counter=0;
					show_menu_14_screen(5,TEMP_CHANNEL_5_AD_VALUE,6,TEMP_CHANNEL_6_AD_VALUE);
				}					
				
				if(KEY_CODE==1)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_1;
					display_main_view_screen_1();
				}
				else if(KEY_CODE==2)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_2;
					display_main_view_screen_2();
				}
				else if(KEY_CODE==3)
				{
					KEY_CODE=0;
					SYSTEM_STATUS=SHOW_MAIN_VIEW_3;
					show_menu_14_screen(1,TEMP_CHANNEL_1_AD_VALUE,2,TEMP_CHANNEL_2_AD_VALUE);
				}
				else if(KEY_CODE==4)
				{
					KEY_CODE=0;
					SYSTEM_STATUS=SHOW_MAIN_VIEW_4;
					show_menu_14_screen(3,TEMP_CHANNEL_3_AD_VALUE,4,TEMP_CHANNEL_4_AD_VALUE);
				}				
				else if(KEY_CODE==6)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_6;
					show_menu_14_screen(7,TEMP_CHANNEL_7_AD_VALUE,8,TEMP_CHANNEL_8_AD_VALUE);
				}
				else if(KEY_CODE==7)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_7;
					show_menu_14_screen(9,TEMP_CHANNEL_9_AD_VALUE,10,TEMP_CHANNEL_10_AD_VALUE);
				}
				else if(KEY_CODE==8)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_8;
					show_menu_14_screen(11,TEMP_CHANNEL_11_AD_VALUE,12,TEMP_CHANNEL_12_AD_VALUE);
				}
				else if(KEY_CODE==9)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_9;
					show_menu_15_screen(IO_STATUS);
				}				
				else if(KEY_CODE==0x10)    //进入设置
				{
					//SYSTEM_STATUS=SETTING_MENU1;
					//temp_sel_1=5;
					//show_menu_1_screen();
					
					SYSTEM_STATUS=INPUT_PASSWORD_STATUS;
					temp_sel_1=5;
					input_password_pos_var1=0;
					show_password_input_screen(input_password_pos_var1);					
				}
				KEY_CODE=0;
				break;
			case SHOW_MAIN_VIEW_6:
				if(refresh_input_value_counter>200)
				{
					refresh_input_value_counter=0;
					show_menu_14_screen(7,TEMP_CHANNEL_7_AD_VALUE,8,TEMP_CHANNEL_8_AD_VALUE);
				}				
				
				if(KEY_CODE==1)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_1;
					display_main_view_screen_1();
				}
				else if(KEY_CODE==2)
				{
					SYSTEM_STATUS=SHOW_MAIN_VIEW_2;
					display_main_view_screen_2();
				}
				else if(KEY_CODE==3)
				{

⌨️ 快捷键说明

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