📄 t9.c
字号:
8, 1, 5, 0, 0, 0, 5, 45, 67,49, 41,52, 66,49, 91,52, 59,0, 0, 23,1,14,25,1,14,26,1,15,25,1,15,26,1,14,0,0,0,0,0,0,0,0,0,
8, 1, 5, 3, 0, 0, 3, 45, 84,52, 63,49, 74, 0, 0, 0, 0, 0, 0, 23,1,14,7,26,1,14,7,25,1,14,7,0,0,0,0,0,0,0,0,0,0,0,0,
8, 2, 0, 0, 0, 0, 2, 50, 12,52, 80, 0, 0, 0, 0, 0, 0, 0, 0, 25,5,26,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 2, 3, 0, 0, 0, 2, 45, 94,52, 84, 0, 0, 0, 0, 0, 0, 0, 0, 23,5,9,26,5,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 2, 5, 0, 0, 0, 2, 47, 33,52, 85, 0, 0, 0, 0, 0, 0, 0, 0, 23,5,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 2, 5, 3, 0, 0, 2, 47, 43,52, 86, 0, 0, 0, 0, 0, 0, 0, 0, 23,5,14,7,26,5,14,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 0, 0, 0, 0, 3, 46, 84,50, 27, 55, 40,0, 0, 0, 0, 0, 0, 24,9,25,9,26,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 1, 0, 0, 0, 2, 47, 25,52, 90, 0, 0, 0, 0, 0, 0, 0, 0, 24,9,1,26,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 1, 3, 0, 0, 1, 53, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,8,1,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 1, 5, 0, 0, 4, 47, 38,47, 84,53, 16,53, 48, 0, 0, 0, 0, 24,9,1,14,24,9,1,15,26,8,1,14,26,8,1,15,0,0,0,0,0,0,0,0,
8, 3, 1, 5, 3, 0, 2, 47, 64,53, 33, 0, 0, 0, 0, 0, 0, 0, 0, 24,9,1,14,7,26,8,1,14,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 2, 0, 0, 0, 2, 48, 8,53, 58, 0, 0, 0, 0, 0, 0, 0, 0, 24,9,5,26,8,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 2, 5, 0, 0, 1, 53, 68,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,8,5,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 2, 5, 3, 0, 1, 53, 84,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,8,5,14,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 3, 0, 0, 0, 1, 54, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 5, 0, 0, 0, 2, 48, 29,50, 80, 0, 0, 0, 0, 0, 0, 0, 0, 24,9,14,25,9,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 5, 3, 0, 0, 2, 48, 39,51, 2, 0, 0, 0, 0, 0, 0, 0, 0, 24,9,14,7,25,9,14,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 5, 5, 3, 0, 2, 48, 54,54, 48, 0, 0, 0, 0, 0, 0, 0, 0, 24,9,15,14,7,26,8,15,14,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 5, 7, 0, 0, 1, 54, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,8,15,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 7, 0, 0, 0, 2, 48, 61,54, 73, 0, 0, 0, 0, 0, 0, 0, 0, 24,9,21,26,8,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 7, 1, 0, 0, 1, 55, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,8,21,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 7, 1, 3, 0, 1, 55, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,8,21,1,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 7, 1, 5, 0, 1, 55, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,8,21,1,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 7, 1, 5, 3, 1, 55, 14,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,8,21,1,14,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 7, 3, 0, 0, 1, 55, 21,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,8,21,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 3, 7, 5, 0, 0, 2, 55, 27,55, 29,0, 0, 0, 0, 0, 0, 0, 0, 26,8,21,14,26,8,21,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 5, 0, 0, 0, 0, 1, 46, 46,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 5, 5, 3, 0, 0, 2, 51, 20,55, 55,0, 0, 0, 0, 0, 0, 0, 0, 25,15,14,7,26,15,14,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 5, 7, 0, 0, 0, 2, 51, 36,55, 62,0, 0, 0, 0, 0, 0, 0, 0, 25,15,21,26,15,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 7, 0, 0, 0, 0, 4, 48, 70,47, 55,55, 66,51, 56,0,0,0, 0, 0, 23,21,24,21,26,21,25,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 7, 1, 5, 0, 0, 3, 48, 89,52, 7,55, 74, 0, 0, 0, 0, 0, 0, 24,21,1,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 7, 2, 0, 0, 0, 2, 49, 5, 52, 27,0, 0, 0, 0, 0, 0, 0, 0, 24,21,5,25,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 7, 3, 0, 0, 0, 1, 55, 76,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,21,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8, 7, 5, 0, 0, 0, 4, 49, 11,52, 37,55, 80,55,82,0, 0, 0, 0, 24,21,14,25,21,14,26,21,14,26,21,15,0,0,0,0,0,0,0,0,0,0,0,0
};
//unsigned char code hzk_1[1][43]={0};
//unsigned char code hzk_2[1][43]={0};
//unsigned char code hzk_3[1][43]={0};
//unsigned char code hzk_4[1][43]={0};
BYTE key_0;
WORD hz_nm[5]={0x2020};//
void T9_PY_SHURU(BYTE key_value)
{
char k;//汉字索引表行标变量
int m,h;
WORD kk;
BYTE key[7];
BYTE ky_num;
ky_num=get_num_address_from_key_value(key_value);//取按键返回值
switch(ky_num)
{ //将各返回值(字符型)转化为无符号整形
case 0: kk=0;break;
case 1: kk=1;break;
case 2: kk=2;break;
case 3: kk=3;break;
case 4: kk=4;break;
case 5: kk=5;break;
case 6: kk=6;break;
case 7: kk=7;break;
case 8: kk=8;break;
case 9: kk=9;break;
case 'a': kk=10;break;
case 'b': kk=11;break;
case 'c': kk=12;break;
case 'd': kk=13;break;
case 'e': kk=14;break;
case 'f': kk=15;break;
default: kk=20;break;
}
switch(set_pinyin_struct.count)//通过判断按键次数计数器来确定是第几次按键
{ case 0: //第一次按键
key[0]=kk;
key_0=key[0];
if(key[0]>0&&key[0]<9)
{
if(key[0]>0&&key[0]<=2) //如果为1~2(字母键)
{ for(k=0;k<57;k++) //查询汉字索引表
{ if(hzk_1[k][0]==key[0]&&hzk_1[k][1]==0)//如果表中某行第1,2列分别与第1,2次键入的值相同且第3列为零
{ok[0]=k; //将该行的行标赋给0k[1]
set_pinyin_struct.count++; //将拼音按键计数器加1
}
// break;
}
}
else if(key[0]>=3&&key[0]<=4) //如果为3~4(字母键
{ for(k=0;k<49;k++) //查询汉字索引表
{ if(hzk_2[k][0]==key[0]&&hzk_2[k][1]==0) //如果索引表中某行第一列与第一次键入值相同且该行第二列为零
{ok[0]=k+57;//将该行的行标赋给ok[0]
set_pinyin_struct.count++; //将拼音按键计数器加1
}
// break;
}
}
else if(key[0]>=5&&key[0]<=6) //如果为5~6(字母键
{ for(k=0;k<61;k++) //查询汉字索引表
{ if(hzk_3[k][0]==key[0]&&hzk_3[k][1]==0) //如果索引表中某行第一列与第一次键入值相同且该行第二列为零
{ok[0]=k+106;//将该行的行标赋给ok[0]
set_pinyin_struct.count++; //将拼音按键计数器加1
}
//break;
}
}
else //(key[0]>=7&&key[0]<=8)//如果为7~8(字母键)
{ for(k=0;k<55;k++) //查询汉字索引表
{ if(hzk_4[k][0]==key[0]&&hzk_4[k][1]==0) //如果索引表中某行第一列与第一次键入值相同且该行第二列为零
{ ok[0]=k+167;//将该行的行标赋给ok
set_pinyin_struct.count++; //将拼音按键计数器加1
}
// break;
}
}
lcd_clear_line(1);//清除第二行
lcd_T9_display(ok[0],0,py,hz,page);//进入拼音与汉字显示子函数
//set_pinyin_struct.count++; //将拼音按键计数器加1
}//end if
else if(key[0]==10)
{set_name_struct.count=0;//将汉字计数器清零
}
else if(key[0]==13) //删除键
{if(set_name_struct.count>0) //当汉字计数器大于0的情况下
{ set_name_struct.count--;//汉字计数器减1并返回
lcd_clear_line(2); //清除第3行
for(h=0;h<=set_name_struct.count;h++)//在该行重新显示上一次之前选择好的汉字
{ lcd_Display_Lib_Chinese(0x8b+h,hz_nm[h]);
}
}
else
/* { set_code_struct.count=0;
lcd_clear_line(2);
}*/
py=0; //拼音选择键清零
page=0; //汉字翻页键清零
hz=0; //汉字选择键清零
return;
}
break;
case 1: // 第二次按键
key[1]=kk;
if(key[1]>0&&key[1]<9)
{
if(key[0]>0&&key[0]<=2) //如果为1~2(字母键)
{ for(k=0;k<57;k++) //查询汉字索引表
{ if(hzk_1[k][0]==key[0]&&hzk_1[k][1]==key[1]&&hzk_1[k][2]==0)//如果表中某行第1,2列分别与第1,2次键入的值相同且第3列为零
{ok[1]=k; //将该行的行标赋给0k[1]
set_pinyin_struct.count++; //将拼音按键计数器加1
lcd_clear_line(1);//清除第二行
lcd_T9_display(ok[1],1,py,hz,page);//进入拼音与汉字显示子函数
break;
}
}
}
else if(key[0]>=3&&key[0]<=4) //如果为3~4(字母键
{ for(k=0;k<49;k++) //查询汉字索引表
{ if(hzk_2[k][0]==key[0]&&hzk_2[k][1]==key[1]&&hzk_2[k][2]==0) //如果索引表中某行第一列与第一次键入值相同且该行第二列为零
{ok[1]=k+57;//将该行的行标赋给ok[0]
set_pinyin_struct.count++; //将拼音按键计数器加1
lcd_clear_line(1);//清除第二行
lcd_T9_display(ok[1],1,py,hz,page);//进入拼音与汉字显示子函数
break;
}
}
}
else if(key[0]>=5&&key[0]<=6) //如果为5~6(字母键
{ for(k=0;k<61;k++) //查询汉字索引表
{ if(hzk_3[k][0]==key[0]&&hzk_3[k][1]==key[1]&&hzk_3[k][2]==0) //如果索引表中某行第一列与第一次键入值相同且该行第二列为零
{ok[1]=k+106;//将该行的行标赋给ok[0]
set_pinyin_struct.count++; //将拼音按键计数器加1
lcd_clear_line(1);//清除第二行
lcd_T9_display(ok[1],1,py,hz,page);//进入拼音与汉字显示子函数
break;
}
}
}
else //(key[1]>=7&&key[1]<=8)//如果为7~8(字母键)
{ for(k=0;k<55;k++) //查询汉字索引表
{ if(hzk_4[k][0]==key[0]&&hzk_4[k][1]==key[1]&&hzk_4[k][2]==0) //如果索引表中某行第一列与第一次键入值相同且该行第二列为零
{ok[1]=k+167;//将该行的行标赋给ok[0]
set_pinyin_struct.count++; //将拼音按键计数器加1
lcd_clear_line(1);//清除第二行
lcd_T9_display(ok[1],1,py,hz,page);//进入拼音与汉字显示子函数
break;
}
}
}
}//end if
else if(key[1]>=9&&key[1]<=15) //功能键
{
switch(key[1])
{case 9: //如果为拼音选择键
py+=1; //拼音计数自加1
page=0; //汉字翻页清零
hz=0; //汉字选择清零
lcd_T9_display(ok[0],0,py,hz,page); //进入拼音与汉字显示子函数
break;
case 10: //切换
break;
case 11: //
break;
case 12: //如果为汉字选择键
hz=hz+1; //汉字计数自加1
if(hz>7) //如果计数大于7则归零(循环显示某行(8个)中的单个汉字)
{hz=0;}
// lcd_clear_line(2);
lcd_T9_display(ok[0],0,py,hz,page);//进入拼音与汉字显示
break;
case 13: //如果为删除键
lcd_clear_line(1); //清除拼音显示行
lcd_clear_line(3); //清除汉字显示行
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -