找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 199|回复: 9
打印 上一主题 下一主题
收起左侧

Keil5设置data变xdata编译之后,Lcd1602就不显示了

[复制链接]
跳转到指定楼层
楼主
Keil5设置里面
Options-Target-Memory Model:Small: variables in DATA
Lcd1602可以显示字符串

后面写的时候发现内存满了然后换成了
Options-Target-Memory Model:Large: variables in XDATA,并且Use On-chip XRAM(0x0-0x6FF)也打勾了

代码也没有变过,但Lcd不会显示了,仿真里面也改了

有大神知道是什么问题吗



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1109793 发表于 2024-5-20 09:44 | 只看该作者
C52有多少XDATA?看下是不是超了
回复

使用道具 举报

板凳
ID:1117653 发表于 2024-5-20 10:28 | 只看该作者
xiaobendan001 发表于 2024-5-20 09:44
C52有多少XDATA?看下是不是超了

STC89C52只有512字节的的RAM,256字节的内部RAM和256字节的外部RAM。
我用Small模式编译也没有超过,用Large模式也没有超过,但是只有在Small模式下编译Lcd才有显示。
Small模式:Program Size: data=72.4 xdata=16 code=1875
Large模式:Program Size: data=15.4 xdata=123 code=2083
回复

使用道具 举报

地板
ID:161164 发表于 2024-5-20 10:51 | 只看该作者
Protues内的AT89C芯片是预设没有xdata的
要先设定一下
右键芯片


弹窗里把Edit all pro...勾上
把XRAM=0改为XRAM=512


回复

使用道具 举报

5#
ID:1109793 发表于 2024-5-20 11:00 | 只看该作者
LauChiHin 发表于 2024-5-20 10:28
STC89C52只有512字节的的RAM,256字节的内部RAM和256字节的外部RAM。
我用Small模式编译也没有超过,用L ...

看下和显示有关的变量,因为XDATA操作时间比DATA 长一点
回复

使用道具 举报

6#
ID:1117653 发表于 2024-5-20 11:47 | 只看该作者
按照4楼的操作,完美解决!!感谢大家参与讨论!!
回复

使用道具 举报

7#
ID:1117653 发表于 2024-5-20 11:47 | 只看该作者
lkc8210 发表于 2024-5-20 10:51
Protues内的AT89C芯片是预设没有xdata的
要先设定一下
右键芯片

谢谢大佬!!!
回复

使用道具 举报

8#
ID:1117653 发表于 2024-5-20 11:50 | 只看该作者
xiaobendan001 发表于 2024-5-20 11:00
看下和显示有关的变量,因为XDATA操作时间比DATA 长一点

看过其他帖子XDATA确实会慢一点,但是等好久也是一直不显示的。我用了4楼的方法,Lcd可以显示了,是没设置XRAM的原因。
回复

使用道具 举报

9#
ID:57657 发表于 2024-5-20 12:05 | 只看该作者
请确定写进xdata的数据可以正常读取,具体需实物验证。
回复

使用道具 举报

10#
ID:1109793 发表于 2024-5-20 12:46 | 只看该作者
LauChiHin 发表于 2024-5-20 11:50
看过其他帖子XDATA确实会慢一点,但是等好久也是一直不显示的。我用了4楼的方法,Lcd可以显示了,是没设 ...

Protues我只安装了,不会用呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表