📄 main.c.bak
字号:
//delay();
//delay();
//delay();
//delay();
//lcd_string(0,"测试显示效果:\n\r");
//delay();
delay();
*/
/*
//进入编辑界面
while(1)
{
if(ch2)
{
lcd_string(0,"异常退出!");
getchar();
}
else lcd_string(0,"初始化赋值");
getchar();
lcd_cls();
lcd_cursor(0,0);
lcd_string(0,save_buf);
i=0; //i=0,第0个拼音串pinyin_buf[i]反显
j=0; //j=0,无汉字反显,1<=j<=10,反显第j个汉字
page=1; //设置拼音串pinyin_buf[i]返回汉字页码
edit_0_state=1;
ch2 = 1;
//状态级别判断
//0级状态 拼音栏无字母的状态,可退格删除编辑区输入的状态edit_0_state
//1级状态 拼音栏有拼音字母输入,汉字不反显的状态
//2级状态 拼音栏有拼音字母输入,汉字反显的状态
//3级状态 编辑区插入字符状态
//开始执行
while(1)
//while(1) 前括号
{
//------------------------------------------------------------------
wait_for_input: lcd_cursor(0,2);
lcd_string(0,"等待输入拼音:");
c = getchar();
//------------------------------------------------------------------
if(c=='u')c=10;//向上
if(c=='d')c=11;//向下
if(c=='-')c=12;//前页
if(c=='=')c=13;//后页
if(c=='e')c=14;//回车
if(c=='.')c=15;//退格
if(c=='b')c=16;//返回
if(c=='m')c=17;//菜单
ch1++;
//------------------------------------------------------------------
//组成有效拼音串的数字键输入 暂存在缓存中 以便下次一起发送,末尾加结束符号'\0'
if((c>0x31)&&(c<0x40))
{
if((numbers_p-numbers)>=6)
{
numbers_p=numbers;
goto wait_for_input;
}
if(edit_0_state||edit_1_state)//拼音输入状态
{
*numbers_p++=c;
*numbers_p='\0';
}
if(edit_2_state)c=c-0x2F;//数字选汉字
}
//------------------------------------------------------------------
switch(c)
//switch 前括号
{
case '0':
// 键值0 在拼音、英文输入发状态时为空格键
//在编辑区光标向后移动一个字母的距离,存储区添加一个'空格'字符
if(edit_0_state)
{
if(chinese_input_state||english_input_state)
{
c=0x20;
goto save_number_process;
}
//输入一个空格保存起来string_save(c);
if(number_input_state);//输入一个0保存起来string_save(c);
goto save_number_process;
}
else goto wait_for_input;
save_number_process: *save_p = c;
lcd_cursor(0 , 0);
lcd_string(0,save_buf);
delay();
goto wait_for_input;
//------------------------------------------------------------------
case '1':
// 键值1 在拼音、英文输入发状态时为标点符号
if(edit_0_state)
{
;//标点符号
}
goto wait_for_input;;
//-------------------------------------------------------------------------
//数字键处理
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
//-------------------------------------------------------------------------
ch1++;
if(edit_0_state)edit_0_state=0;edit_1_state=1;//编辑0状态清除编辑1状态置位
//void pinyin_display(uchar i,uchar numbers[6],uchar pinyin[6][7])
display_process0: pinyin_display(i,numbers,pinyin_buf);
if(numbers_delete_sign)
{
numbers_p--;
numbers_p='\0';
}
display_process1: hanzi_display(i,j,page,pinyin_buf,hanzi_buf);
goto wait_for_input;
//-------------------------------------------
//功能键处理
case 10:
ch1++;
if(edit_1_state&&(i>0))
{ i--;//拼音选择UP
goto display_process0;
}
if(edit_2_state&&(j>1))
{
j--;//汉字选择up
goto display_process1;
}
if(edit_0_state&&(save_p-save_buf))
{
save_p--;//光标前移
if(*save_p>0x80)save_p--;//若为汉字,光标移动2个字节
//显示光标
edit_3_state = 1 ;//插入字符状态
}
goto wait_for_input;
//-------------------------------------------
case 11:
ch1++;
if(edit_1_state)
{ if(i<6)i++;//拼音选择DOWN
goto display_process0;
}
if(edit_2_state)
{
if(j>0&&j<10)j++;//汉字选择DOWN
goto display_process0;
}
if(edit_0_state&&(*save_p!='\0'))//光标后移
{
if(*save_p>0x80)save_p=save_p+2;
else save_p++;
edit_3_state = 1;//插入字符状态
if(*save_p=='\0')edit_3_state=0;
lcd_showcursor(1);//显示光标
}
goto wait_for_input;
//-------------------------------------------
case 12:
ch1++;
if(edit_1_state||edit_2_state)
{ if(page>1)page--;//翻页选择汉字-
goto display_process0;
}
else break;
//-------------------------------------------
case 13:
ch1++;
if(edit_1_state||edit_2_state)
{ if(page>1)page++;//翻页选择汉字+
goto display_process0;
}
else break;
//-------------------------------------------
case 14:
//确定键 输入处理
if(edit_1_state)//选择汉字
{
edit_1_state=0;
edit_2_state=1;//汉字被选择的状态
j=1;//默认第一个汉字反黑,表示被选择
goto display_process0;
}
if(edit_2_state)//取选择汉字到save_buf,并在编辑区显示
{
edit_save_display(j,save_p,hanzi_buf,save_buf);//汉字保存并在编辑区显示
save_p=save_p+2;
i = 0; j = 0; page = 1;
numbers_p = numbers;for(c=0;c<6;c++)numbers[0]='\0';
lcd_cursor(0,3);lcd_string(0," ");
edit_2_state=0;edit_0_state=1;
goto wait_for_input;
}
if(edit_0_state)ch1++;
{ lcd_cursor(0,2);lcd_string(0,"保存,然后退出!");
//判断有没有内容,有则保存,然后退出
//汉字汉字内码保存并退出
break;
}
break;
//-------------------------------------------
case 15:
ch1++;
//退格键输入处理undo;
if(edit_2_state)//汉字被选择的状态
{
edit_2_state=0;
edit_1_state=1;//字母被选择的状态
lcd_cursor(0,2);lcd_string(0,"取消反黑");
j=0;//取消反黑显示
goto display_process0;
}
if(edit_1_state)//字母被选择的状态
{
if((numbers_p-numbers)>0)
{ numbers_p--;
*numbers_p='\0';
}
if(numbers_p==numbers)
{
edit_1_state=0;edit_0_state=1;
i=0;j=0;page=1;
lcd_cursor(0,3);lcd_string(0," ");
goto wait_for_input;
}
goto display_process0;
}
if(edit_0_state)
{
*(save_p-1)='\0';
if((*save_p>0x80)&&(save_p>save_buf))save_p=save_p-2;
else save_p--;
*save_p='\0';
lcd_cursor(0,0);
lcd_string(0 ,save_buf);//从保存区中取字符串显示
}
goto wait_for_input;
//-------------------------------------------
case 16:
ch1++;
if(edit_0_state||edit_1_state||edit_2_state)
break;
//返回键输入处理
//-------------------------------------------
default:
ch1++;
lcd_cursor(0,2);
lcd_string(0,"error!");
goto wait_for_input;
}
}
}
*/
//*//
//------------------------------------------------------------------
//数字取拼音 拼音取汉字 循环测试
while(inbufsign)getbyte();
lcd_cls();
while(!inbufsign);
//lcd_cursor(0,0);
/*
lcd_string(0,"进入编辑对话:\n\r");
//delay();
//delay();
lcd_string(0,"没有任何问题:\n\r");
//delay();
//delay();
//delay();
//delay();lcd_cls();
//lcd_cursor(0,2);
lcd_string(0,"不太对劲儿呢:\n\r");
//delay();
//delay();
//delay();
//delay();
//lcd_string(0,"测试显示效果:\n\r");
//delay();
delay();
*/
while(1)
{
//------------------------------------------------------------------
//参数:反显拼音位置,汉字是否反显及位置 汉字页码
for(i=0;i<=5;i++)
{
//第i个拼音反显选择
//----------------------------------------------------------
for(page=1;page<=1;page++)
{
m=lcd_num2pinyin(numbers,pinyin_buf);//取拼音
pinyin_display(i,m,pinyin_buf);//显示拼音
for(j=0;j<=2;j++)
{
//选择第j个汉字,j=0不选择
//--------------------------------------------------
lcd_pinyin2hz(page,pinyin_buf[i],hanzi_buf);//取汉字
hanzi_display(j,hanzi_buf);//显示汉字
//-------------------------------------------------
ch1++;
//这个是10个汉字循环的括号
//-------------------------------------------------
}
//这个是汉字页码循环的括号
//---------------------------------------------------------
}
//---------------------------------------------------------
ch1++;
//拼音选择循环的括号
}
//-----------------------------------------------------------------
}
//*/
/*
while(1)
{
lcd_cls();
lcd_string(0,"您好!欢迎使用汉显液晶模块!");
delay();delay();
lcd_string(1,"反显效果");
delay();delay();
lcd_cls();
lcd_string(0,"现在打开光标闪烁:");
lcd_showcursor(0x01);
delay();
lcd_cls();
lcd_string(0,"现在将光标移到(8,3)位置:");
lcd_cursor(8, 3);
delay();
lcd_string(0,"您好!");
delay();
lcd_cls();
lcd_string(0,"现在关闭光标闪烁:");
lcd_showcursor(0x00);
delay();
/*
lcd_cls();
lcd_string(0,"在(20,40)位置画一个点:");
lcd_dot(1,20,40);
delay();
lcd_cursor(0, 0);
lcd_string(0,"再以直径为15画一个圆: ");
lcd_circle(1,20,40,15);
delay();
lcd_cursor(0, 0);
lcd_string(0,"再画两条线,一条实线,一条虚线:");
lcd_line(1,10,5,100,60);
lcd_line(2,10,55,100,10);
delay();
lcd_cls();
lcd_string(0,"画一个图片'马到成功'");
lcd_picture(0,30,20,pic);
delay();
//
lcd_cls();
lcd_string(0,"现在取'7426'的拼音串");
while(inbufsign) getbyte(); //清空接收缓冲区
lcd_string(0,"返回的结果:");
j=lcd_num2pinyin(numbers, pinyin_buf);
lcd_cursor(0, 3);
for(i=0;i<j;i++)
{
if(i==0) lcd_string(1,pinyin_buf[i]);//默认反显第一个拼音
else lcd_string(0,pinyin_buf[i]);
lcd_string(0," ");
}
delay();
lcd_cls();
lcd_cursor(0, 0);
lcd_string(0,"反显第二个拼音:");//比如通过按键选到了第二个
lcd_cursor(0, 3);
for(i=0;i<j;i++)
{
if(i==1) lcd_string(1,pinyin_buf[i]);//反显第一个拼音
else lcd_string(0,pinyin_buf[i]);
lcd_string(0," ");
}
delay();
lcd_cls();
lcd_string(0,"取这个拼音的汉字串:\r\n");
while(inbufsign) getbyte(); //清空接收缓冲区
lcd_pinyin2hz(1, pinyin_buf[1],pinyin_buf[0]);//借用拼音的缓冲区pinyin_buf放汉字串,以节省内存
lcd_cursor(0, 4);
lcd_string(0,pinyin_buf[0]);
delay();delay();delay();
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -