Keil UV3一直存在汉字显示(0xFD)的bug,以前在用到带字库的12864液晶的时候,“数”字总是不能正常显示,后来有网友告诉我这是keil的bug,解决掉了。后来keil升级了,我也换了新版本Keil UV4,把Keil UV3存在汉字显示bug的这个问题给忘记了,最近又用到12864液晶,发现Keil UV4编译出来的程序还是不能正常显示“数”字,又去查了一遍液晶说明书里的字库,发现里面有“数”字,突然想起来Keil UV3的bug,然后照以前的办法修改了Keil UV4的bug,现在显示正常了。
  在这里给大家提个醒,Keil升级成UV4了,但是UV3的bug却遗留着,有用到带字库的液晶,赶紧去把这个问题解决掉!
  解决办法:用十六进制编辑软件HexEdit打开Keil安装目录/keil/c51/bin/c51.exe,搜索80FBFD,改为80FBFF即可。

  编译器没有修改之前不能正常显示

  修改了bug显示正常了

“三”的机内码是C8FD,“数”的机内码是CAFD,“过”的机内码是B9FD,我试过了,只要是机内码后两位是FD的都不能显示,修改了bug就可以了。
没有修改bug三不能显示 (原文件名:图片_0~1.JPG)


修改了bug显示正常了 (原文件名:图片_0~1.JPG) 
在此我也把ST7920的说明书上传,可以查看一下汉字机内码表st7920中文数据手册.pdfourdev_671134YUMHPO.pdf(文件大小:1.64M)

这个问题早就遇到过。是编译器的问题。
点击此处下载 ourdev_673840SD8X3K.rar(文件大小:10K) (原文件名:ccKeilVxx.rar)

将文件解压后放入keil/c51/bin文件夹运行即可。

keil 不认为是bug

http://www.keil.com/support/docs/2618.htm

我现在已经不打补丁了,免得出个新版本不支持,写的时候避免吧

用内码代替,即例如
printf ("Hello World \xca\xfd \n"); /* Print "Hello World 数" */

下面的是来自Keil官方的解决方法

http://www.keil.com/support/docs/2618.htm

GENERAL: COMPILER IGNORES 0XFD, 0XFE, 0XFF VALUES IN STRINGS

Information in this article applies to:

* C166 Compiler All Versions
    * Cx51 Compiler All Versions
    * C251 Compiler All Versions

QUESTION

I have a problem with the interpretation of Russian strings in the Keil C51 compiler. Some Russian characters are using the encoding 0xFD. It looks like this encoding is ignored by the compiler and is not included in the program code.

Example:

code char RussianString[] = "??? ????";

Why does this problem exist and how can I avoid this behavior?
ANSWER

The character encodings 0xFD, 0xFE, and 0xFF are used internally by the C compiler. The ANSI standard only requires support for ASCII characters in the range 0x00 - 0x7F.

You may insert these characters by using HEX encodings in the string as follows:

code char RussianString[] = "My Text" "\xFD";

A simple text replacement which replaces all 0xFD characters with the string '" "\xFD' should do the job.

对于这个BUG建议还是不要修改软件,因为不确定在某些特定条件下是否会引起莫名奇妙的其他问题,而且涉及到这个BUG的汉字不多,下面是从GB2312中抽了出来:

褒 饼 昌 除 待 谍 洱 俘 庚 过

糊 积 箭 烬 君 魁 例 笼 慢 谬

凝 琵 讫 驱 三 升 数 她 听 妄

锡 淆 旋 妖 引 育 札 正 铸

佚 冽 邶 埤 荦 蔟 摭 啐 帻 猃

恺 泯 潺 妪 纨 琮 椠 辇 挲 臊

忑 睚 铨 稞 瘕 颀 螨 簖 酏 觚

鳊 鼾

碰到这些字,建议手动处理一下就好了!

Keil UV4 BUG(带字库液晶不能显示“数、正、过”问题的请看)的更多相关文章

  1. 单片机中不带字库LCD液晶屏显示少量汉字

    单片机中不带字库LCD液晶屏如何显示少量汉字,一般显示汉字的方法有1.使用带字库的LCD屏,2.通过SD 卡或者外挂spi flash存中文字库,3.直接将需要的汉字取模存入mcu的flash中. 第 ...

  2. STM32实战应用(一)——1602蓝牙时钟1液晶的显示测试

    前言 从51到STM32F4学习这么久了,总算找到点头绪了,目前学习了GPIO,中断,定时器,看门狗的基本使用,所以想试着看看能不能做个什么东西,就是想复习一下最近学习的知识.正好上学期单片机课程设计 ...

  3. AC日记——【模板】分块/带修改莫队(数颜色) 洛谷 P1903

    [模板]分块/带修改莫队(数颜色) 思路: 带修改莫队: (伏地膜xxy): 代码: #include <bits/stdc++.h> using namespace std; #defi ...

  4. 莫队 [洛谷2709] 小B的询问[洛谷1903]【模板】分块/带修改莫队(数颜色)

    莫队--------一个优雅的暴力 莫队是一个可以在O(n√n)内求出绝大部分无修改的离线的区间问题的答案(只要问题满足转移是O(1)的)即你已知区间[l,r]的解,能在O(1)的时间内求出[l-1, ...

  5. 嵌入式Qt4.8.0支持ttf字库,并显示中文

    引言 最近在做QT项目发现中文没法显示,于是百度QT嵌入式显示中文,基本上提示的都是把ttf字库转换为QPF(QT专门支持二进制的),发现这个qpf本身制作就很麻烦,按照网上的做法实实在在来了一边,发 ...

  6. 使用opencv调用24*24点阵字库和8*16ASCII字库在图片显示文字数字

    课程实验:编程读汉字点阵字库,把自己的名字和学号叠加到图片的右下位置. 主要步骤分为三部分 第一部分:读取图片(文件读取) 第二部分:读取文字并从字库中提取相应的编码(字库的存储原理) 第三部分:将相 ...

  7. bug -- android 7.0 popwindow显示位置异常情况解决

    android 7.0 popwindow显示位置异常,在android7.1官方进行解决了,但是还是要多7.0的bug进行解决,我的解决方案里面通过重写popwindow进行适配: import a ...

  8. 51单片机 | 实现SMC1602液晶屏显示实例

    ———————————————————————————————————————————— LCD1602 - - - - - - - - - - - - - - - - - - - - - - - - ...

  9. keil uV4一个project内各个后缀名文件的作用

    1 test1 无后缀文件,这个是终于生成的文件.仅仅要有这个文件KEIL就能够软件仿真,不能打开 2 test1.hex 这个文件能够直接下载到单片机里,他就是从无后缀文件test1里提取的,去掉了 ...

随机推荐

  1. BZOJ 1977 次小生成树(最近公共祖先)

    题意:求一棵树的严格次小生成树,即权值严格大于最小生成树且权值最小的生成树. 先求最小生成树,对于每个不在树中的边,取两点间路径的信息,如果这条边的权值等于路径中的权值最大值,那就删掉路径中的次大值, ...

  2. Driver Signing changes in Windows 10

    Driver Signing changes in Windows 10 RATE THIS 1 Apr 2015 1:28 PM  39 Beginning with the release of ...

  3. Cocos2d-x程序Windows下VC中文乱码的解决(用MultiByteToWideChar进行转换,VC2010有非常厉害的execution_character_set)

    Cocos2d-x默认字符串常量编码都是UTF8的,而Windows中的VC默认都是跟系统相同,比如简体Windows是GB2312或者GBK.繁体就是BIG5编码.而我们大多数中国人用VC编译出来的 ...

  4. libeXosip2(1-2) -- How-To initiate, modify or terminate calls.

    How-To initiate, modify or terminate calls. The eXtented eXosip stack eXosip2 offers a flexible API ...

  5. Best Meeting Point 解答

    Question A group of two or more people wants to meet and minimize the total travel distance. You are ...

  6. HashMap Java Doc

    原文 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneab ...

  7. Linux优化,history增加详细历史记录

    主要功能: 1, 可以记录哪个ip和时间(精确到秒)以及哪个用户,作了哪些命令 2,最大日志记录增加到4096条   把下面的代码直接粘贴到/etc/profile后面就可以了 #history mo ...

  8. bootstrap 兼容IE8设置

    <!--[if lt IE 9]> <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js" ...

  9. 《招聘一个靠谱的iOS》面试题参考答案(下)

    相关文章: <招聘一个靠谱的iOS>面试题参考答案(上) 说明:面试题来源是微博@我就叫Sunny怎么了的这篇博文:<招聘一个靠谱的 iOS>,其中共55题,除第一题为纠错题外 ...

  10. UITableView 自定义选中Cell颜色

    cell.selectedBackgroundView = [[UIView alloc] initWithFrame:cell.frame]; cell.selectedBackgroundView ...