找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1676|回复: 9
收起左侧

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

[复制链接]
ID:1117653 发表于 2024-5-20 08:33 | 显示全部楼层 |阅读模式
Keil5设置里面
Options-Target-Memory Model:Small: variables in DATA

XDATA

XDATA

Lcd1602可以显示字符串

Lcd有显示

Lcd有显示

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

DATA

DATA

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

仿真设置

仿真设置

Lcd无显示

Lcd无显示

有大神知道是什么问题吗

主函数代码

主函数代码

Lcd打印代码

Lcd打印代码

Lcd初始化

Lcd初始化

Lcd写数据写命令

Lcd写数据写命令

Lcd延时

Lcd延时



回复

使用道具 举报

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的
要先设定一下
右键芯片
2024-05-20_104625.png

弹窗里把Edit all pro...勾上
把XRAM=0改为XRAM=512
2024-05-20_104640.png

回复

使用道具 举报

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

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

使用道具 举报

ID:1117653 发表于 2024-5-20 11:47 | 显示全部楼层
按照4楼的操作,完美解决!!感谢大家参与讨论!!
回复

使用道具 举报

ID:1117653 发表于 2024-5-20 11:47 | 显示全部楼层
lkc8210 发表于 2024-5-20 10:51
Protues内的AT89C芯片是预设没有xdata的
要先设定一下
右键芯片

谢谢大佬!!!
回复

使用道具 举报

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

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

使用道具 举报

ID:57657 发表于 2024-5-20 12:05 | 显示全部楼层
请确定写进xdata的数据可以正常读取,具体需实物验证。
回复

使用道具 举报

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 单片机教程网

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