繁体中文
设为首页
加入收藏
当前单片机技术首页 >-精典单片机资料 >> [转]用C51实现单片机的中文输入法

[转]用C51实现单片机的中文输入法 (25)

2008-07-04 00:01:22  作者:  来源:网络  浏览次数:358  文字大小:【】【】【
[转]用C51实现单片机的中文输入法[转]用C51实现单片机的中文输入法-单片机技术,========================================函数声明========================================"
//"拼音输入法杳询函数,input_py为已输入的拼音码,反回值为中文的起始地址,当为0时,杳询失败"
unsigned char code * py_ime(unsigned char input_py_val[]);

//"========================================主程序体========================================"

unsigned char code * py_ime(unsigned char input_py_val[])
{
unsigned char code (* xdata p1)[8],(* xdata p2)[8],(* xdata p3)[8];
unsigned char xdata i=1;
if (input_py_val[0]==0) return(0); //"如果输入空字符返回0"
if (input_py_val[0]==''i'') return(0);
if (input_py_val[0]==''u'') return(0);
if (input_py_val[0]==''v'') return(0);
p1=p2=PY_index_pointer[input_py_val[0]-0x61]; //"计算入口树根"
p3=PY_index_pointer[input_py_val[0]-0x60]; //"设置指针界限"
if (p1==0) return(0); //"查询失败返回0"
while (p1<p3) if ((*p1)[0]==input_py_val[1]) {p2=p1;break;} else p1++; //"查询第二个拼音"
p1=p2;
while (p1<p3) //"阶梯法查询余下拼音"
if (((*p1)[i]==input_py_val[i+1])&&((*p1)[i-1]==input_py_val[i]))
{
p2=p1;
i++;
}
else p1++;
return((unsigned char code *)((*p2)[6]+(*p2)[7]*256+py_mb_begin)); //"返回查询结果首地址"
}

[转]用C51实现单片机的中文输入法[转]用C51实现单片机的中文输入法-单片机技术电子技术信息港
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25]

相关文章
 

最新文章

更多

· 简易信号发生器源程序(51)

推荐文章

更多

· 基于ST72单片机的快速充...
· 简易信号发生器源程序(51)
· TMS320C203在高性价比、...

热点文章

更多

· [转帖]关于ARM启动的一篇...
· TMS320C203在高性价比、...
· 学习AVR(十四) 系统时...
· 平凡单片机教学——第十...
· Quartus II 6.0工具应对...
· 简易信号发生器源程序(51)
· 基于ST72单片机的快速充...