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

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

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

这个问题是在用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://www.xjtudll.cn/Exp/340/

标签: keil
分享给朋友:

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

苹果电脑备份还原Windows操作系统

苹果电脑备份还原Windows操作系统

苹果电脑可以通过BootCamp安装Windows系统(毕竟,有很多“Just For Windows”和“IE Only”的软件和服务--比如国内的网上银行)。但是,苹果电脑的macOSX操作系统及其下的文件可以通过Time Machine备份、还原,通过BootCamp装的Windows系统及其...

Quartus Error: Signal "XX" drives an input pin”

问题: Quartus II编译提示:“Error: Signal "B" drives an input pin” 原因: 不该相连的节点(或PIN)连接到了一起了,有可能是被自动连接上了,删除不需要的连接即可。 还有种情况是:导线的名称跟Input...

dell服务器阵列中硬盘的状态变成外来(foreign)的解决方法

Dell服务器硬盘的状态变成外来(foreign),然后机房就重新导入一下就可以了: dell服务器移除RAID5中1块硬盘后再插上去,硬盘的状态变成外来(foreign),如何恢复成就绪的状态? 重启服务器,注意引导信息提示 RAID控制器 相关信息时,会发现这样提示: Fo...

Proteus 7.6SP4破解1.0完美补丁

Proteus7.6支持MSP430,相信大家都知道,但是网上的破解要么不支持中文系统,要么自动退出,今天终于找到了一款中文操作系统下能用的不自动退出的破解了。这个是国内一牛人破解的,以前都是国外的牛人破解的,所以很多只支持英文系统。Proteus7.6SP4下载地址:http://rapidsha...

穆斯林朝拜方向计算Qibla Direction

穆斯林朝拜方向计算Qibla Direction

穆斯林礼拜都是朝向麦加的“克尔白”(Kaaba)。在中国,大家都知道是向西。但是,很多人并不清楚到底是向“正”西,还是向朝西的某个角度。精确的方向该如何计算?这个问题就等同于:已知两地(其中一地是麦加)的经度,纬度,如何求方位角。学术的讲法就是大地主题...

无法嵌入互操作类型“*****.Class”,请改用适用的接口

无法嵌入互操作类型“*****.Class”,请改用适用的接口

引用某些类时,会提示无法嵌入互操作类型“*****.Class”。请改用适用的接口。 找到应用的类,点视图-->解决方案资源管理器,找到“嵌入互操作类型”选项,把true改为false就可以了,如下图所示。...

发表评论

访客

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