📄 t9.c
字号:
if(page<0)//如果小于0则归零
{page=0;}
lcd_T9_display(ok[2],2,py,hz,page); //拼音汉字显示
break;
case 15: //下翻页
page+=8; //计数加8
lcd_T9_display(ok[2],2,py,hz,page);
break;
}
}
else if(key[3]==0) //确定
{m=set_name_struct.count;
lcd_clear_line(1);
lcd_clear_line(3);
lcd_T9_hz_display(ok[2],m,py,hz,page); //进入汉字显示
set_pinyin_struct.count=0;//拼音按键值归零,回到初始状态
set_name_struct.count++; //汉字计数加1,进入
timer1_init(TIME_4S);
py=0;
page=0;
hz=0;
return;
}
break;
case 4: //第五次按键
key[4]=kk;
if(key[4]>0&&key[4]<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]==key[2]&&hzk_1[k][3]==key[3]&&hzk_1[k][4]==key[4]&&hzk_1[k][5]==0)//如果表中某行第1,2列分别与第1,2次键入的值相同且第3列为零
{ ok[4]=k; //将该行的行标赋给0k[1]
set_pinyin_struct.count++; //将拼音按键计数器
lcd_clear_line(1);//清除第二行
lcd_T9_display(ok[4],4,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]==key[2]&&hzk_2[k][3]==key[3]&&hzk_2[k][4]==key[4]&&hzk_2[k][5]==0) //如果索引表中某行第一列与第一次键入值相同且该行第二列为零
{ok[4]=k+57;//将该行的行标赋给ok[0]
set_pinyin_struct.count++; //将拼音按键计数器加1
lcd_clear_line(1);//清除第二行
lcd_T9_display(ok[4],4,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]==key[2]&&hzk_3[k][3]==key[3]&&hzk_3[k][4]==key[4]&&hzk_3[k][5]==0) //如果索引表中某行第一列与第一次键入值相同且该行第二列为零
{ok[4]=k+106;//将该行的行标赋给ok[0]
set_pinyin_struct.count++; //将拼音按键计数器加1
lcd_clear_line(1);//清除第二行
lcd_T9_display(ok[4],4,py,hz,page);//进入拼音与汉字显示子函数
break;
}
}
}
else //(key[4]>=7&&key[4]<=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]==key[2]&&hzk_4[k][3]==key[3]&&hzk_4[k][4]==key[4]&&hzk_4[k][5]==0) //如果索引表中某行第一列与第一次键入值相同且该行第二列为零
{ok[4]=k+167;//将该行的行标赋给ok[0]
set_pinyin_struct.count++; //将拼音按键计数器加1
lcd_clear_line(1);//清除第二行
lcd_T9_display(ok[4],4,py,hz,page);//进入拼音与汉字显示子函数
break;
}
}
}
}//end if
else if(key[4]>=9&&key[4]<=15) //功能键
{
switch(key[4])
{case 9: //拼音选择
py+=1; //计数加1
page=0;
hz=0;
lcd_T9_display(ok[3],3,py,hz,page); //显示拼音与汉字
break;
case 10: //切换
break;
case 11: //
break;
case 12: //汉字选择键
hz+=1; //计数加1
if(hz>7)//若>7则归零
{hz=0;}
// lcd_clear_line(2);
lcd_T9_display(ok[3],3,py,hz,page); //显示拼音与汉字
break;
case 13: //清除
lcd_clear_line(1);
py=0;
hz=0;
lcd_T9_display(ok[2],2,py,hz,page); //显示上一次的情况
set_pinyin_struct.count--; //拼音按键计数减去1,回到上一次状态
break;
case 14: //上翻页
page-=8;//计数减去8
if(page<0)//若计数小于8则归零
{page=0;}
lcd_T9_display(ok[3],3,py,hz,page); //显示拼音与汉字
break;
case 15: //下翻页
page+=8;//计数加8
lcd_T9_display(ok[3],3,py,hz,page); //显示拼音与汉字
break;
}
}
else if(key[4]==0) //确定
{m=set_name_struct.count; //
lcd_clear_line(1);
lcd_clear_line(3);
lcd_T9_hz_display(ok[3],m,py,hz,page); //进入选择好了的汉字显示
set_pinyin_struct.count=0; //拼音按键计数清零,回到初始状态
set_name_struct.count++; //汉字选择计数加1,进入下一状态
timer1_init(TIME_4S);
py=0;
page=0;
hz=0;
return;
}
break;
case 5:
key[5]=kk;
if(key[5]>0&&key[5]<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]==key[2]&&hzk_1[k][3]==key[3]&&hzk_1[k][4]==key[4]&&hzk_1[k][5]==key[5])//如果表中某行第1,2列分别与第1,2次键入的值相同且第3列为零
{ok[5]=k; //将该行的行标赋给0k[1]
set_pinyin_struct.count++; //将拼音按键计数器加1
lcd_clear_line(1);//清除第二行
lcd_T9_display(ok[5],5,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]==key[2]&&hzk_2[k][3]==key[3]&&hzk_2[k][4]==key[4]&&hzk_2[k][5]==key[5]) //如果索引表中某行第一列与第一次键入值相同且该行第二列为零
{ok[5]=k+57;//将该行的行标赋给ok[0]
set_pinyin_struct.count++; //将拼音按键计数器加1
lcd_clear_line(1);//清除第二行
lcd_T9_display(ok[5],5,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]==key[2]&&hzk_3[k][3]==key[3]&&hzk_3[k][4]==key[4]&&hzk_3[k][5]==key[5]) //如果索引表中某行第一列与第一次键入值相同且该行第二列为零
{ok[5]=k+106;//将该行的行标赋给ok[0]
set_pinyin_struct.count++; //将拼音按键计数器加1
lcd_clear_line(1);//清除第二行
lcd_T9_display(ok[5],5,py,hz,page);//进入拼音与汉字显示子函数
break;
}
}
}
else //(key[5]>=7&&key[5]<=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]==key[2]&&hzk_4[k][3]==key[3]&&hzk_4[k][4]==key[4]&&hzk_4[k][5]==key[5]) //如果索引表中某行第一列与第一次键入值相同且该行第二列为零
{ok[5]=k+167;//将该行的行标赋给ok[0]
set_pinyin_struct.count++; //将拼音按键计数器加1
lcd_clear_line(1);//清除第二行
lcd_T9_display(ok[5],5,py,hz,page);//进入拼音与汉字显示子函数
break;
}
//break;
}
}
}//end if
else if(key[5]>=9&&key[5]<=15) //功能键
{ switch(key[5])
{case 9: //拼音选择
py+=1; //计数加1
page=0;
hz=0;
lcd_T9_display(ok[4],4,py,hz,page); //显示拼音汉字
break;
case 10: //切换
break;
case 11:
break;
case 12: //汉字选择键
hz+=1;//计数加1
if(hz>7)//若大于7则归零
{hz=0;}
lcd_T9_display(ok[4],4,py,hz,page); //显示拼音汉字
break;
case 13: //清除
lcd_clear_line(1);
py=0;
hz=0;
lcd_T9_display(ok[3],3,py,hz,page); //显示上一次的情况
set_pinyin_struct.count--; //拼音按键计数减去1,回到上一次状态
break;
case 14: //上翻页
page-=8; //计数减去8
if(page<0) //若小于零则归零
{page=0;}
lcd_T9_display(ok[4],4,py,hz,page); //显示拼音汉字
break;
case 15: //下翻页
page+=8; //计数加8
lcd_T9_display(ok[4],4,py,hz,page); //显示拼音汉字
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -