解决Keil的OxFD_BUG

来源:互联网 发布:外星人源码 编辑:程序博客网 时间:2024/05/11 03:18

Keil BUG 汉字显示

Keil的OXFD BUG,12864液晶显示汉字问题,0xFD补丁。

最近写个12864液晶程序,采用索引查表的方式显示汉字,遇到了有些字乱码的情况,仔细检查最终查到了凡是汉字内码低位为FD的均会出现乱码,遂联想到了Keil的oxFD BUG,以前最早用Keil2的时候就听说过,没想到到了Keil4这个问题依然存在,所以开始没有太在意。数据表如下:

struct typFNT_GB16 code GB_16[] = 
{

"元",
0x00,0x20,0x20,0x22,0x22,0xE2,0x22,0x22,0x22,0xE2,0x22,0x22,0x22,0x20,0x20,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x70,0x00,//元

"能",
0x10,0xB8,0x97,0x92,0x90,0x94,0xB8,0x10,0x00,0x7F,0x48,0x48,0x44,0x74,0x20,0x00,
0x00,0xFF,0x0A,0x0A,0x4A,0x8A,0x7F,0x00,0x00,0x3F,0x44,0x44,0x42,0x72,0x20,0x00,//能

"正",
0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0x02,0xFE,0x82,0x82,0x82,0x82,0x82,0x02,0x00,
0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x00,//正

"源",
0x10,0x21,0x06,0xE0,0x00,0xFE,0x02,0xF2,0x5A,0x56,0x52,0x52,0x52,0xF2,0x02,0x00,
0x04,0xFC,0x03,0x40,0x30,0x0F,0x20,0x11,0x4D,0x81,0x7F,0x01,0x05,0x09,0x30,0x00,//源
};
调用时:show_HZ(0,0,"元正能源");“元”字以后的汉字均乱码,查看“正”字的内码为D5FD.验证一下这几个内码低位为FD的汉字:“妪,听”。经证实均会出现乱码。由于BUG,编译的时候FD变成了00,所以就乱码了。

解决:

1.使用HexEditor编辑Keil安装目录下的/keil/c51/bin/c51.exe文件,搜索80FBFD改成80FBFF,如果使用汇编则修改A51.exe.
2.使用晓奇工作室出品的补丁程序ccKeilVxx.exe。下载后放在/keil/c51/bin/目录下运行即可。

KeilC51 0xFD BUG补丁 ccKeilVxx.exe下载

0
0 0
原创粉丝点击