亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? t9py.h

?? msp430的中文輸入程序
?? H
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************
//   按鍵是根據通用手機鍵盤設置的,全部在PC的小鍵盤操作):                    //
//   NumLock   /:上一拼音? *:下一拼音                                        //
//   7:pqrs    8:tuv       9:wxyz   -:前翻頁                                 //
//   4:ghi     5:jkl       6:mno    +:后翻頁                                 //
//   1:?       2:abc       3:def    回車鍵:輸入狀態和選字狀態切換            //
//   0:?                   '.'和空格及回車鍵:輸入狀態和選字狀態切換          //
//   串口依次輸入: 9466*.1    486*.3   64*.6    426***.5 試試:-)             //
//   程序在IAR中用軟件模擬調試可以執行                                       //
******************************************************************************/

#ifndef __T9PY_H__
#define __T9PY_H__

#include <msp430x14x.h>
#include <string.h>
#include <stdio.h>
#include "t9py_indexa.h"
#include "ocmj12232c-1(并口).h"

extern char x1,y1,x2,y2;//定位lcd顯示位置 

void clr_cpt9PY_Mb(void);
unsigned char T9PY_Get_Match_PY_MB(char *p_PadInput,const struct t9PY_index ** List_match_PY_Mb);
void t9PY_Test(void);
void lcd_test(unsigned char * input_string);

#define CNTLQ      0x11
#define CNTLS      0x13
#define DEL        0x7F
#define BACKSPACE  0x08
#define CR         0x0D
#define LF         0x0A

#define T9PYPTRMAX 16
unsigned char cpt9PY_Mblen;//保存調用函數 T9PY_Get_Match_PY_MB()的返回值,獲取到完全匹配拼音數量
const struct t9PY_index * cpt9PY_Mb[T9PYPTRMAX];//主要用于存放匹配的拼音碼表地址,
//只有cpt9PY_Mb[0]存放的是一個不匹配的拼音碼表地址.
//匹配并不是指相比較的字符長短一樣,不是完全匹配.例如:34跟346是匹配的,
//34跟34是完全匹配(在這里我們不需要使用完全匹配)

//====================================================================================
//語法格式:unsigned char T9PY_Get_Match_PY_MB(char *p_PadInput,\
//                                           struct t9PY_index code  ** List_match_PY_Mb)
//實現功能:獲取與輸入相匹配的T9拼音列表
//參數:    p_PadInput:	       輸入的按鍵序列,由'0'~'9'組成的字符串
//	    List_match_PY_Mb:      存儲"獲取到的拼音索引地址"的數組
//返回值:  獲取到完全匹配拼音數量
//移植注意:List_match_PY_Mb 所指向的存儲結構,即用于存放匹配的拼音碼表地址的存儲結構.
//              第一個元素存放的是一個不匹配的拼音碼表地址.其他為匹配的拼音碼表地址
//=====================================================================================

unsigned char T9PY_Get_Match_PY_MB(char *p_PadInput,const struct t9PY_index ** List_match_PY_Mb)
{
    const struct t9PY_index *p_PY_CurrentIndex;
    const struct t9PY_index *p_PY_LastIndex;
    struct t9PY_index PY_TempIndex;
    unsigned char T9PY_Match_NUM=0;      //完全匹配拼音數量
    char temp_t9PY_T9[8],*str;//保存輸入的數字 字符串
    int kk;
    if(*p_PadInput == '\0')
      return(0);         //如果輸入空字符返回0//
    clr_cpt9PY_Mb();
    p_PY_CurrentIndex = (&t9PY_index2[1]); //首索引地址賦值,p_PY_CurrenIndex為當前拼音索引地址
    kk = sizeof(t9PY_index2)/sizeof(struct t9PY_index);
    p_PY_LastIndex = t9PY_index2 + kk;
    //最后索引地址之后的地址(作下一語句比較用)
    //程序注釋:sizeof(t9PY_index2[num]); //6(字節) = 3(個指針)*2(字節/指針)
    //          sizeof(t9PY_index2);      //2400(字節)= 400(項)*6(字節)
    //所以:    p_PY_LastIndex = &t9PY_index2[0] + 400;
    //str=p_PadInput;
    while(p_PY_CurrentIndex < p_PY_LastIndex)  //遍歷字母索引表.或者使用語句: while((p_PY_CurrenIndex->t9PY_T9[0])!='\n')                       
    {
	memcpy((void *)&PY_TempIndex,(const void *)p_PY_CurrentIndex,sizeof(struct t9PY_index)); 
        strcpy(temp_t9PY_T9,(PY_TempIndex).t9PY_T9);//復制輸入的數字串
	str=strstr(temp_t9PY_T9,p_PadInput);//查找輸入的數字串是否在 *t9PY_index2[]中
	if( (str == temp_t9PY_T9) && (T9PY_Match_NUM < T9PYPTRMAX))//指針比較
        {
	  List_match_PY_Mb[T9PY_Match_NUM]=p_PY_CurrentIndex;//
          T9PY_Match_NUM++;//完全匹配數增加
	}
        p_PY_CurrentIndex ++;
    }
    return (T9PY_Match_NUM);                //輸出完全匹配組數,0為無果而終//
}
//==========================================================================================
//測試程序
//==========================================================================================

void t9PY_Test(void)
{
  //PYEnter:輸入拼音狀態和選字狀態(功能選擇狀態)切換 標志位 
  //0x00:輸入拼音狀態   0xff:選字狀態
  unsigned char PYEnter=0;
  //HZok   :漢字是否選定標志位
  //0x00:漢字沒有選定  0xff:漢字選定
  unsigned char HZok=0;
    int temp,i=0;
    int out_temp;
    unsigned char t9PYn=0;
    unsigned char * tempMB;//指向漢字的指針
    char oneline[8]={0x00} ;//輸入的拼音碼 
    char pyma[8];//拼音碼臨時變量
    unsigned char chinese_word[3]="  ";//保存選中的漢字
    char tempchar;
    signed char Add=0;
    struct t9PY_index cpTemp = t9PY_index2[0];//存放字庫里面數據的臨時變量
    puts("按鍵    /:上一拼音  *:下一拼音  .:輸入狀態和選字狀態切換");
    puts("請按鍵:2-abc 3-def 4-ghi 5-jkl 6-mno 7-pqrs 8-tuv 9-wxyz ");
    while(!HZok)//HZok 初始值為 0。漢字沒有ok
    {           //漢字選定,則退出程序
        tempchar=getchar();//接收串口發送來的數據
        switch (tempchar)
        {   //拼音輸入只對 2~9 處理
            //case '0':拼音輸入狀態對'0','1'屏蔽
            //case '1':.
            case '2':
            case '3':
            case '4':
            case '5':
            case '6':
            case '7':
            case '8':
            case '9':
                  if (!PYEnter)//PYEnter = 0x00:輸入拼音狀態
                  {
                    oneline[i]=tempchar;
                    i++;
                    t9PYn=0;
                    Add=0;//Add:漢字定位位置
                    cpt9PY_Mblen=T9PY_Get_Match_PY_MB(oneline,cpt9PY_Mb);//獲取與輸入相匹配的T9拼音列表(該函數比較完整了)
                  }
                  break;
            case '/'://上一拼音
                if (t9PYn > 0) t9PYn --;//上下拼音指示標志位
                break;
            case '*'://下一拼音
                t9PYn ++;//上下拼音指示標志位
                if (t9PYn >= cpt9PY_Mblen) //cpt9PY_Mblen :匹配的拼音數目
                  t9PYn = 0;//循環
                break;
            
            //漢字顯示在這里溢出 ===== 在這里進行處理
            case '-'://上一頁 漢字 定位
                if (Add >= 18) 
                  Add -= 18;//Add:漢字定位位置
                break;
            
            case '+'://下一頁 漢字
                if(strlen((const char *)(cpTemp.PY_mb)) < 18)
                  break;
                else if ((Add < strlen((const char *)(cpTemp.PY_mb)) - 18))
                  Add += 18;
                break;
            case BACKSPACE://????刪除一個拼音字母
                if (i>0) i--;
                oneline[i]=0x00;
                Add=0;
                
                //獲取與輸入相匹配的T9拼音列表,存入 *cpt9PY_Mb[16]中
                cpt9PY_Mblen=T9PY_Get_Match_PY_MB(oneline,cpt9PY_Mb);
                break;
            case '.':                        //輸入狀態和選字狀態切換
            case '\n':
                Add = 0;
                PYEnter ^= 0xff;//PYEnter = 0xff:選字狀態
                break;
            case ' '://擴充為漢字拼音,英文字母輸入法切換 --- 未加入
                
                break;
            case '=':
                break;
            default :
                break;
        }

        if (PYEnter)
        {//PYEnter = 0xff:選字狀態
	    memcpy(&cpTemp,cpt9PY_Mb[t9PYn],sizeof(struct t9PY_index));
            if((tempchar >= '1') && (tempchar <= '9'))//選擇漢字
            {
                HZok=1;
                t9PYn=0;
                //printf ("                                                 \n");
		printf ("Target of Chinese word you had selected :  ");
		tempMB = (unsigned char *)cpTemp.PY_mb;
		tempMB += (Add + (tempchar - '1')*2);
                memcpy((void *)chinese_word,(const void *)tempMB,2);
		puts ((const char *)chinese_word);//顯示最后選擇的一個漢字
                printf ("\n");
            }
            else
            {
		printf ("The spell of your Selection : ");
		strcpy (pyma,cpTemp.PY);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合色综合色综合| 偷拍一区二区三区四区| 中文字幕一区二区三区不卡| 国产欧美日韩卡一| 中文字幕在线播放不卡一区| 亚洲电影第三页| 国产一区二区三区综合| 成人精品一区二区三区四区| 色综合天天天天做夜夜夜夜做| 色婷婷亚洲综合| 欧美不卡视频一区| 玉米视频成人免费看| 精彩视频一区二区| 欧美最新大片在线看| 国产性色一区二区| 日本一区中文字幕| 色婷婷综合中文久久一本| 日韩欧美一二三区| 日日夜夜精品视频免费| 97成人超碰视| 国产欧美精品一区二区色综合| 亚洲v日本v欧美v久久精品| 99久久精品情趣| 久久精品一区蜜桃臀影院| 五月婷婷另类国产| 欧美私模裸体表演在线观看| 一区视频在线播放| 国产成人在线观看免费网站| 日韩三级电影网址| 亚洲国产成人91porn| 欧美亚洲国产一卡| 亚洲一区二区三区自拍| 色综合久久中文字幕| 亚洲女同一区二区| 欧美性猛交xxxx乱大交退制版| 亚洲欧美日韩国产综合在线| 91社区在线播放| 亚洲一区二区三区四区在线| 日本高清不卡视频| 亚洲一区二区在线播放相泽| 欧美日韩国产一级片| 石原莉奈一区二区三区在线观看| 欧美日韩视频专区在线播放| 美女视频一区二区三区| 精品国产网站在线观看| 国产精品一区二区三区乱码| 欧美激情一二三区| 欧美精品国产精品| 国产成人啪午夜精品网站男同| 自拍av一区二区三区| 91精品欧美福利在线观看| 韩国v欧美v日本v亚洲v| 中文字幕一区二区三区不卡在线| 在线观看网站黄不卡| 国产自产高清不卡| 亚洲精选一二三| 久久无码av三级| 欧美高清性hdvideosex| 成人小视频免费在线观看| 午夜日韩在线电影| 亚洲免费av观看| 国产三级精品在线| 久久在线免费观看| 欧美人妖巨大在线| 欧美日韩成人在线一区| 97se亚洲国产综合自在线观| 久久国产精品区| 午夜电影网一区| 亚洲激情网站免费观看| 国产午夜亚洲精品不卡| 日韩丝袜情趣美女图片| 欧美日韩第一区日日骚| 欧美亚洲丝袜传媒另类| 91丝袜高跟美女视频| 成人高清视频免费观看| 成人aa视频在线观看| 波多野结衣在线aⅴ中文字幕不卡| 国产乱色国产精品免费视频| 久久成人久久鬼色| 国产一区二区在线视频| 韩国av一区二区三区四区| 99re亚洲国产精品| 91免费小视频| 欧美日韩激情一区二区| 欧美日韩综合色| 欧美精品一区二| 中文字幕中文在线不卡住| 亚洲一区二区在线免费观看视频| 午夜伊人狠狠久久| 麻豆freexxxx性91精品| 成人激情视频网站| 日韩亚洲欧美一区二区三区| 精品国产亚洲一区二区三区在线观看| 精品盗摄一区二区三区| 中文字幕在线播放不卡一区| 日韩中文字幕亚洲一区二区va在线 | av亚洲精华国产精华| 在线观看91av| 中文字幕av资源一区| 国产日韩欧美一区二区三区乱码| 亚洲欧洲美洲综合色网| 日韩高清一区在线| www.日韩大片| 久久久精品国产99久久精品芒果 | 一本色道a无线码一区v| 欧美岛国在线观看| 亚洲免费色视频| 精品一二三四在线| 欧美日韩卡一卡二| 亚洲另类春色国产| 成人黄色国产精品网站大全在线免费观看| 在线视频欧美精品| 欧美国产日韩一二三区| 国内成人免费视频| 91精品国产综合久久福利软件| 亚洲免费在线观看| 色综合久久久久久久久| 中文字幕一区二区在线播放| 国产最新精品精品你懂的| 91精品国产综合久久久久久漫画| 亚洲人成网站精品片在线观看| 大桥未久av一区二区三区中文| 精品乱码亚洲一区二区不卡| 精品综合久久久久久8888| 日韩一区二区免费在线电影| 蜜臀精品一区二区三区在线观看| 91精品国产福利| 久久成人久久爱| 久久精品夜色噜噜亚洲aⅴ| 狠狠色丁香久久婷婷综合丁香| 日韩视频一区在线观看| 国产成人激情av| 一区二区三区欧美| 色天使色偷偷av一区二区| 午夜一区二区三区在线观看| 日韩一区二区三区电影在线观看 | 欧美成人激情免费网| 极品瑜伽女神91| 综合自拍亚洲综合图不卡区| 欧美午夜免费电影| 久久91精品国产91久久小草| 中文字幕av一区二区三区高| 日本电影欧美片| 国内外精品视频| 亚洲成人精品一区| 国产日韩欧美在线一区| 欧美丰满一区二区免费视频| 国产一区 二区 三区一级| 亚洲综合网站在线观看| 国产精品私人影院| 精品久久久久久久久久久久包黑料 | 亚洲午夜精品17c| 欧美激情一区二区| 精品嫩草影院久久| 91精品国产综合久久蜜臀| 91色在线porny| 成人亚洲一区二区一| 久草精品在线观看| 免费成人av在线| 日韩一区精品视频| 亚洲aaa精品| 亚洲一区二区影院| 亚洲一区二区中文在线| 亚洲另类一区二区| 亚洲特级片在线| 亚洲欧美日韩国产综合| 中文字幕国产一区| 国产精品区一区二区三| 中文字幕 久热精品 视频在线| 欧美国产精品一区二区| 国产精品系列在线| 中文字幕av一区二区三区免费看| 亚洲国产精品成人综合| 中文字幕在线不卡国产视频| 亚洲欧美日韩系列| 日韩精品免费视频人成| 日本美女一区二区三区视频| 美国十次综合导航| 狠狠色狠狠色综合系列| 粗大黑人巨茎大战欧美成人| 波多野结衣中文字幕一区二区三区| 99久久亚洲一区二区三区青草 | 亚洲动漫第一页| 日韩成人精品在线| 国产馆精品极品| 欧美三级乱人伦电影| 欧美岛国在线观看| 亚洲精品五月天| 精品一区二区三区免费| 91在线你懂得| 欧美成人国产一区二区| 亚洲免费观看视频| 激情国产一区二区| 欧美日韩国产123区| 最新日韩在线视频| 久久精品99久久久| 欧洲一区在线观看| 国产天堂亚洲国产碰碰| 日本大胆欧美人术艺术动态| 不卡欧美aaaaa|