51单片机关于24c08存储问题
24C08准备存储300组数据,由于设备可连接电脑,在电脑中可以任意删除数据。51单片机内如何实现电脑中删除数据后24C08中其他数据重新排序呢?假设:0x01地址对应1...
24C08准备存储300组数据,由于设备可连接电脑,在电脑中可以任意删除数据。
51单片机内如何实现电脑中删除数据后24C08中其他数据重新排序呢?
假设:0x01地址对应1,0x02地址对应2,0x03地址对应3,0x04地址对应4,
电脑中:删除0x02地址。后面的数据会自动上移。0x02地址对应的就是3
24C08中怎么让后面的数据前移呢?
(类似前移,让程序能正确读出对应地址的正确数据。)
有没有哪位仁兄做过类似的案例。说说你实现的思路,呵呵!先谢过了。
谢谢各位了,有大概的思路了。准备用单链表的方法去实现 展开
51单片机内如何实现电脑中删除数据后24C08中其他数据重新排序呢?
假设:0x01地址对应1,0x02地址对应2,0x03地址对应3,0x04地址对应4,
电脑中:删除0x02地址。后面的数据会自动上移。0x02地址对应的就是3
24C08中怎么让后面的数据前移呢?
(类似前移,让程序能正确读出对应地址的正确数据。)
有没有哪位仁兄做过类似的案例。说说你实现的思路,呵呵!先谢过了。
谢谢各位了,有大概的思路了。准备用单链表的方法去实现 展开
3个回答
展开全部
我的想法吧……51单片机要有足够的RAM,比如STC89的有1K的XRAM,首先把24C08中的300组数据全部读出放在XRAM中,然后单片机根据电脑发的命令对数据进行删除排序的处理。处理完之后电脑发命令,然后51把XRAM中的数据重新写回24C08.
追问
这么做不太可能,第一电脑不会传送那么多数据过来,删除以后只会传地址,删除信号。
第二 RAM虽然有512字节。但是一个24就用掉300+,现有功能就算能实现,万一需要扩展那就麻烦了。
追答
STC90C58AD单片机的RAM有4096+256字节,应该够用了吧?换个单片机又不是什么问题,也不用改动程序。
展开全部
对于24Cxx来说,直接将要删除的那个地址之后的数据逐个读取之后向前写入就可以了.
追问
存储300个数据要是删除的是第一个,那不是需要重新写入299个数据,而且在写入的过程中如果重新写入了200个数据,又吧第一到10的数据删除了。那~
而且24C08只是一个模块,这样做的话周期太长。
追答
如果是这样,你可以考虑用RAM先暂存,到要保存的时候,比如掉电或者收到保存指令的时候,才写入到24C里面.有点类似于ATF144X的做法.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
让后面的数据前移,就是单片机读出后面的数据,再重新写进去,不过有点慢哦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询