当前位置:首页 > 技术心得 > 正文内容

Keil C51某些汉字不显示bug解决

xjtudll12年前 (2014-10-13)技术心得16890

这个问题是在用ST7920 LCD 12864时发现的,“星期三”中的“三”字显示不出来。经查,发现是Keil编译器的问题,编译器在编译汉字时会将汉字内码0xFD给过滤掉,导致汉字显示不正常。

一、直接用汉字编码

如果直接用编码则不会有这个问题。例如,“三”用0xc8,0xfd代替。

举例如下:

code const unsigned char week_ch[7][6]=

{

{"星期日"},

{"星期一"},

{"星期二"},

{"星期三"},

{"星期四"},

{"星期五"},

{"星期六"}

};

如果直接编译,星期三肯定显示不正常。这个时候可以直接用编码。

code const uchar week_ch[7][6]=

{

{0xD0,0xC7,0xC6,0xDA,0xC8,0xD5},

{0xD0,0xC7,0xC6,0xDA,0xD2,0xBB},

{0xD0,0xC7,0xC6,0xDA,0xB6,0xFE},

{0xD0,0xC7,0xC6,0xDA,0xC8,0xFD},

{0xD0,0xC7,0xC6,0xDA,0xCB,0xC4},

{0xD0,0xC7,0xC6,0xDA,0xCE,0xE5},

{0xD0,0xC7,0xC6,0xDA,0xC1,0xF9}

};

编码可以在LCD模块的使用手册里找到,也可以在ST7920 datasheet里找到。

clip_image002




二、给keil打补丁

针对keil的汉字编译bug,已有网友(晓奇工作室)做了补丁。

下载地址:http://www.greenxf.com/soft/40975.html

若地址失效,请百度or google搜索“Keil C51汉字修复”。

补丁使用办法:

1、关闭Keil,将exe文件拷贝到 \Keil\C51\BIN

clip_image004

2、运行exe文件,打开后点“start”,等待即可。

clip_image006


3、重启Keil

经试验,该补丁对Keil 4有效。

还有人说,用十六进制编辑软件如Ultraedit打开c51.exe,搜索80FBFD,改为80FBFF即可。这个方法我没有尝试。

c51.exe位置:Keil安装目录/keil/c51/bin/c51.exe”。

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/340/

标签: keil
分享给朋友:

“Keil C51某些汉字不显示bug解决” 的相关文章

IIS配置允许下载APK文件

IIS配置允许下载APK文件

MIME类型:application/vnd.android.package-archive...

宏与子程序的区别

宏和子程序都是为了简化源程序的编写,提高程序的可维护性,但是它们二者之间存在着以下本质的区别:1、在源程序中,通过书写宏名来引用宏,而子程序是通过CALL指令来调用;2、汇编程序对宏通过宏扩展来加入其定义体,宏引用多少次,就相应扩展多少次,所以,引用宏不会缩短目标程序;而子程序代码在目标程序中只出现...

Android Studio:Your project path contains non-ASCII characters

Android Studio:Your project path contains non-ASCII characters

参考资料: http://stackoverflow.com/questions/32171968/your-project-path-contains-non-ascii-characters-android-studio 问题: Android Studio编译工程时,提示: Error:(1...

OKI单片机——ML610Q4XX Melody Driver

OKI单片机——ML610Q4XX Melody Driver

配置流程: (1) Select a buzzer mode by setting the BZMD bit of the melody 0 control register (MD0CON) to “1”. (MD0CON寄存器的BZMD位置一)。 (2) Select...

OKI单片机调试时如何修改变量值

OKI单片机调试时如何修改变量值

OKI的仿真器有个特点,只要重新load程序,哪怕程序不变,之前加的断点也全部清除。这点与tenx(十速)不同, tenx(十速)的仿真器只要不改变当前文件的程序,当前文件的断点依旧全部保留。 调试程序时,为了验证程序的准确性,需要不停的改变变量值,如果采用在程序里加赋值语句的方法,那必然会改变程序...

mysql服务无法启动 服务没有报告任何错误

mysql服务无法启动 服务没有报告任何错误

参考资料: http://bbs.csdn.net/topics/391851148 问题描述: 使用net start mysql启动MySQL服务时,提示:MySQL服务无法启动,服务没有报告任何错误。如下图所示: 可能原因: data目录里已经有数据里,所以有冲突。 解决办法: 1、删...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。