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