6218|20

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求,怎样在51中放置一串数据,掉电数据不丢失 [复制链接]

在51单片机中放置一串十几字节的数据,掉电以后数据不丢失,上电以后可以再次读出这个数据,

请问这个数据放在哪里的呢?
怎样用C或者汇编来放这些数据呢?
还有就是怎样对它进行读写?

最新回复

ROM  详情 回复 发表于 2008-9-17 09:10
点赞 关注

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
51里有FLASH么? 有ROM么?  放这里就行了
DRAM SRAM SDRAM 等RAM 掉电会丢失数据的
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
如果数据是固定不变的,当然放在CODE区,也就是ROM中就成了。
但,好像你不是这个意思。你用的是什么芯片啊?片内有EEPROM吗?
如果没有,那在片内就放不了。找一个小的EEPROM放吧。
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

4
 
我用的51里有一个128K的闪存,可以放数据。但是我是用C 写的,根本看不到数据放置的具体物理地址。怎样把数据放到某个地址去呢?
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

5
 
对C不太熟.
不过,用指针应该可以实现吧.
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
C51定义数据时
比如
unsigned char x _at_ 0xXXXX;   这样自然就把数据定到XXXX地址了,
一般情况下你用的编译器应该是keil吧?有这么个库函数,名字我记得了,一共才那么几个库很好找的,include那个库以后,就可以绝对地址引用了。
例如:xdata[0x1234] = 0xFF;
又或者:x = xdata[0x1234];
128K内存如果是Flash的话就有点麻烦,再说128K...你用的单片机应该有分页控制部分的吧?这样就要选定某一块擦除然后再逐字节写入,有些麻烦的,EEPROM就方便多了
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 3 楼 yuexianhanshu 的回复:
我用的51里有一个128K的闪存,可以放数据。但是我是用C 写的,根本看不到数据放置的具体物理地址。怎样把数据放到某个地址去呢?

..................
找PDF  然后照做就是  一般FLASH的操作为了抗干扰要遵循一个操作序列的
"C 写的,根本看不到数据放置的具体物理地址"这是什么意思?晕
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

8
 
datasheet上都会写明如何写flash。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

9
 
flash一般来说只有编程的时候才可以写,平时的程序不好操作的
你需要的是内置eeprom的51,如果你的51没这个功能就加一个eeprom在外面好了,很便宜的
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

10
 
不需要的,现在的单片机都是可以将内部flash作为可再用数据存储器的。
128K肯定是flash了,RAM要这么大的话,都赶上ARM9了。
这么大的flash肯定要分block了。

按照一般的block flash操作,需要将整个block读出到RAM中的连续buffer,然后将整个block擦除,在buffer中进行希望的修改,然后将整个buffer再烧写回flash的block就行。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

11
 
这128K的闪存有一部分是烧程序用的,可是不知道程序占用了多少,数据从什么地方开始放.还有一点就是这个数据可以通过程序要直接能读取和修改,而不是通过烧程序的方法对它进行就修改.

这个51是cc2430里面的51
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

12
 
查查你的51资料,是否有EEROM
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

13
 
通常在EEROM里。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

14
 
找了一下这个芯片的底层程序,发现一个关于地址方面的宏定义:
#define XREG(addr)  ((unsigned char volatile __xdata *) 0)  [addr]

这句宏定义什么意思呢?
是不是可以用它来对闪存的某个地址进行读写呢?
如果可以,怎样使用这个宏定义呢?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

15
 
就放在eeprom芯片上算了
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

16
 
STC89C58单片机,内部自带EEPROM!!!掉电后不会丢失,随时可以读取改写
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

17
 
请问这个数据放在哪里的呢?
怎样用C或者汇编来放这些数据呢?
还有就是怎样对它进行读写?

--
1、硬件上有没有ds时钟器件,如果有,里面可存数据,且不掉,读写参相应的DS手册
2、HM62256+电池
3、硬件上加一个电池之类,关机通过7705触发进入掉电模式,切换电池对CPU供电
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

18
 
呵呵!EEPROM,现在新出的51系列的一般都有,看一下自己器件文档,如果没有那就外扩一个24C01类似的片子!
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

19
 
mark
或许有用
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

20
 
mark
或许有用
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播报名| TI 面向楼宇和工厂自动化行业的毫米波雷达解决方案
【内容简介】TI 60GHz IWRL6432和 IWRL1432毫米波雷达传感器如何帮助解决楼宇和工厂自动化应用中的感应难题
【直播时间】5月28日(周三)上午10:00
【直播礼品】小米双肩包、contigo水杯、胶囊伞、安克充电器

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 11

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表