我想用外部ram来保存断电前的51单片机中的设定数据,以便于在下次通电时不需要先前烦琐的设定过程,有那位朋友有过这方面的经验,希望能给予小弟一些帮助,谢谢!!
应该加后备电池。
您好,谢谢您的帮助,您的方法也是我们考虑的一种,可是这个方法现在还在实验中,我另外想准备第二种方法,就是增加外部ram的方法,我不知道有谁使用过,谁有这方面的经验,希望能给我提供一些无私的帮助,同时也希望大家帮我出出主意,群策群力,小弟先在这里谢谢大家了
是的,谢谢您的建议,可是我有点不是很清楚,希望您不吝赐教,对于外部的ram我是不是只要将我单片机需要处理的数据存储到外部ram的地址中去就行了,还有就是采用eeprom对于我设定的数据会有什么帮助呢,希望您能继续关注我的帖子,等待您的答复。
ram一般用来运行过程中有许多临时性的寄存。
如果仅仅只是用来存储数据,那就选择用iic的eprom,比如at24c02等等
楼主,如果采用2864a(存贮容量为8k*8位,是nmos电路,输入和输出与ttl电平兼容,采用单一的+5v供电,最大工作电流150ma,读出时间最大为250ns),则扩展基本象6264那样。读写数据时只需要用读写外部指令“movx”。如果写入的数据过多,则可查寻该芯片提供的rdy/busy引脚,该引脚为“0”则为写完成,如果该引脚为“1”则为写数据正进行中。
1脚:read/busy
2脚:a12
3脚:a7
4脚:a6
5脚:a5
6脚:a4
7脚:a3
8脚:a2
9脚:a1
10脚:a0
11脚:i/o0
12脚:i/o1
13脚:i/o2
14脚:gnd
15脚:i/o3
16脚:i/o4
17脚:i/o5
18脚:i/o6
19脚:i/o7
20脚:ce反
21脚:a10
22脚:oe反
23脚:nc
24脚:a9
25脚:a8
26脚:nc
27脚:we反
28脚:vcc
nc为空脚,不用联接
反:为低电平有效
采用该芯片只须像扩展一般的数据存储器那样扩展,但当一次写入很多的数据时,把数据分为16个字节来写入,写入一个16字节后,单片机不断检查1脚(read/busy脚),当该引脚变为“0”后,数据可写入,当该引脚为“1”时,必须等待。其余的写入就是“movx”指令。
其实,2864和2817这类的存储器也可用来作为程序存储器。
当数据存储量不大时也可采用m9346芯片,该芯片是64*16位(1024位),有dip8脚的封装和扁平的14脚封装两种。它采用串行接口,与并行的相比,体积小,价廉、电路连接简单,但数据传送速度慢,常用于智能仪器、仪表设备中。该芯片片有专门的读指令和写指令。
另外还有24c01、24c02、24c04、24c08和max2502等芯片。其中max250x芯片带有看门狗功能,其数据的传输有点像spi总线。
其中在系统设计中,只需要保存那些关键的数据就行了,往往这些数据都是标志性的数据。这样,数据量会大大减少。这样只需像max芯片和24cxxx就足够了。除非特殊情况,都不需要像2864和2817、2816这类的芯片。
如果需要,这些芯片我都用过,只是由于时间久了,那些程序找不到了,你确定用什么方案后,还有什么不清楚的地方再和我探讨。