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

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

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

这个问题是在用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解决” 的相关文章

ios ble:didDiscoverPeripheral没有回调

参考资料: http://stackoverflow.com/questions/26320578/diddiscoverperipheral-not-been-called-after-advertising-another-ios-device 问题: 启动scan之后,didDiscoverP...

Protel99SE原理图全局设置

Protel99SE原理图全局设置

一说到Protel99SE的全局设置,大家肯定会想到Global功能,这个功能在PCB里使用是很简单的,但是在原理图里的使用,相信很多人就不会操作了。 举个例子来说明吧,如果我想将全部电阻的封装由RC0603(实际上就是0603,自己换个名字而已)全部改成RC0805,那么该怎么操作呢? 先任意...

CC2541功耗测试结果

CC2541功耗测试结果

测试环境: 1、CC2541开发板 2、使用heartrate工程,修改心率发送间隔时间为1秒(原来是2秒) 测试结果: 慢速广播 10 uA 快速广播 2 mA 仅定时器运行:1.2 uA(蓝牙关闭) 休眠:0.34 uA 与手机连接时刻:1 mA 约持续10秒 保持连接状态(1秒发送一次心率值...

金蝶K3:单据关系表查询

金蝶K3:单据关系表查询

金蝶K3后台数据存放的都是内码 前台的数据如何在后台进行查询可以使用这张表 ictablerelation例如我查询发货通知单  select * from ictablerelation where FTableName='SEOutstock'  从数据库字典...

Multisim示波器设置

Multisim示波器设置

在使用Multisim的时候,经常要用到示波器,但是在用到双通道的时候,两通道波形显示的颜色经常是一样的,无法直观的分辨到底是哪个通道。 其实Multisim里面有设置: 选中与示波器相连的那根线,右键,选择图块颜色,操作后会出现颜色选择的窗口,如下图。 选择一个颜色即可。 以一个电路图为例,下图...

STM32串口发送数据首字符丢失解决办法

STM32串口发送数据首字符丢失解决办法

现象: 串口发送数据时,第一个字符丢失 例如,发送“system init\r\n”,最后收到的是“ystem init\r\n”,在此之后发送的数据均正常。 错误代码: 原因分析: TC 和 TXE 标志位在复位的时候被置1 ,这样第一次whil...

发表评论

访客

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