找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2149|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

STC8G1K08單片機(jī)如何實(shí)現(xiàn)用一個EEPROM扇區(qū)保存一個16位數(shù)據(jù)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:608427 發(fā)表于 2023-8-26 15:47 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
如題:現(xiàn)有一個16位統(tǒng)計數(shù)據(jù)需要利用單片機(jī)自帶的EEPROM存儲以便于重啟系統(tǒng)后能繼續(xù)計數(shù)。
單片機(jī)型號:STC8G1K08
EEPROM空間:4k
望大佬不吝賜教,感激不盡!

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:712097 發(fā)表于 2023-8-26 16:34 | 只看該作者
用兩個字節(jié)就可以了,一個字節(jié)存高8位,另一個字節(jié)存低8位,存儲和讀取時轉(zhuǎn)換一下就好了。
回復(fù)

使用道具 舉報

板凳
ID:608427 發(fā)表于 2023-8-27 02:07 | 只看該作者
chxelc 發(fā)表于 2023-8-26 16:34
用兩個字節(jié)就可以了,一個字節(jié)存高8位,另一個字節(jié)存低8位,存儲和讀取時轉(zhuǎn)換一下就好了。

這個方法我會 但是就是不知道怎么把兩個字節(jié)存儲到同一扇區(qū)
回復(fù)

使用道具 舉報

地板
ID:965189 發(fā)表于 2023-8-27 09:31 | 只看該作者
IapProgram(0x0000,data_L);
IapProgram(0x0001,data_H);
回復(fù)

使用道具 舉報

5#
ID:608427 發(fā)表于 2023-8-27 13:42 | 只看該作者
君工創(chuàng) 發(fā)表于 2023-8-27 09:31
IapProgram(0x0000,data_L);
IapProgram(0x0001,data_H);

額 昨天又仔細(xì)研讀了下手冊 應(yīng)該能解決了 多謝多謝
回復(fù)

使用道具 舉報

6#
ID:712097 發(fā)表于 2023-8-28 08:08 | 只看該作者
asdfasdfa 發(fā)表于 2023-8-27 02:07
這個方法我會 但是就是不知道怎么把兩個字節(jié)存儲到同一扇區(qū)

512字節(jié)為一個扇區(qū),0-511(0x00-0x1FF),512-1023(0x200-0x3FF)這樣。
8G1K08內(nèi)部有4KEEPROM,上面是1K的2個扇區(qū),后面還有6個扇區(qū),依次推導(dǎo)即可。
回復(fù)

使用道具 舉報

7#
ID:1034262 發(fā)表于 2023-8-28 10:38 | 只看該作者
分兩個字節(jié)寫入即可,32位的數(shù)(長整形或浮點(diǎn)數(shù))就要分4個字節(jié)寫入。
回復(fù)

使用道具 舉報

8#
ID:123289 發(fā)表于 2023-8-28 10:56 | 只看該作者
【有錢】(用N個扇區(qū)做這件事)的做法:
起始:清擦N扇區(qū)。
1、用3個字節(jié)存數(shù)據(jù),首字節(jié)是標(biāo)記S,S<>FFH就行,就自定。另兩個,按你的想法去做。
2、寫入時:從前向后查標(biāo)記S,從第一個為FF的單元格起(注意查找步進(jìn)=3個字節(jié)),寫入S標(biāo)記和數(shù)據(jù)。
  如果沒有查到FF(扇區(qū)已寫滿了),則清擦N扇區(qū),從0單元起,寫入S標(biāo)記和數(shù)據(jù)。
3、讀取時:從前向后查標(biāo)記,從第一個為FF的單元格起,向前退兩個單元,就是你需要讀取的數(shù)據(jù)。
  如果沒有查到FF(扇區(qū)恰好寫滿了),則是最末是數(shù)據(jù)(注意:步進(jìn)=3個字節(jié))。
為何要標(biāo)記S呢?因?yàn)椴脸笕荈FH,如果你的數(shù)據(jù)也是FFH,如何區(qū)分呢?
當(dāng)然,你有區(qū)分的方案,也可以按自己的想法來。例如,數(shù)據(jù)不會出現(xiàn)FFH,則標(biāo)記可以省略不要。

【沒有錢】的做法:
寫入:
1、將本扇區(qū)內(nèi)所有的數(shù)據(jù)復(fù)制到同樣大小的RAM中。
2、在RAM的對應(yīng)位置上寫入數(shù)據(jù)。
3、擦除本扇區(qū)
4、將RAM中數(shù)據(jù),復(fù)制到本扇區(qū)中。
在3、4、過程中不能掉電,否則數(shù)據(jù)被毀,無法恢復(fù)。當(dāng)然有辦法防止,這是另一個題目,不在此啰嗦。
讀�。郝�。


回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表