⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t9.c

📁 这是一称的项目原文件,包括T9汉字输入,打印机,24C512,已经引用到产品上
💻 C
📖 第 1 页 / 共 5 页
字号:
                 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 + -