微控制器程式裡如何初設EEPROM

時間 2022-06-24 05:25:03

1樓:

第一次執行用?

unsigned char i;

main()

第一次程式設計用?分2個程式

1.初上電寫eep

2.再上電判斷eep,擦除,寫入任意值

2樓:匿名使用者

先寫乙個燒寫eeprom的程式吧,反正不是很難

或者就在你的程式裡面下點功夫吧,舉個例子eeprom儲存的是一些校準資料,比如adc採集的時候的電源電壓,你在程式裡面先判斷eeprom裡面有沒有資料,沒有的話就進入校準程式,這時你用乙個精密的電源比如基準源作為模擬電源,這就保證了校準值的準確性,這個校準程式只會在你程式燒寫完成之後執行一次,以後就不會再執行了。你可以參考一下這種方法

3樓:匿名使用者

可以在eeprom中設兩組資料,一組是你需要的資料,並且再增加乙個校驗,例如異或aa,而另一組是改寫標誌,也要帶校驗,在改寫時,要同時改寫這兩組。

上電後,先看資料那一組,如果校驗正確,則採用其中的資料。

如果資料組檢驗錯,則看改寫標誌組,如果其校驗正確,則認為是寫資料時出錯,你根據自己的需求另行處理;如果改寫標誌組也校驗錯,則認為是首次上電,你可以將初值寫入,並將改寫標誌組寫好。

關鍵是寫完一組要回讀,保證至少一組是正確的。

大體思路是這樣,請參考

pic微控制器怎麼在mplab設定初始eeprom

4樓:匿名使用者

//初始化eeprom的資料,它們是8個一組合(如果不夠8個將它補全8個位元組,),

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0xf2,0x7f,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0xf2,0x7f,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x4f,0xfe,0x03,0x00);

__eeprom_data(0xdd,0xdd,0x13,0x00,0xe0,0x4c,0x00,0x00);

__eeprom_data(0x68,0x5b,0x00,0x00,0x18,0x60,0x00,0x00);

__eeprom_data(0x55,0x5a,0xbe,0xff,0x65,0xc8,0x21,0x00);

__eeprom_data(0x03,0x50,0xff,0xff,0xff,0xff,0xff,0xff);

__eeprom_data(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff);

__eeprom_data(0xff,0xff,0xff,0xff,0x01,0xff,0x00,0xff);

__eeprom_data(0x02,0xff,0xc5,0xff,0x06,0xff,0x01,0xff);

__eeprom_data(0x0f,0xff,0x14,0xff,0xff,0xff,0xff,0xff);

5樓:愛微控制器生活

你是不是想燒寫eeprom的初始值上去?在燒寫程式時先選擇view-eeporm.就可以修改燒進去的值了。

6樓:匿名使用者

用de偽指令

舉例:org 0x2100 ;這是pic16f628a的eeprom虛擬位址,當然

;不同的晶元是不同的

de 0x00, 0x01, 0x02, 0x03 ;初始化eeprom資料

picc編譯器

eeprom 資料

有些pic微控制器支援用外部程式設計器對內部的eeprom進行程式設計。

__eeprom_data()可以將用於初始化的資料放入hex檔案中,如:

__eeprom_data(0, 1, 2, 3, 4, 5, 6, 7)

可將0-7八個數放入hex檔案中,在用外部的程式設計器進行程式設計時將 這八個數寫入pic微控制器中。

__eeprom_data不是用於執行時寫入eeprom資料的,在執行時請用 eeprom_read(), eeprom_write()。

微控制器eeprom使用時第一次執行程式時從eeprom讀出的資料怎麼設定我想要的資料

7樓:匿名使用者

1. 讀-擦-寫,是典型的flash讀寫時序,而e2prom是不用擦除,直接寫入的

2. 我見到的,出廠時均初始化為0xff,無論flash還是e2prom。不保證有沒有例外。

關於微控制器控制eeprom的乙個問題。

8樓:

這個好辦,你在寫入的資料中插入一些標識和校驗碼就可以了。以後開機根據標識和校驗碼檢查eeprom裡面這些資料的有效性。

9樓:論宇之新宇宙觀

a=read_eeprom(0x00);

if(a>1)//預設情況下(晶元擦出後),eeprom內容均為0xff

10樓:匿名使用者

你可以在eeprom設乙個標記,開機首先讀取這個標記,如果不符合你要求的值,就寫初始化引數,然後對標記位址寫入你要求的標記值。如果符合就讀已經儲存引數。這樣就只在第一次執行程式時才載入初始化引數。

然後你修改的引數直接存到eeprom.

還有乙個方法就是預先寫好eeprom,以後就只是儲存引數就行了。每次開機都執行你的設定值,不是一樣效果嗎。為什麼非要搞個第一次開機呢?

pic微控制器eeprom怎麼編寫程式?

pic微控制器eeprom怎麼編寫程式啊??

11樓:匿名使用者

底層的話要根據使用的eeprom介面時序來編寫,應用層就大致都一樣的讀寫功能函式了。根據需要編寫或者參考標準的功能模組化編寫,通用的。

12樓:匿名使用者

eeprom_write(unsigned char addr, unsigned char value);

eeprom_read(unsigned char addr);

在標頭檔案pic.h裡,直接呼叫就行了,不用編寫你要寫的話可以參考此標頭檔案裡的寫法

微控制器c語言程式設計 eeprom

13樓:匿名使用者

用io,當某個埠為底或高時變數初始值為0,否則從eeprom讀入.

14樓:

eeprom中存放一位元組的可用標誌。

eeprom未擦除過的單元都是0xff。程式上電時讀取該位址為0xff即代表是首次上電,於是將該標誌改寫為特殊字元(如0xaa或0x55),並將全域性變數初始化為0;上電時讀取該位址為特殊字元,則從eeprom中讀取該全域性變數。

stc微控制器,如何往eeprom裡寫程式,請高手進

15樓:匿名使用者

eeprom 不是程式區,不能執行程式。

有部分型號, 程式區 和 eeprom區 共用的就可以在執行時修改程式。

微控制器開發板的eeprom的程式改怎麼寫呢?

16樓:

程式執行時先判斷eeprom裡面有沒有儲存了密碼,就可以省掉重新寫入的步驟了,另外程式掉電是不會影響eeprom的

微控制器程式錯誤,51微控制器c語言程式錯誤

後面兩個錯誤是沒有宣告函式,最簡單的方法就是把main函式調到程式的最後,你看看還有沒有錯誤,我們 hhh.c 113 error c211 call not to a function這個呼叫函式名不存在 hhh.c 114 error c211 call not to a function這個呼...

微控制器引腳如何實現高阻輸入,微控制器IO口設定為高阻輸入時能讀埠值嗎

amd百夫長 一 通過加驅動器實現了。二 如果是傳統的51微控制器 例如at89s52 p0口可以實現高阻。p0口內部和p1 p3口的內部結構不同,它的內部上拉fet只有在它作為外部儲存器匯流排的時候才能開啟,如果做普通io口,那麼讓p0口輸出1,外部又沒有接上拉電阻的話,那麼p0口就是高阻 懸空 ...

如何用51微控制器控制舵機的??微控制器程式是怎麼寫的?希望你也能給我發編寫程式和電路圖

微控制器系統實現對舵機輸出轉角的控制,必須首先完成兩項任務 首先,產生基本的pwm週期訊號,即產生20ms的週期訊號 其次,調整脈寬,即微控制器調節pwm訊號的占空比。微控制器能使pwm訊號的脈衝寬度實現微秒級的變化,從而提高舵機的轉角精度。微控制器完成控制演算法,再將pwm訊號輸出到舵機。發乙個自...