摘自正文:
这两天改进MCU的液晶显示方法,采用“即编即显”的思路,编写了一个可以直接显示字符串的程序。如程序调用disstr(“我是你老爸”);液晶屏上就会显示“我是你老爸”。
二、问题
但是,花了1天多时间辛辛苦苦改好的程序后,却发现有些汉字显示有问题。比如:
P1:在第一行显示“实时参数”,第二行显示“工作状态”,实际上“工作状态”却重复显示了,除了在正确的地方显示外,还在“实时参数”后显示了。
P2:“正”字后若有“:”,则都显示成乱码。如果后面没有“:”,则“正”字可正确显示,但是后面却显示了后面的一行字。
P3:“过”字总显示乱码;
……
文档内容节选
Keil C51汉字显示的bug问题 收藏 一缘起 这两天改进MCU的液晶显示方法,采用即编即显的思路,编写了一个可以直接显示字符 串的程序如程序调用disstr我是你老爸液晶屏上就会显示我是你老爸 二问题 但是,花了1天多时间辛辛苦苦改好的程序后,却发现有些汉字显示有问题比如: P1:在第一行显示实时参数,第二行显示工作状态,实际上工作状态却重复显示 了,除了在正确的地方显示外,还在实时参数后显示了 P2正字后若有,则都显示成乱码如果后面没有,则正字可正确显示,但是 后面却显示了后面的一行字 P3过字总显示乱码 三求索 通过调试发现,上述汉字显示不正常的时候,是因为在字库中找不到匹配的汉字可是 ,自建的字库中明明有这些汉字,而且数,正字在后面无字符的时候是显示正确的 啊 问题找了好久,怀疑传参类型不对,汉字查找可能溢出等,反复修改,总是无法解决问 题,而且从现象来思考,都不应该是这些问题 今日灵光一现:为什么不在传递字符串后显示该字符串的变量值呢 经过详细研究,西文字符在传递时应该是ACSII值,一个字节,数值小于128而汉字传 递的是其机内码,分高低2个字节......