📄 enter.c
字号:
/****************************************************
*Copyright (c) 2007, 新芝股份
*All rights reserved.
*
*文件名称:common.c
*
*当前版本:1.1
*作者:黄文剑
*完成日期:2007.10.10
*
*取代版本:1.0
*原作者:
*完成日期:2007.10.16
****************************************************/
#include <pic.h>
#include <string.h>
#include "D:\ql200\com\com.h"
#include "D:\ql200\key\key.h"
#include "D:\ql200\lcd\lcd.h"
#include "enter.h"
const unsigned char enter_menu_string1[11] = "abcdefghi#";
const unsigned char enter_menu_string2[11] = "jklmnopqr#";
const unsigned char enter_menu_string3[6] = "Name:";
const unsigned char enter_menu_string4[11] = "#stuvwxyz#";
const unsigned char enter_menu_string5[11] = "()*+,-./=#";
const unsigned char enter_menu_string0[7] = "Enter:";
const unsigned char tem_ctrl_mode[16] = "Control Method:";
const unsigned char mode1[6] = "BLOCK";
const unsigned char mode2[9] = "Sim-Tube";
bank1 unsigned char file_name[9] = {0};
bank1 unsigned char file_name_get[9] = {0};
bank1 unsigned char file_name_index = 0;
void Dsp_Enter_Menu()
{
Lcd_Clr();
Lcd_Show_RomString(enter_menu_string0);
Lcd_MoveTo_Position(10);
Lcd_Show_RomString(enter_menu_string1);
Lcd_MoveTo_Position(30);
Lcd_Show_RomString(enter_menu_string2);
Lcd_MoveTo_Position(40);
Lcd_Show_RomString(enter_menu_string3);
Lcd_MoveTo_Position(50);
Lcd_Show_RomString(enter_menu_string4);
Lcd_MoveTo_Position(70);
Lcd_Show_RomString(enter_menu_string5);
Lcd_MoveTo_Position(10);
}
unsigned char Enter_Name(unsigned char *name)
{
KEY_VALUE key_value = 0;
unsigned char *new_name = NULL;
unsigned char i = 0;
unsigned char j = 0;
unsigned char cur_position = 0;
unsigned char wr_en = 0;
unsigned char bExit = 0;
new_name = name;
cur_position = Lcd_Get_Current_position(); //get the LCD current position
while(!bExit)
{
key_value = Keypad_HighISR();
if(i > 7)
{
bExit = 1;
break;
}
switch(key_value)
{
case KEY_ERROR:
break;
case KEY_0:
{
j = 0;
new_name[i] = 0x30+j;
wr_en = 1;
break;
}
case KEY_1:
{
j = 1;
new_name[i] = 0x30+j;
wr_en = 1;
break;
}
case KEY_2:
{
j = 2;
new_name[i] = 0x30+j;
wr_en = 1;
break;
}
case KEY_3:
{
j = 3;
new_name[i] = 0x30+j;
wr_en = 1;
break;
}
case KEY_4:
{
j = 4;
new_name[i] = 0x30+j;
wr_en = 1;
break;
}
case KEY_5:
{
j = 5;
new_name[i] = 0x30+j;
wr_en = 1;
break;
}
case KEY_6:
{
j = 6;
new_name[i] = 0x30+j;
wr_en = 1;
break;
}
case KEY_7:
{
j = 7;
new_name[i] = 0x30+j;
wr_en = 1;
break;
}
case KEY_8:
{
j = 8;
new_name[i] = 0x30+j;
wr_en = 1;
break;
}
case KEY_9:
{
j = 9;
new_name[i] = 0x30+j;
wr_en = 1;
break;
}
case KEY_LEFT:
{
Lcd_Cursor_Left();
break;
}
case KEY_RIGHT:
{
Lcd_Cursor_Right();
break;
}
case KEY_UP:
{
Lcd_Cursor_Up();
break;
}
case KEY_DOWN:
{
Lcd_Cursor_Down();
break;
}
case KEY_ENTER:
{
if(i > 7)
break;
cur_position = Lcd_Get_Current_position();
if((cur_position >= 10) && (cur_position <= 18))
{
new_name[i] = cur_position + 87;
wr_en = 1;
}
else if((cur_position >= 30) && (cur_position <= 38))
{
new_name[i] = cur_position + 76;
wr_en = 1;
}
else if((cur_position >= 51) && (cur_position <= 58))
{
new_name[i] = cur_position + 64;
wr_en = 1;
}
else if((cur_position >= 70) && (cur_position <= 77))
{
new_name[i] = cur_position - 30;
wr_en = 1;
}
else if(cur_position == 78)
{
new_name[i] = 61;
wr_en = 1;
}
else if((cur_position == 19) ||
(cur_position == 39) ||
(cur_position == 50) ||
(cur_position == 59) ||
(cur_position == 79))
{
new_name[i] = 0;
bExit = 1;
wr_en = 0;
}
break;
}
case KEY_BACK:
{
return 1;
}
default:
break;
}
if((key_value != KEY_ERROR) && (wr_en == 1))
{
Lcd_MoveTo_Position(60+i); //move to write position
Lcd_Write_Data(new_name[i]); //write the input name to lcd
Lcd_MoveTo_Position(cur_position); //move the cursor to current position
wr_en = 0;
i++;
}
}
//memcpy(name, new_name, 9);
return 0;
}
unsigned char Enter_Select_Tem_Ctrl_Mode(unsigned char *file_name)
{
KEY_VALUE key_value = 0;
unsigned char bExit = 0;
unsigned char lcd_position = 0;
Lcd_Clr();
Lcd_Show_RomString(enter_menu_string0);
Lcd_MoveTo_Position(10);
Lcd_Show_String(file_name);
Lcd_MoveTo_Position(40);
Lcd_Show_RomString(tem_ctrl_mode);
Lcd_MoveTo_Position(60);
Lcd_Show_RomString(mode1);
Lcd_MoveTo_Position(70);
Lcd_Show_RomString(mode2);
while(!bExit)
{
key_value = Keypad_HighISR();
switch(key_value)
{
case KEY_ERROR:
break;
case KEY_0:
break;
case KEY_1:
break;
case KEY_2:
break;
case KEY_3:
break;
case KEY_4:
break;
case KEY_5:
break;
case KEY_6:
break;
case KEY_7:
break;
case KEY_8:
break;
case KEY_9:
break;
case KEY_LEFT:
{
Lcd_Cursor_Left();
break;
}
case KEY_RIGHT:
{
Lcd_Cursor_Right();
break;
}
case KEY_UP:
{
Lcd_Cursor_Up();
break;
}
case KEY_DOWN:
{
Lcd_Cursor_Down();
break;
}
case KEY_ENTER:
{
lcd_position = Lcd_Get_Current_position();
if((lcd_position >= 60) || (lcd_position <= 64))
{
return 0;
}
else if((lcd_position >= 70) || (lcd_position <= 77))
{
return 1;
}
//bExit = 1;
break;
}
case KEY_BACK:
bExit = 1;
break;
default:
break;
}
}
}
void Enter_Menu()
{
KEY_VALUE key_value = 0;
unsigned char ret = 0;
unsigned char eep_value = 0;
unsigned char bExit = 0;
while(!bExit)
{
Dsp_Enter_Menu();
ret = Enter_Name(file_name);
if(ret == 0)
{
Lcd_Clr();
Lcd_Show_String(file_name);
Eep_Rom_Write_Filename(file_name_index, file_name);
file_name_index++;
}
else if(ret == 1)
{
bExit = 1;
break;
}
Delay_10ms_ISR(1);
Eep_Rom_Read_Filename(file_name_index - 1, file_name_get);
Enter_Select_Tem_Ctrl_Mode(file_name_get);
key_value = Keypad_HighISR();
switch(key_value)
{
case KEY_ERROR:
break;
case KEY_0:
break;
case KEY_1:
break;
case KEY_2:
break;
case KEY_3:
break;
case KEY_4:
break;
case KEY_5:
break;
case KEY_6:
break;
case KEY_7:
break;
case KEY_8:
break;
case KEY_9:
break;
case KEY_LEFT:
{
Lcd_Cursor_Left();
break;
}
case KEY_RIGHT:
{
Lcd_Cursor_Right();
break;
}
case KEY_UP:
{
Lcd_Cursor_Up();
break;
}
case KEY_DOWN:
{
Lcd_Cursor_Down();
break;
}
case KEY_ENTER:
bExit = 1;
break;
case KEY_BACK:
bExit = 1;
break;
default:
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -