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

📄 t9.c

📁 这是一称的项目原文件,包括T9汉字输入,打印机,24C512,已经引用到产品上
💻 C
📖 第 1 页 / 共 5 页
字号:
         else if(key[5]==0) //确定
           {m=set_name_struct.count;  //保存当前汉字计数
			 lcd_clear_line(1);
			 lcd_clear_line(3);
			 lcd_T9_hz_display(ok[4],m,py,hz,page);  //进入已选择好的汉字显示
			  set_pinyin_struct.count=0; //拼音按键计数归零 回到初始状态
              timer1_init(TIME_4S); 
		      set_name_struct.count++;// 汉字选择计数加1,进入下一状态
		          py=0;
				  page=0;
				  hz=0;
		     return;
          }     
        break;
     case 6:
          key[6]=kk;
		  page=0;
          if(key[6]>0&&key[6]<9)  //字母键无效
            {  //set_pinyin_struct.count++;
              }
          else if(key[6]>=9&&key[6]<=15)  //功能键
            {
             switch(key[6])
              {case 9: //拼音选择
                 py+=1; //计数加1
				 page=0;
				 hz=0;
                 lcd_T9_display(ok[5],5,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[5],5,py,hz,page);  //显示拼音汉字
                 break;
               case 13: //清除
			      lcd_clear_line(1);
                      py=0;
					  hz=0;
				  lcd_T9_display(ok[4],4,py,hz,page);
                  //显示上一次的情况
                   set_pinyin_struct.count--; //拼音按键计数减去1,返回上一状态
                  break;
               case 14: //上翻页
                 page-=8;//计数减去8
                 if(page<0)//若小于零则归零
                  {page=0;}
                 lcd_T9_display(ok[5],5,py,hz,page);  //显示拼音汉字
                break;
               case 15: //下翻页
                page+=8; //计数加8
                lcd_T9_display(ok[5],5,py,hz,page);  //显示拼音汉字
                break;
               }
			 }
         else if(key[5]==0) //确定
             {m=set_name_struct.count;//保存当前汉字选择计数值
			 lcd_clear_line(1);
			 lcd_clear_line(3);
			 lcd_T9_hz_display(ok[5],m,py,hz,page); //进入选择好的汉字显示
	         set_pinyin_struct.count=0; //拼音按键计数归零,回到初始状态
              timer1_init(TIME_4S);   
        	 set_name_struct.count=0; //汉字选择计数归零,进入下一次状态
	 		  py=0;
			  page=0;
			  hz=0;
        	 return;
             }     
        break;

    }
}

void lcd_T9_display(char k_y,int c_t,char p_y,char h_z,char p_g)
{
WORD qmh,qml;
char m,n,h,kkk;
WORD d,p;
WORD b[6][6];
BYTE a[6][6];

if(key_0>=0&&key_0<57)
 { qmh=hzk_1[k_y][7+2*p_y];
   qml=hzk_1[k_y][8+2*p_y];
   m=hzk_1[k_y][6];
 }
if(key_0>=57&&key_0<106)
 { qmh=hzk_2[k_y-57][7+2*p_y];
   qml=hzk_2[k_y-57][8+2*p_y];
   m=hzk_2[k_y-57][6];
 }
if(key_0>=106&&key_0<167)
 { qmh=hzk_3[k_y-106][7+2*p_y];
   qml=hzk_3[k_y-106][8+2*p_y];
   m=hzk_3[k_y-106][6];
 }
if(key_0>=167&&key_0<222)
 { qmh=hzk_4[k_y-167][7+2*p_y];
   qml=hzk_4[k_y-167][8+2*p_y];
   m=hzk_4[k_y-167][6];
 }
 p_y=p_y%m;
      d=qmh/16;
      p=p&0x0fff;
      p=p|(d<<12);
      d=qmh%16;
      p=p&0xf0ff;
      p=p|(d<<8);
      d=qml/16;
      p=p&0xff0f;
      p=p|(d<<4);
      d=qml%16;
      p=p&0xfff0;
      p=p|d;
      p=p+0xa0a0;

     for(h=0;h<8;h++)
       {lcd_Display_Lib_Chinese(0x98+h,p+h+p_g);
       }  
lcd_Display_Lib_Chinese(0x88,p+h_z+p_g);
for(n=0;n<m;n++)
{ for(kkk=1;kkk<=c_t+1;kkk++)
  { 
     if(key_0>=0&&key_0<57)
      { b[n][kkk-1]=hzk_1[k_y][18+n*(c_t+1)+kkk];
      }
     else if(key_0>=57&&key_0<106)
     {  b[n][kkk-1]=hzk_2[k_y-57][18+n*(c_t+1)+kkk];
     }
     else if(key_0>=106&&key_0<167)
     {  b[n][kkk-1]=hzk_3[k_y-106][18+n*(c_t+1)+kkk];
     }
     else //if(key_0>=167&&key_0<222)
     {  b[n][kkk-1]=hzk_4[k_y-167][18+n*(c_t+1)+kkk];
     }
     switch(b[n][kkk-1])
	  { case 1:a[n][kkk-1]='a';break;
	    case 2:a[n][kkk-1]='b';break;
		case 3:a[n][kkk-1]='c';break;
		case 4:a[n][kkk-1]='d';break;
		case 5:a[n][kkk-1]='e';break;
		case 6:a[n][kkk-1]='f';break;
		case 7:a[n][kkk-1]='g';break;
		case 8:a[n][kkk-1]='h';break;
		case 9:a[n][kkk-1]='i';break;
		case 10:a[n][kkk-1]='j';break;
		case 11:a[n][kkk-1]='k';break;
	    case 12:a[n][kkk-1]='l';break;
		case 13:a[n][kkk-1]='m';break;
		case 14:a[n][kkk-1]='n';break;
		case 15:a[n][kkk-1]='o';break;
		case 16:a[n][kkk-1]='p';break;
		case 17:a[n][kkk-1]='q';break;
		case 18:a[n][kkk-1]='r';break;
		case 19:a[n][kkk-1]='s';break;
		case 20:a[n][kkk-1]='t';break;
        case 21:a[n][kkk-1]='u';break;
	    case 22:a[n][kkk-1]='v';break;
		case 23:a[n][kkk-1]='w';break;
		case 24:a[n][kkk-1]='x';break;
		case 25:a[n][kkk-1]='y';break;
		case 26:a[n][kkk-1]='z';break;
		default:   break;
      }  
  if(n==p_y)
    {a[n][kkk-1]-=0x20;}
  } 
}


switch(c_t)
{
case 0://拼音字母为1的最大组合数为4
    for(n=0;n<m;n++)
   {lcd_Display_num_half_wide(0x90+n,a[n][0],0x20);
    
   } 
   break;
case 1://拼音字母为2个的最大组合数为5///////////////////
   if(m<5)//当字母组合小于5个时空一个字符显示拼音
     {for(n=0;n<m;n++)
       {lcd_Display_num_half_wide(0x90+2*n,a[n][0],a[n][1]);
        lcd_Display_num_half_wide(0x90+2*n+1,0x20,0x20);
       }
     }
   else //当字母组合为5个时候空半个字符显示拼音
     {//for(n=0;n<5;n++)
        lcd_Display_num_half_wide(0x90,a[0][0],a[0][1]);
        lcd_Display_num_half_wide(0x91,0x20,a[1][0]);
        lcd_Display_num_half_wide(0x92,a[1][1],0x20);
        lcd_Display_num_half_wide(0x93,a[2][0],a[2][1]);
		lcd_Display_num_half_wide(0x94,0x20,a[3][0]);
        lcd_Display_num_half_wide(0x95,a[3][1],0x20);
		lcd_Display_num_half_wide(0x96,a[4][0],a[4][1]);  
     }
    break;
case 2://拼音字母为3个的最大组合数为6////////////////////
   if(m<5)//当字母组合小于5个时连续显示前4个拼音组合
     {for(n=0;n<m;n++)
       {lcd_Display_num_half_wide(0x90+2*n,a[n][0],a[n][1]);
        lcd_Display_num_half_wide(0x90+2*n+1,a[n][2],0x20);
       } 
     }
   else if(m==5)//当字母组合等于5个时 根据拼音选择键确定显示///////////////
     {  if(p_y<4)//如果拼音选择为小于等于4个的情况下按前四个显示
        {for(n=0;n<4;n++)
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -