找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

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

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

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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ì)研讀了下手冊(cè) 應(yīng)該能解決了 多謝多謝
回復(fù)

使用道具 舉報(bào)

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

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

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


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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