📄 pinyininput.h
字号:
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_g_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"g "))Input[1]='a';
for(i=0;i<19;i++)
if(StringCompare(Input,PY_index_g[i]))return(acFontHZHei_g5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_h_index(*Input)
// 功能介绍: 从h开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_h_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"h "))Input[1]='a';
for(i=0;i<19;i++)
if(StringCompare(Input,PY_index_h[i]))return(acFontHZHei_h5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_j_index(*Input)
// 功能介绍: 从j开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_j_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"j "))Input[1]='i';
for(i=0;i<14;i++)
if(StringCompare(Input,PY_index_j[i]))return(acFontHZHei_j5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_k_index(*Input)
// 功能介绍: 从k开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_k_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"k "))Input[1]='a';
for(i=0;i<18;i++)
if(StringCompare(Input,PY_index_k[i]))return(acFontHZHei_k5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_l_index(*Input)
// 功能介绍: 从l开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_l_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"l "))Input[1]='a';
for(i=0;i<24;i++)
if(StringCompare(Input,PY_index_l[i]))return(acFontHZHei_l5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_m_index(*Input)
// 功能介绍: 从m开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_m_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"m "))Input[1]='a';
for(i=0;i<19;i++)
if(StringCompare(Input,PY_index_m[i]))return(acFontHZHei_m5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_n_index(*Input)
// 功能介绍: 从n开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_n_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"n "))Input[1]='a';
for(i=0;i<23;i++)
if(StringCompare(Input,PY_index_n[i]))return(acFontHZHei_n5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_o_index(*Input)
// 功能介绍: 从o开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_o_index(char *Input)
{
unsigned int i;
for(i=0;i<2;i++)
if(StringCompare(Input,PY_index_o[i]))return(acFontHZHei_o5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_p_index(*Input)
// 功能介绍: 从p开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_p_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"p "))Input[1]='a';
for(i=0;i<17;i++)
if(StringCompare(Input,PY_index_p[i]))return(acFontHZHei_p5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_q_index(*Input)
// 功能介绍: 从q开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_q_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"q "))Input[1]='i';
for(i=0;i<14;i++)
if(StringCompare(Input,PY_index_q[i]))return(acFontHZHei_q5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_r_index(*Input)
// 功能介绍: 从r开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_r_index(char *Input)
{
unsigned int i;
for(i=0;i<14;i++)
if(StringCompare(Input,PY_index_r[i]))return(acFontHZHei_r5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_s_index(*Input)
// 功能介绍: 从s开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_s_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"s "))Input[1]='a';
for(i=0;i<34;i++)
if(StringCompare(Input,PY_index_s[i]))return(acFontHZHei_s5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_t_index(*Input)
// 功能介绍: 从t开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_t_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"t "))Input[1]='a';
for(i=0;i<19;i++)
if(StringCompare(Input,PY_index_t[i]))return(acFontHZHei_t5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_w_index(*Input)
// 功能介绍: 从w开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_w_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"w "))Input[1]='a';
for(i=0;i<9;i++)
if(StringCompare(Input,PY_index_w[i]))return(acFontHZHei_w5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_x_index(*Input)
// 功能介绍: 从x开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_x_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"x "))Input[1]='i';
for(i=0;i<14;i++)
if(StringCompare(Input,PY_index_x[i]))return(acFontHZHei_x5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_y_index(*Input)
// 功能介绍: 从y开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_y_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"y "))Input[1]='a';
for(i=0;i<15;i++)
if(StringCompare(Input,PY_index_y[i]))return(acFontHZHei_y5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_z_index(*Input)
// 功能介绍: 从z开头的拼音里找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-16
unsigned char const *PY_z_index(char *Input)
{
unsigned int i;
if(StringCompare(Input,"z "))Input[1]='a';
for(i=0;i<36;i++)
if(StringCompare(Input,PY_index_z[i]))return(acFontHZHei_z5x5_pointer[i]);
return 0;
}
//=========================================================================================================
// 函数名: unsigned char const *PY_HZ_index(*Input)
// 功能介绍: 找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-17
extern unsigned char const *PY_HZ_index(char *Input)
{
if(Input[0]=='i'|| Input[0]=='u'||Input[0]=='v'||Input[0]==' ')return (0);
return((*PY_index[Input[0]-97])(Input));
}
//=========================================================================================================
// 函数名: PinYinInput()
// 功能介绍: 找出所要找的拼音,没有就返回0
// Author: chenyongxi
// Date: 2008-12-17
void PinYinInput(void)
{
char aa,Key[7]=" ";
unsigned int KeyNum=0,HzNum=0,i,page,flag=0;
unsigned char const *p[128];
unsigned char const *py;
while(1)
{
aa=Uart_Getch();
if(aa ==0x0d)
{
if(flag==0){flag=1;Lcd_DrawEnglishString7_10(150,93,"Char Input!");}
else {flag=0;Lcd_DrawEnglishString7_10(150,93,"HanZ Input!");}
}
//****************汉字输入
if(flag==0)
{
if(aa>='a' && aa<='z' && KeyNum<6)
{
Lcd_ClearLine(76,16);
Lcd_DrawChar12_16(0+KeyNum*12,93,aa);
Key[KeyNum] = aa;
KeyNum++;
py = PY_HZ_index(Key);
if(py!=0){Lcd_DrawChineseIndex(py,1);page=0;}
}
if(aa == 0x08)
{
if(KeyNum != 0)
{
Key[--KeyNum] = ' ';
Lcd_ClearLine(76,16);
Lcd_DrawChar12_16(0+KeyNum*12,93,' ');
py = PY_HZ_index(Key);
if(py!=0){Lcd_DrawChineseIndex(py,1);page=0;}
}
else if(HzNum!=0)
{
Lcd_ClearChinese16_16(((HzNum)%15)*16,((HzNum)/15)*16);
p[--HzNum]=0;
Lcd_DrawChar16_16(((HzNum)%15)*16,((HzNum)/15)*16,'|');//|
}
}
if(aa == ' '&&py!=0)
{
p[HzNum] = py+1+page*8*32;
Lcd_DrawChinese16_16((HzNum%15)*16,(HzNum/15)*16,p[HzNum]);//汉字
HzNum++;
Lcd_DrawChar16_16(((HzNum)%15)*16,((HzNum)/15)*16,'|');//|
for(i=0;i<6;i++)Key[i]=' ';
Lcd_DrawEnglishString12_16(0,93,Key);
KeyNum=0;
}
if(aa>='0'&&aa<='7'&&((aa-48)+page*8)<*py&&py!=0)
{
p[HzNum] = py+1+((aa-48)+page*8)*32;
Lcd_DrawChinese16_16((HzNum%15)*16,(HzNum/15)*16,p[HzNum]);//汉字
HzNum++;
Lcd_DrawChar16_16(((HzNum)%15)*16,((HzNum)/15)*16,'|');//|
for(i=0;i<6;i++)Key[i]=' ';
Lcd_DrawEnglishString12_16(0,93,Key);
KeyNum=0;
}
if(aa=='='&&py!=0)
{
if((page+1)*8<*py)
{
page++;
Lcd_ClearLine(76,16);
Lcd_DrawChineseIndex(py,page*8+1);
}
}
if(aa=='-'&&py!=0&&page!=0)
{
page--;
Lcd_ClearLine(76,16);
Lcd_DrawChineseIndex(py,page*8+1);
}
}
//********字符输入
if(flag==1)
{
if(aa>=' '&&aa<='~')
{
p[HzNum] = &acFontEZK_16x16[aa-32][0];
Lcd_DrawChinese_char16_16((HzNum%15)*16,(HzNum/15)*16,p[HzNum]);//字符
HzNum++;
Lcd_DrawChar16_16(((HzNum)%15)*16,((HzNum)/15)*16,'|');//|
for(i=0;i<6;i++)Key[i]=' ';
Lcd_DrawEnglishString12_16(0,93,Key);
KeyNum=0;
Lcd_ClearLine(76,16);
}
if(aa==0x08&&HzNum!=0)
{
Lcd_ClearChinese16_16(((HzNum)%15)*16,((HzNum)/15)*16);
p[--HzNum]=0;
Lcd_DrawChar16_16(((HzNum)%15)*16,((HzNum)/15)*16,'|');//|
}
}
if(aa=='*')break;
Lcd_DrawIntdata(0,64,aa);//显示接收到的字符的ASCII码
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -