[应用相关] 12864液晶显示多国语言问题

[复制链接]
 楼主| 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字符集的编程语言,处理英文字符串当然毫无压力。
对于非英语系的字符处理,只能借助于硬或软字库了,比如汉字显示,俄文也同样。
gcy_eyic 发表于 2016-3-4 19:11 | 显示全部楼层
方法肯定是有的:GB2312支持俄文,你将俄文字母按一定顺序取出字模放到数组中,然后按相同顺序取出对应字母的内码,也同样放到一个数组中,且顺序必须与字模顺序一致。然后就是你正常的编程,比如lcd_disp_char(x,y,"Ироко"),编译器在编译的时候实际用的就是俄文内码,这样,在lcd_disp_char中内置一个子函数,其功能是顺次读取放置俄文内码数组的内容,每读出一个便和当前俄文内码做比较,不同继续比较,相同则返回当前数组下标,然后用该下标作为俄文字模数组的下标,将点阵数据读出。这样LCD就可以显示俄文了!

内码数组

内码数组

字模数组

字模数组

比较

比较

显示

显示
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

46

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

17

主题

46

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部