Pioneermcu 发表于 2018-4-24 10:20:57

Keil的0xfd问题解决,Keil 0xfd液晶屏乱码问题解决。Keil 0xfd

之前一直用的老电脑太慢了,所以换了电脑,从WIN7 变到了Win10, 重装了Keil ,又碰到了大几年前碰到的个别液晶屏字乱码问题,试了网上各种解决问题的办法,均未OK

突然一个邪恶的想法涌上心头,直接复制旧电脑的C51.exe and A51.exe 过来试下,问题就这样解决了!



tt98 发表于 2018-4-24 11:00:47

试试看看,不知自制到9.57下有没有影响?

lw2012 发表于 2018-4-24 11:18:52

不是有个补丁软件吗?

SkyGz 发表于 2018-4-24 11:22:25

这是好多年前的事啦... 补丁方法 也早就有啦


用UltraEdit或WinHex修改C51.exe
查找   80FBFD56
替换为 80FBFF56

waymcu 发表于 2018-4-24 11:24:10

不知道,还有这样的问题。

lw2012 发表于 2018-4-24 13:03:35

不知道针对现在的c51版本还灵不, 好久不用了。

four_zhg 发表于 2018-4-24 21:21:44

楼上的,好像针对现在新的版本不灵了

小李非刀 发表于 2018-4-24 22:33:04

这就是我一直用KEIL uVISION2编译51的原因,程序小而稳定。

abc220 发表于 2018-4-24 22:48:39

收藏备用,谢谢楼主。

Pioneermcu 发表于 2018-4-25 12:36:56

SkyGz 发表于 2018-4-24 11:22
这是好多年前的事啦... 补丁方法 也早就有啦




直接替换文件更方便吧

zhou19852 发表于 2018-4-26 15:06:27

赶紧回复几个帖子

BXAK 发表于 2018-5-26 11:14:32

SkyGz 发表于 2018-4-24 11:22
这是好多年前的事啦... 补丁方法 也早就有啦




新版本不是80 FB FD 56,


(使用WinHex修改)


【 Keil C51 V9.57 】*************************************************************************************

C51.exe(V9.57.0.0)
查找 80FBFD 结果列表:
①(偏移量6AE77)80 FB FD 0F 84 02 01 00 00
②(偏移量6DBC6)80 FB FD 0F 84 C1 00 00 00
③(偏移量70412)80 FB FD 0F 84 07 01 00 00
④(偏移量70A07)80 FB FD 0F 84 D3 00 00 00
只将 ④ 中的 80FBFD 改成 80FBFF 即可



【 Keil C51 V9.59 】*************************************************************************************

C51.exe(V9.59.0.0)
查找 80FBFD 结果列表:
①(偏移量6B097)80 FB FD 0F 84 02 01 00 00
②(偏移量6DDE6)80 FB FD 0F 84 C1 00 00 00
③(偏移量70632)80 FB FD 0F 84 07 01 00 00
④(偏移量70C27)80 FB FD 0F 84 D3 00 00 00
只将 ④ 中的 80FBFD 改成 80FBFF 即可

korren 发表于 2018-6-22 15:46:43

为什么KEIL从来就不打算修复这个问题呢?

cddx 发表于 2018-7-4 16:29:05

korren 发表于 2018-6-22 15:46
为什么KEIL从来就不打算修复这个问题呢?

这不是问题,本来C语言标准就不支持双字节的。KEIL解释过。

makesoft 发表于 2018-7-4 22:10:26

BXAK 发表于 2018-5-26 11:14
新版本不是80 FB FD 56,




为什么不是全部替换,而只换最后一个呢

zmh169 发表于 2018-7-5 10:52:03

cddx 发表于 2018-7-4 16:29
这不是问题,本来C语言标准就不支持双字节的。KEIL解释过。

哪里有keil官方的解释?给个链接吧

zmh169 发表于 2018-7-5 11:06:38

本帖最后由 zmh169 于 2018-7-5 11:09 编辑

zmh169 发表于 2018-7-5 10:52
哪里有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.

BXAK 发表于 2018-7-5 11:31:38

makesoft 发表于 2018-7-4 22:10
为什么不是全部替换,而只换最后一个呢

以前我是全改的,
现在尝试依次单改一个,发现改对其中一个就行了

makesoft 发表于 2018-7-5 16:28:43

不知道IAR FOR 8051有没有这个问题,官方的答复虽然可以使用转义符'\'来实现0xfd-0xfe-0xff,但毕竟这样的程序看起来很难受的。

korren 发表于 2018-7-6 08:29:36

makesoft 发表于 2018-7-5 16:28
不知道IAR FOR 8051有没有这个问题,官方的答复虽然可以使用转义符'\'来实现0xfd-0xfe-0xff,但毕竟这样的 ...

IAR没有这个问题

canonmy 发表于 2018-7-6 11:33:43

还有这种问题
页: [1]
查看完整版本: Keil的0xfd问题解决,Keil 0xfd液晶屏乱码问题解决。Keil 0xfd