全网免费中文无码字幕,国产99久9在线视频 ,亚洲成av片在线播放,欧美日韩国产成人一区二区

关于51单片机的地址空间溢出以及解决方法的个人看法(proteus无法仿真)

关于51单片机的地址空间溢出以及解决方法的个人看法(proteus无法仿真)

ruyue 2024-12-13 批发零售 33 次浏览 0个评论

个人看法,不喜勿喷
在51单片机程序编写中,当变量过多而且数据类型过大的话,容易在编译的时候出现以下的问题,具体表现为:

 

Program Size: data=130.0 xdata=7 code=3267
Target not created.

这样子也就是所谓的编译失败,不能生成HEX文件,更加无法烧写到程序中去,那么如何解决这个问题呢,我在网上找到了解法,网上的具体步骤如下:
1.先点击这个图标

2.在其中的memory model 将small改成compact选项,那么即可编译通过。

3.确实,我通过这种方法,解决了程序无法编译的问题

但是呢,我们将这种情况下生成的HEX文件在proteus上面导入,准备实现整体软件的功能,这个时候我们又会发现一个问题,那就是Proteus里面的程序运行不了

关于51单片机的地址空间溢出以及解决方法的个人看法(proteus无法仿真)


我们观察这个LCD1602的显示屏,发现上面是直接的黑块,这个就很奇怪了。。。我以为是LCD初始化做的不够,就去疯狂的调试LCD的程序。。。。。后来发现不是LCD的程序问题,而是你改成了了Compact模式之后还要紧接着修改RAM的地址.

像我这种菜鸡怎么会修改RAM的地址呢???我就想了另外一种解决方法.
就是在变量的数据类型上面进行修改,因为我们程序中一定会用到大量的全局变量跟局部变量,那么将变量的类型修改成为xdata类型就可以了.
例如

unsigned int xdata Count1;
unsigned int xdata Count2;
unsigned int xdata jll;

关于51单片机的地址空间溢出以及解决方法的个人看法(proteus无法仿真)

我们也不需要将所有的变量都设置成为这种类型,只要合适就好.
再将Compact类型改成small类型,之后重新编译就可以通过.
注意我们还需要在Proteus里面修改内容哦,所需要修改的是STC89C52.

右键52单片机,点击编辑属性,找到最下面一栏

然后修改XRAM的内容

将XRAM的值改成512
之后重新加载hex文件就可以出结果了

关于51单片机的地址空间溢出以及解决方法的个人看法(proteus无法仿真)

转载请注明来自石家庄天鲲化工设备有限公司 ,本文标题:《关于51单片机的地址空间溢出以及解决方法的个人看法(proteus无法仿真)》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

验证码

评论列表 (暂无评论,33人围观)参与讨论

还没有评论,来说两句吧...

Top
 疫情唐山最新  明星最新图库  2019最新福利  疫情最新重庆  龙海最新命案  盾娘最新  绍兴最新通知  文体之路最新  全球最新动态  日本悬疑最新  最新持有市值  宁波疫情最新  广东最新舆情  各国最新灾情  最新故宫事  sc币最新  凉山疫情最新  陇南最新疫情  最新绑定28  最新广州招工  广州最新肺炎  泗阳最新疫情  霍邱最新肺炎  时王最新  苍溪最新公告  我最新戏  最新同名库  湖州最新活动  渭南最新复工  幻影分身最新 
汾西县| 屏边| 珠海市| 大冶市| 莒南县| 阿鲁科尔沁旗| 宜都市| 塘沽区| 额济纳旗| 固始县| 黄骅市| 江永县| 枣强县| 桓仁| 平邑县| 青海省| 龙井市| 大理市| 龙海市| 安西县| 靖江市| 大邑县| 阿图什市| 明溪县| 丰顺县| 阿勒泰市| 苍南县| 沅江市| 天柱县| 北川| 洪泽县| 四会市| 永靖县| 滦平县| 徐州市| 咸丰县| 仁化县| 崇左市| 桐梓县| 凯里市| 措勤县|