?? 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 + -