打印
[应用相关]

12864液晶显示多国语言问题

[复制链接]
1808|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
oktony|  楼主 | 2016-3-2 16:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
对于12864液晶模块,在英语语种下我们可以用ASCII码集来利用函数LcmPutStr(0,0,"Hello");方便的在液晶上显示Hello,但是遇到非英语系语言要怎么处理比较好?比如显示Ироко这种字符,难道要每次写一个单个字符来输出吗?有没有办法可以整个字符串输出?请指教!
沙发
candysnape| | 2016-3-2 16:29 | 只看该作者
楼主用的液晶模块是内置英文字库的么?

使用特权

评论回复
板凳
oktony|  楼主 | 2016-3-2 16:31 | 只看该作者
不带字库。在程序中是不是只能把那些特殊字符做成表格,然后用代号循环单个字母输出?比如LcmPutChar(x)来表示И,无法直接在IDE输入类似这种函数LcmPutStr(0,0,"Ироко")整串输出?

使用特权

评论回复
地板
zhoupxa| | 2016-3-2 16:37 | 只看该作者
C是基于ASCII字符集的编程语言,处理英文字符串当然毫无压力。
对于非英语系的字符处理,只能借助于硬或软字库了,比如汉字显示,俄文也同样。

使用特权

评论回复
5
gcy_eyic| | 2016-3-4 19:11 | 只看该作者
方法肯定是有的:GB2312支持俄文,你将俄文字母按一定顺序取出字模放到数组中,然后按相同顺序取出对应字母的内码,也同样放到一个数组中,且顺序必须与字模顺序一致。然后就是你正常的编程,比如lcd_disp_char(x,y,"Ироко"),编译器在编译的时候实际用的就是俄文内码,这样,在lcd_disp_char中内置一个子函数,其功能是顺次读取放置俄文内码数组的内容,每读出一个便和当前俄文内码做比较,不同继续比较,相同则返回当前数组下标,然后用该下标作为俄文字模数组的下标,将点阵数据读出。这样LCD就可以显示俄文了!

QQ截图20160304190911.png (14.07 KB )

内码数组

内码数组

QQ截图20160304190943.png (26.03 KB )

字模数组

字模数组

QQ截图20160304191035.png (22.28 KB )

比较

比较

QQ截图20160304191049.png (17.27 KB )

显示

显示

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

46

帖子

1

粉丝