打印

单片机RAM /EEPROM应用问题?

[复制链接]
2906|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
7120223|  楼主 | 2009-12-4 14:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 7120223 于 2009-12-4 14:03 编辑

今天听别人讲,89c52本来是手册上也是256的RAM,我的理解在keil编译中data只要不大于256或200,就可以了。但是有人说这个RAM最好只能用到100以内,同理128RAM只能用到64. 他们的解释是我们定义的局部变量也要占用一些RAM这是可以理解的,但是为什么要占用这么多了,不懂?难道所有单片机标有512的EEPROM,就正的只能用一半左右的么??还要在小点还有部分留给局部变量用了就连256也没有了。

相关帖子

沙发
5880527| | 2009-12-4 14:38 | 只看该作者
谁给你说的最好只用到100以内啊,我256的RAM用到了266,本来那片子是有XRAM的,但多出来的几个变量实在不想用DPTR来寻址,就用到了我那程序里用不到的80H以上的寄存器空间,好使得很,还有几个单元是书上说访问不确定的地方不敢去了:lol

使用特权

评论回复
板凳
5880527| | 2009-12-4 14:42 | 只看该作者
估计那人是留了一截来做堆栈,其实80H以上的空间用来做堆栈就很好用的,还剩下一大截用来做通讯的缓存也很舒服的

使用特权

评论回复
地板
chunyang| | 2009-12-4 18:10 | 只看该作者
标准89C52是不带XDATA RAM的,其256字节的内存也是分为两个区,要用不同的寻址方式进行操作,高128字节需定义为iData,楼主还是好好去看看51的书。

使用特权

评论回复
5
ejack| | 2009-12-4 18:17 | 只看该作者
被LZ的叙述彻底击垮……跟EEPROM有啥关系?
局部变量所占用的空间,Keil已经给你分配完毕了。空闲一部分都是给栈预留的。如果中断很少、又没有重入,没必要机械地留出那么大空间。

使用特权

评论回复
6
hyg1984| | 2009-12-5 11:51 | 只看该作者
哦,我做过波形发生器的啊,RAM256都用了,没什么问题啊

使用特权

评论回复
7
ningling_21| | 2009-12-5 14:14 | 只看该作者
LZ不要总是听别人说什么什么,要仔细看书和芯片资料才是...

使用特权

评论回复
8
7120223|  楼主 | 2009-12-7 08:05 | 只看该作者
谢谢大家了 呵呵 我刚出来的菜鸟,有好多方面没有经验,所有老鸟说什么就什么了,呵呵但是通过这里我知道他错了 哈哈

使用特权

评论回复
9
kencool| | 2009-12-7 08:39 | 只看该作者
51寻址这么麻烦啊,这在新mpc系列中还没碰到

使用特权

评论回复
10
zhaoyu2005| | 2009-12-7 08:41 | 只看该作者
256的RAM用到266,弓虽!

使用特权

评论回复
11
5880527| | 2009-12-7 14:26 | 只看该作者
一次用2051,堆栈习惯性的直接整到80H,一个简单的程序老不对,害得忙了大半天,好久才想起51不是52。52特殊寄存器的大半空间都没有用,蛮浪费的,书上说访问时会不确定,不知道是不是真的,什么时候空了写段程序去验证一下

使用特权

评论回复
12
5880527| | 2009-12-7 14:42 | 只看该作者
晕死,刚才写了个程序用了80H以上特殊寄存器剩下来的空间,现象是直接写不动,读出来都是FF;P

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

105

主题

389

帖子

0

粉丝