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

📄 keyboard.c

📁 用C8051F020实现的基于TCP/IP协议的虚功率源。C8051F020外接LCD,键盘,USB接口
💻 C
📖 第 1 页 / 共 4 页
字号:
				}
			break;
			case B_KEY:
				{
					switch(Interface)
						{
							case MAIN_SCREEN:
								{
									Line = 2;
									Input = 1;
									Yy_value = 40;
									value_count = 0;
									point_exist = 0;
									for(i=0;i<5;i++)
										{
											value_i_tmp[i] = '0';
										}
									interface_main();
								}
							break;
							case MENU_SCREEN:
								{
									if(Line==1)
										break;
									else
										{
											Line--;
											interface_menu();
										}
								}
							break;
							case COMMUNICATION_SCREEN:
								{
									if(Line==1)
										break;
									else
										{
											Line--;
											interface_communication();
										}
								}
							break;
							case RS232C_SCREEN:
								{
									if(Line < 1)
										{
											Input = 0;
											break;
										}
									else
										{
											Line--;
											Input = 1;
											value_count = 0;
											if(Line==1)
												{
													Yy_value = 48;
													for(i=0;i<6;i++)
														{
															value_baudrate_tmp[i] = 0x00;
														}
												}
											if(Line==2)
												{
													Yy_value = 64;
													value_datadigit_tmp[0] = 0x00;
												}
											if(Line==3)
												{
													Yy_value = 80;
													value_stopdigit_tmp[0] = 0x00;
												}
											interface_rs232c();
										}
								}
							break;
							case LXI_SCREEN:
								{
									if(Line < 1)
										{
											Input = 0;
											break;
										}
									else
										{
											Line--;
											Input = 1;
											value_count = 0;
											if(Line==1)
												{
													Yy_value = 48;
													for(i=0;i<15;i++)
														{
															value_ip_tmp[i] = 0x00;
														}
												}
											if(Line==2)
												{
													Yy_value = 64;
													for(i=0;i<15;i++)
														{
															value_mask_tmp[i] = 0x00;
														}
												}
											if(Line==3)
												{
													Yy_value = 80;
													for(i=0;i<15;i++)
														{
															value_gateway_tmp[i] = 0x00;
														}
												}
											if(Line==4)
												{
													Yy_value = 96;
													for(i=0;i<15;i++)
														{
															value_dns_tmp[i] = 0x00;
														}
												}
											interface_lxi();
										}
								}
							break;
						}
				}
			break;
			case C_KEY:
				{
					switch(Interface)
						{
							case MAIN_SCREEN:
								{
									Line = 3;
									Input = 1;
									Yy_value = 56;
									value_count = 0;
									for(i=0;i<2;i++)
										{
											value_f_tmp[i] = '0';
										}
									interface_main();
								}
							break;
							case MENU_SCREEN:
								{
									if(Line==3)
										break;
									else
										{
											Line++;
											interface_menu();
										}
								}
							break;
							case COMMUNICATION_SCREEN:
								{
									if(Line==3)
										break;
									else
										{
											Line++;
											interface_communication();
										}
								}
							break;
							case RS232C_SCREEN:
								{
									if(Line > 4)
										{
											Input = 0;
											break;
										}
									else
										{
											Line++;
											Input = 1;
											value_count = 0;
											if(Line==1)
												{
													Yy_value = 48;
													for(i=0;i<6;i++)
														{
															value_baudrate_tmp[i] = 0x00;
														}
												}
											if(Line==2)
												{
													Yy_value = 64;
													value_datadigit_tmp[0] = 0x00;
												}
											if(Line==3)
												{
													Yy_value = 80;
													value_stopdigit_tmp[0] = 0x00;
												}
											interface_rs232c();
										}
								}
							break;
						    case LXI_SCREEN:
								{
									if(Line > 4)
										{
											Input = 0;
											break;
										}
									else
										{
											Line++;
											Input = 1;
											value_count = 0;
											if(Line==1)
												{
													Yy_value = 48;
													for(i=0;i<15;i++)
														{
															value_ip_tmp[i] = 0x00;
														}
												}
											if(Line==2)
												{
													Yy_value = 64;
													for(i=0;i<15;i++)
														{
															value_mask_tmp[i] = 0x00;
														}
												}
											if(Line==3)
												{
													Yy_value = 80;
													for(i=0;i<15;i++)
														{
															value_gateway_tmp[i] = 0x00;
														}
												}
											if(Line==4)
												{
													Yy_value = 96;
													for(i=0;i<15;i++)
														{
															value_dns_tmp[i] = 0x00;
														}
												}
											interface_lxi();
										}
								}
							break;
						}
				}
			break;
			case D_KEY:
				{
					switch(Interface)
						{
							case MAIN_SCREEN:
								{
									Line = 4;
									Input = 1;
									Yy_value = 72;
									value_count = 0;
									point_exist = 0;
									for(i=0;i<5;i++)
										{
											value_fi_tmp[i] = '0';
										}
									interface_main();
								}
							break;
							case MENU_SCREEN:
								{
									Line = 0;
									Interface = MAIN_SCREEN;
									lcd_clear();	
									interface_main();
								}
							break;
							case COMMUNICATION_SCREEN:
								{
									Interface = MENU_SCREEN;
									Line = 1;
									Input = 0;
									lcd_clear();
									interface_menu();
								}
							break;
							case RS232C_SCREEN:
								{
									Interface = COMMUNICATION_SCREEN;
									Line = 1;
									Input = 0;
									lcd_clear();
									interface_communication();
								}
							break;
							case LXI_SCREEN:
								{
									Interface = COMMUNICATION_SCREEN;
									Line = 1;
									Input = 0;
									lcd_clear();
									interface_communication();
								}
							break;
						}
				}
			break;
			case KEY_1:
				{
					if(Input==1)
						{
							if(Interface==MAIN_SCREEN)
								{
									if(Line==1)
										{	if(value_count==5)
												break;
											if(point_exist==0)
												{
													value_u_tmp[value_count] = '1';
													value_count++;
													value_u_tmp[value_count] = '.';
												}
											else
												{
													value_u_tmp[value_count] = '1';
													value_count++;
												}
										}
									if(Line==2)
										{
											if(value_count==5)
												break;
											if(point_exist==0)
												{
													value_i_tmp[value_count] = '1';
													value_count++;
													value_i_tmp[value_count] = '.';
												}
											else
												{
													value_i_tmp[value_count] = '1';
													value_count++;
												}
										}
									if(Line==3)
										{
											if(value_count==2)
												break;
											value_f_tmp[value_count] = '1';
											value_count++;
										}
									if(Line==4)
										{
											if(value_count==5)
												break;
											if(point_exist==0)
												{
													value_fi_tmp[value_count] = '1';
													value_count++;
													value_fi_tmp[value_count] = '.';
												}
											else
												{
													value_fi_tmp[value_count] = '1';
													value_count++;
												}
										}
								}
							if(Interface==RS232C_SCREEN)
								{
									if(Line==1)
										{
											if(value_count==6)
												break;
											value_baudrate_tmp[value_count] = '1';
											value_count++;
										}
									if(Line==2)
										{
											if(value_count==1)
												break;
											value_datadigit_tmp[value_count] = '1';
											value_count++;
										}
									if(Line==3)
										{
											if(value_count==1)
												break;
											value_stopdigit_tmp[value_count] = '1';
											value_count++;
										}
								}
							if(Interface==LXI_SCREEN)
								{
									if(Line==1)
										{
											if(value_count==15)
												break;
											value_ip_tmp[value_count] = '1';
											value_count++;
										}
									if(Line==2)
										{
											if(value_count==15)
												break;
											value_mask_tmp[value_count] = '1';
											value_count++;
										}
									if(Line==3)
										{
											if(value_count==15)
												break;
											value_gateway_tmp[value_count] = '1';
											value_count++;
										}
									if(Line==4)
										{
											if(value_count==15)
												break;
											value_dns_tmp[value_count] = '1';
											value_count++;
										}
								}
							display_digit(Cursor,Yy_value,0x31);	//在当前位置显示数字
							//在当前位置显示下划线
							write_lcd(0xF3);
							write_lcd(Cursor);
							write_lcd(Yy_value + 15);
							write_lcd(0xFF);
							Cursor++;
						}
				}
			break;
			case KEY_2:
				{
					if(Input==1)
						{
							if(Interface==MAIN_SCREEN)
								{
									if(Line==1)
										{
											if(value_count==5)
												break;
											if(point_exist==0)
												{
													value_u_tmp[value_count] = '2';
													value_count++;
													value_u_tmp[value_count] = '.';
												}
											else
												{
													value_u_tmp[value_count] = '2';
													value_count++;
												}
										}
									if(Line==2)
										{	if(value_count==5)
												break;
											if(point_exist==0)
												{
													value_i_tmp[value_count] = '2';
													value_count++;
													value_i_tmp[value_count] = '.';
												}
											else
												{
													value_i_tmp[value_count] = '2';
													value_count++;
												}
										}
									if(Line==3)
										{
											if(value_count==2)
												break;
											value_f_tmp[value_count] = '2';
											value_count++;
										}
									if(Line==4)
										{
											if(value_count==5)
												break;
											if(point_exist==0)
												{
													value_fi_tmp[value_count] = '2';
													value_count++;
													value_fi_tmp[value_count] = '.';
												}
											else
												{
													value_fi_tmp[value_count] = '2';
													value_count++;
												}
										}
								}
							if(Interface==RS232C_SCREEN)
								{
									if(Line==1)
										{
											if(value_count==6)
												break;
											value_baudrate_tmp[value_count] = '2';
											value_count++;
										}
									if(Line==2)
										{
											if(value_count==1)
												break;
											value_datadigit_tmp[value_count] = '2';
											value_count++;
										}
									if(Line==3)
										{
											if(value_count==1)
												break;
											value_stopdigit_tmp[value_count] = '2';
											value_count++;
										}
								}
							if(Interface==LXI_SCREEN)
								{
									if(Line==1)
										{
											if(value_count==15)
												break;
											value_ip_tmp[value_count] = '2';
											value_count++;
										}
									if(Line==2)
										{
											if(value_count==15)
												break;
											value_mask_tmp[value_count] = '2';
											value_count++;
										}
									if(Line==3)
										{
											if(value_count==15)
												break;
											value_gateway_tmp[value_count] = '2';
											value_count++;
										}
									if(Line==4)
										{
											if(value_count==15)
												break;
											value_dns_tmp[value_count] = '2';
											value_count++;
										}
								}
							display_digit(Cursor,Yy_value,0x32);
							//在当前位置显示下划线
							write_lcd(0xF3);
							write_lcd(Cursor);
							write_lcd(Yy_value + 15);
							write_lcd(0xFF);

⌨️ 快捷键说明

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