一个51单片机的keil问题,怎么也想不明白

[复制链接]
3491|12
 楼主| Torda 发表于 2010-6-17 18:57 | 显示全部楼层 |阅读模式
是朋友的一个问题,端午节这几天放假帮他一起搞。还是没有任何头绪。

问题是这样的:

一个按键、显示设备,用STC89LE54RD+的单片机,显示用的是2行的LCD。显示的菜单有6行,用上下键翻页显示。设备一共16个按键。

首先在一台台式机上,操作系统是xp,keil用的是7.50版本。编译出来的hex文件,下载到单片机中,运行一切OK。

但是换了一台便携机,操作系统是xp。将台式机上OK的工程和代码,一并拷贝到便携机中。目录等都保持一致。但是问题来了:
1、用keil8.02,编译出来的hex大小和原来台式机编译出来的一样大。下载下去后也能够运行。但是显示的6行菜单中有2行的最后2个汉字显示乱码。同时很多按键也没有反应。
2、将keil8.02卸载,装成和台式机一样的7.50版本。再编译。得到的结果和第一步一样,运行的结果也是一样。

核对了配置,包括选择的芯片型号、输出配置等都是一致的。

有没有高手遇到过类似的问题,指点一二呀。非常感谢!
NE5532 发表于 2010-6-17 19:06 | 显示全部楼层
别说一样大,说一样不一样,用UE比对一下就知道了。不一样就看是不是编译器版本问题或者程序里直接写汉字造成的识别错误,记住,世界上没有神!
mohanwei 发表于 2010-6-17 19:37 | 显示全部楼层
你搜一下“Keil 0xFD补丁”就知道了
一棵小草 发表于 2010-6-17 19:52 | 显示全部楼层
你能保证HEX文件一样的吗???

不能的话,照2楼说的,先用UE比较看看。。。再说
 楼主| Torda 发表于 2010-6-17 20:27 | 显示全部楼层
比较过了,只有大小一样,其它都不一样
 楼主| Torda 发表于 2010-6-17 20:42 | 显示全部楼层
你搜一下“Keil 0xFD补丁”就知道了
mohanwei 发表于 2010-6-17 19:37


是fd问题。下了个工具运行一下就OK了。非常感谢!
sankyo_feng 发表于 2010-6-18 09:04 | 显示全部楼层
这种事情还没有见过
jack.king 发表于 2010-6-18 09:10 | 显示全部楼层
很有可能是0xfd BUG 若有某些汉字不能显示你看看它的ASICC 码里面是否有fd,
new1988 发表于 2010-6-18 10:17 | 显示全部楼层
不是uVision3已经修改了FD的BUG了吗??
是不是有时候写程序的字体也有关系啊?   上次我写个1602的程序,首先写程序的字体不是默认的字体,烧进去后显示的是乱码,后面把字体改成默认的字体就可以了。
jack.king 发表于 2010-6-18 10:22 | 显示全部楼层
我现在用的uVision4都有这个BUG不知道为什么!给KEIL发了邮件也没有回
fywx 发表于 2010-6-18 10:35 | 显示全部楼层
没有哪个版本的修正了FD的问题;
是LZ的台式机打过补丁而已
xiaoyh520 发表于 2010-6-18 11:21 | 显示全部楼层
学习了
567 发表于 2010-6-18 13:28 | 显示全部楼层
keil不认为这是bug,当然也就不会去修正它,程序编译前预先搜索全文,删除了0xfd和其它一些特殊字节。
在keil网站上有关于此问题的解答。
原因是keil开发者所使用的语言中不会有0xfd这样的字符,而不知道世界上其他国家的语言中含有这些字符。
在编译过程中,使用了这些特殊字符用于某些特殊标志控制编译流程,所以需要预先删除程序文本中的这些字符。
正确的解决办法是使用转义字符\x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

132

主题

484

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部