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

📄 main.c

📁 这是在凌阳单片机,使用超级终端,显示的一个中文输入法.
💻 C
字号:
#include"SPCE061A.h"
#include"macro.h"
#include"UART.h"
#include"SysClk.h"
#include"PYList.h"
#include"mystring.h"


char str[]={'\0'};

char *GetHZ (char *inputstr)
{
int i;
for (i=0;i<398;i++)
   if (!stringcmp (inputstr,index[i].py)) return index[i].hz;
return NULL;
}


char *ShowHz(char *instr,unsigned char num)  
{
char i,show[17];
char *newstr=NULL;
char *strtemp=NULL;

if(num==0) num=1;

if((num*16)<=stringlen(instr))
{
newstr=instr+(num-1)*16;
strtemp=newstr;
for(i=0;i<16;i++)
{
show[i]=*strtemp++;
}
show[16]='\0';
prints(show,1);
}
else if((num*16)>stringlen(instr)&&(num-1)*16<stringlen(instr))
{
newstr=instr+(num-1)*16;
prints(newstr,1);
}
return newstr;
}



int main(void)
{
unsigned int outfor,j;
char *hz,*Addr=NULL;
unsigned char page;


SysClkInit(5,0);
UARTInit();

P_INT_Ctrl=C_IRQ5_2Hz;            //2HZTimeBase中断,主要喂狗
INT_IRQ();

ClrScr();


prints("**********************************************************************",1);
prints("*************************拼音输入法 V0.1*****************************",1);
prints(" ",1);
prints("请输入拼音:",0);
while(1){
 if(RX_Flag){
  if(!RX_Index) j=15;
  else j=RX_Index-1;
  
if(RX_BUFFER[j]!=0x0D)
  { 
  str[j]=RX_BUFFER[j];
  str[j+1]='\0';
  
  putc(RX_BUFFER[j]);
  RX_Flag=0;
  }
  else 
  if(RX_Index>1)
  {
  putc(0x0D);
  putc(0x0A);
  hz=GetHZ(str);
  RX_Flag=0;
  RX_Index=0;
  if(hz!=NULL)
  {  
  page=1;
  Addr=ShowHz(hz,page);
  prints("*************************************************",1);
  for(;;)
  {
  outfor=0;
  if(RX_Flag)
  {
  if(!RX_Index) j=15;
  else j=RX_Index-1;
  switch(RX_BUFFER[j])
  {
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7': 
           Addr+=(RX_BUFFER[j]-'0')*2;
           prints("*************************************************",1);
           prints("你选择的汉字是:",0);
           putc(*Addr);
           putc(*(Addr+1));
           prints(" ",1);
           prints("*************************************************",1);
           outfor=1;
           break;
   case '+':
           prints("*************************************************",1);
           Addr=ShowHz(hz,++page);
           prints("*************************************************",1);
           break;
           
   case '-':
            prints("*************************************************",1);
            Addr=ShowHz(hz,--page);
            if(page==0) page=1;
            prints("*************************************************",1);
            break;      
    }
          RX_Flag=0;
         RX_Index=0;  
   }
  if(outfor==1) break;
   } 
  }
  else prints("拼音错误!",1);
  
  prints("*************************************************",1);
  prints("请输入拼音:",0);
}
  else {
  prints(" ",1);
  prints("*************************************************",1);
  prints("你的文本内容:",1);
  prints("Useless!",1);
  prints("",1);
  prints("*************************************************",1);
  RX_Flag=0;
  RX_Index=0;
  prints("*************************************************",1);
  prints("请输入拼音:",0);
  }
  }
}

}

⌨️ 快捷键说明

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