如何在液晶点阵上显示中文字符

forest_yu 2013-07-06 11:12:36
比如有 uchar table[]="汉字";我们直接向12864液晶写入时,它能够识别并且正确地显示出来。然后我想对于不带字符的液晶,自己建立一个字库,也能像上面一样能够识别并且显示。但是我不知道如何能辨别汉字字符,哪位大神能指导一下?
...全文
1258 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
山在岭就在 2013-12-15
  • 打赏
  • 举报
回复
首先要得到你要定义的汉字的字模,一般建议用取字模软件,也可以人工,然后先写入“字符定义命令”(这个命令中的某几位会包含调用这个字时所使用的编码),把这些字模数据写入到液晶模块的CGROM中,然后只需调用这个字对应的编码即可显示该汉字
forest_yu 2013-12-12
  • 打赏
  • 举报
回复
谢谢各位大神啊,呵呵呵!这个自己也解决了。
李榕榕 2013-09-22
  • 打赏
  • 举报
回复
可以使用Da Vinci LCD软件工具,专门设计点阵LCD的画面的。下载:(http://www.shzldz.com/down/class/?2.html)。
of123 2013-07-19
  • 打赏
  • 举报
回复
还有一点,中文的字符数组,最好用 unsigned short 型。一个单元就是一个字。
of123 2013-07-19
  • 打赏
  • 举报
回复
说穿了,液晶是用点阵“画”字。画中文就是中文,画英文就是英文。一套点阵库就是一套字体。 我偏好楷体,所以我的演示软字库就是楷体。实际上,点阵小的情况下,横平竖直的仿宋体更适合。 做点阵库有许多方法。我原来用的是笨办法,将字符的图片贴到 VC++ 的图标编辑器中,直接读它放大的网格,写出点阵数据。因为字符总量少,虽然慢,但自由度大,可以要自己想要的字符或符号。 另一种方法是网上下载字符点阵库,挑出你需要的字。 实际上,你想用液晶显示图画都可以。无法是画点点。
of123 2013-07-19
  • 打赏
  • 举报
回复
是这样的: 1 对于有字库的环境,你的字符数组在编译时得到的实际上是所谓 ASCII 码。显示时,硬件后台实际需要下列步骤: a. 将字符编码转换为对应字符点阵的字库中的地址; b. 读取点阵,逐列传给液晶控制器。 2 对于没有字库的硬件环境,如果需要显示的字符集很小,可以采用写成硬编码的“软字库”。 一种是将需要的词组分别写出表示其点阵的数组,也是 char 型,但内容不是字符本身,而是代表点阵的十六进制码。这种方法,在显示时,向液晶控制器送地址后,直接发送词组的点阵数据。 第二种是写一个小字库,里面是一些单字的点阵数据。另外做一个表,里面有 ASCII 码对应的单字在库中的地址偏移。这种情况下,你依然可以使用你原来的 uchar table[]="汉字";。显示时,先通过查表逐个字符转换地址,读取点阵,再发送到控制器。既可以查到一个传一个,也可以读到缓存中一次发出。对于表中不存在的字符,我的做法是显示 Null 字符,即点阵全为 0 的空白“字符”。
pu_qing 2013-07-18
  • 打赏
  • 举报
回复
用字模软件生成一个以数组形式存储的字模坐标,写入程序即可
u010516912 2013-07-18
  • 打赏
  • 举报
回复
这个要小心,要先把写入的汉字字符串保存为数组,然后for循环将每个汉字单独写入。不知道是不是这个问题,前两天我也遇到一个,没来准备直接把汉字像字符一样写入的,结果发现不行,,
yorkevin2012 2013-07-13
  • 打赏
  • 举报
回复
这个网上资料一大推 随便找找 参考参考 就会了 很简单的
zhxianbin 2013-07-08
  • 打赏
  • 举报
回复
楼主是想区分字符串中是汉字还是字母吧,看看 gb2312 的编码,简单一点就是通过第一个字节超过某个值就认为是汉字
woshi_ziyu 2013-07-08
  • 打赏
  • 举报
回复
大于128可以简单认为是汉字
woshi_ziyu 2013-07-08
  • 打赏
  • 举报
回复
void disp_str(unsigned char const *p,FNT_GB16 const *font_GB,uint32_t length) 
{ 
	while(*p>0) 
	{ 
		if(*p < 128)
		{ 
			disp_char(*p++); /* ASCII */
    }
		else 
		{		
			disp_hz(p++, font_GB,length);	/* ÖÐÎÄ */
			p++;
    } 
  } 
} 
dceacho 2013-07-07
  • 打赏
  • 举报
回复
对不带字库的显示屏,如果在单片机里建立一个完整的字库不太显示,存储空间会不够的. 一般都是把需要用的字用取模软件提取出 uchar char_wo[]={....}; 当然你必须知道怎样在显示屏上显示任意一个点出来
wsnsyy 2013-07-07
  • 打赏
  • 举报
回复
不是有取模软件可以吗

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧