历史上的今天
今天是:2024年09月08日(星期日)
2020年09月08日 | 基于SC95F8616单片机的汉字模拟输入
2020-09-08 来源:51hei
前面介绍了以区位码显示汉字的方法,在此基础上可以通过按键来选取字库的内容进行模拟输入。
在使用中文字库的情况下,使用区位码可以实现汉字的模拟输入,其输入界面如图1所示。

图1 汉字模拟输入界面
实现模拟输入的主程序为:
void main(void)
{
unsigned char t,q,w,u;
GPIO_Init(GPIO0, GPIO_PIN_4,GPIO_MODE_OUT_PP);
GPIO_WriteLow(GPIO0, GPIO_PIN_4);
GPIO_Init(GPIO0, GPIO_PIN_5, GPIO_MODE_IN_PU);
GPIO_Init(GPIO0, GPIO_PIN_6, GPIO_MODE_IN_PU);
GPIO_Init(GPIO0, GPIO_PIN_7, GPIO_MODE_IN_PU);
OLED_ShowCHineseS(0,2,0xB0A1);
x=0;
no=0;
while(1)
{
if(GPIO_ReadPin(GPIO0, GPIO_PIN_7)==0)
{
while(GPIO_ReadPin(GPIO0, GPIO_PIN_7)==0); //K1
OLED_ShowCHinesey(x,6, no*2);
x=x+16;
if(x>113) x=0;
}
if(GPIO_ReadPin(GPIO0, GPIO_PIN_6)==0)
{
while(GPIO_ReadPin(GPIO0, GPIO_PIN_6)==0); // K2
if(no<9) no++;
else no=0;
if(no<9) OLED_ShowChar (96,0,no+'1',16);
else OLED_ShowChar (96,0,'A',16);
OLED_ShowCHinesey(8,0, no*2);
}
mdelay(500);
}
}
模拟输入界面显示函数为:
void OLED_ShowCHineseS(unsigned char x,unsigned char y,unsigned int no)
{
unsigned char t,q,w,u;
no=0xB0A2;
q=(unsigned char) no&0xff;
q=(q-0xA1)*2;
x=x+8;
OLED_ShowString(48,0,"no:B0A1",16);
OLED_ShowCHinesey(8,0,0);
w=0;
for(u=0;u<10;u++)
{
if(u<5)
{
OLED_ShowChar(u*24,2,u+'0',16);
OLED_ShowChar(u*24,4,u+'5',16);
}
OLED_Set_Pos(x,y);
for(t=0;t<16;t++)
{
OLED_WR_Byte(Hzk[w][t],OLED_DATA);
}
w=w+1;
OLED_Set_Pos(x,y+1);
for(t=0;t<16;t++)
{
OLED_WR_Byte(Hzk[w][t],OLED_DATA);
}
x=x+24;
w=w+1;
if(u==4)
{
x=x-120;
y=y+2;
}
}
}
在下载程序后,按K2键进行汉字的选择;当按K1键时,则录入该汉字。经验证功能正常,其效果图2所示。

图2汉字模拟输入
史海拾趣
|
如何焊接贴片元件(图片教程) 首先来张全部焊接一个点的PCB图 当然这是焊接贴片的必须工具 这个是准备焊接的DD(晕倒,稍不小心会不见) 先用烙铁加热焊点 然后夹个贴片马上过去 等贴片固定后焊接另外一边! 焊接IC了,先在PCB上 ...… 查看全部问答> |
|
哎,买了个太阳能小夜灯,被骗了。想自己改进一下,请假一下电路如何改进 买了个太阳能小夜灯,说白天太阳底下充电一个白天,能亮一个晚上。可它是当快没电了的时候,一闪一闪的。正常亮也就亮两个小时,然后就是一闪一闪的亮。晚上一闪一闪的晃的睡不着。 我想改进一下,当它快没电的时候不让它亮了。… 查看全部问答> |
|
最近将wince5.0升级到wince6.0,发现以前在EVC下编写的mfc应用程序在wince6.0上不能运行, 尝试将Program Files\\Microsoft Visual Studio 8\\VC\\ce\\Dll\\armv4I目录下几个跟MFC相关的DLL导入到系统windows目录(网上看帖子说是PB6.0对MFC不支持 ...… 查看全部问答> |
|
如何在驱动中(如miniport driver)监控鼠标和键盘的消息? 目前打算从驱动中监控鼠标和键盘的消息(鼠标是否有移动或者键盘是否有按下),当监控到这个消息的时候,就唤醒处于睡眠状态的驱动。请大侠给一些建议,谢谢!!… 查看全部问答> |
|
看上去是个运动水壶,其实他是一个LED露营灯, 如果你旅行时有重要的私人用品,还可以将他们都装进去,防水防潮。这款名叫LightCap 300 LED户外灯,LED灯藏在瓶盖里面,瓶盖的外面是贴有整块太阳能板,不管你在哪只要野外晴天就能充电,夜晚就能持 ...… 查看全部问答> |
|
如何提高FLASH的擦写次数 在实际应用中,用户经常需要在程序运行过程中保存或读取一些数据,这些数据在工作中经常会变化,而且掉电后也不能丢失,所以需要及时地进行存储,存储这些数据常用的存储器是EEPROM。HXM6002虽然本身不带EEPROM,但是它 ...… 查看全部问答> |
|
小弟最近使用MSP430F2011外接32.768K晶振 然后想再LPM3模式下下产生3000HZ的PWM波形 可是我用定时器产生选着ACLK32.768HZ 怎么算也算不出来 3000HZ 求大侠指点 … 查看全部问答> |




