就是这个函数
extern unsigned char code PY_mb_a [];
void dismeun_0x2B(void){
unsigned int *py_addr;
char input_string[]="a";
py_addr=py_ime(input_string);
ucHzDisplayOnLcd_Pos(1,2,py_addr,14);
display_string_16x8(3,2,uc_g_spell,strlen(uc_g_spell));
display_string_16x8(3,2+strlen(uc_g_spell)*8,uc_g_letter,strlen(uc_g_letter));
ucHzDisplayOnLcd_Pos(5,2,"忠恕",14);
//while(1);
} 这是一个LCM显示的函数
其中py_addr=py_ime(input_string);语句调用函数定义如下
char * py_ime(char *strInput_py_str)
{
struct PY_index *cpHZ,*cpHZedge;
char i,cInputStrLength;
cInputStrLength=strlen(strInput_py_str); /*输入拼音串长度*/
if(*strInput_py_str=='\0')return(""); /*如果输入空字符返回0*/
/*
for(i=0;i<cInputStrLength;i++){
if((*(strInput_py_str+i)>41)||(*(strInput_py_str+i)<=63)){ //*将字母串转为小写
*(strInput_py_str+i)|=0x20;
}
}
*/
Print_String ("PY", 2);
if(*strInput_py_str=='i')return(""); /*错误拼音输入*/
if(*strInput_py_str=='u')return("");
if(*strInput_py_str=='v')return("");
cpHZ=PY_index_headletter[strInput_py_str[0]-'a']; /*查首字母索引*/
cpHZedge=PY_index_headletter[strInput_py_str[0]-'a'+1]; /*设置指针界限*/
strInput_py_str++; /*指向拼音串第二个字母*/
while(cpHZ<cpHZedge) /*索引表不超界*/
{
for(i=0;i<cInputStrLength;i++)
{
if(*(strInput_py_str+i)!=*((*cpHZ).PY+i))break; /*发现字母串不配,退出*/
}
if(i==cInputStrLength) /*字母串全配*/
{
return (*cpHZ).PY_mb;
}
cpHZ++;
}
return ""; /*无果而终*/
}
第一种方法:在51单片机的main开始就调用void dismeun_0x2B(void)函数,LCM第一行显示一个“开”字,
第二种方法: main()---->Get_Keylnput()再调用void dismeun_0x2B(void),LCM第一行就不会显示这个“开”字,
求大神帮忙 |