用TX 1C開發板學習微控制器內部EEPROM的應用

2021-05-18 02:11:45 字數 3679 閱讀 9793

用tx-1c開發板學習微控制器內部eeprom的應用

stc89c51、52

內部都自帶有

2k位元組的

eeprom,54

、55和58

都自帶有

16k位元組的

eeprom

,stc

微控制器是利用

iap技術實現的

eeprom

,內部flash

擦寫次數可達

100,

000

次以上,先來介紹下

isp與

iap的區別和特點。

知識點:isp與iap介紹

isp iap

stc微控制器內部有幾個專門的特殊功能暫存器負責管理

isp/iap

功能的,見表1。

1 isp/iap

相關暫存器列表名稱

位址 功能描述 d7

d6d5

d4d3

d2d1

d0復位值

isp_data

e2hflash

資料暫存器

1111 1111

isp_addrh

e3hflash

高位元組位址暫存器

0000 0000

isp_addrl

e4hflash

低位元組位址暫存器

0000 0000

isp_cmd

e5hflash

命令模式暫存器 --

----

----

ms2ms1

ms0***x x000

isp_trig

e6hflash

命令觸發暫存器

***x ***x

isp_contr

e7hisp/iap

控制暫存器

ispen

swbs

swrst

----

wt2wt1

wt0000x x000

isp_data

:isp/iap

操作時的資料暫存器。

isp/iap

從flash

讀出的資料放在此處,向

flash

寫入的資料也需放在此處。

isp_addrh

:isp/iap

操作時的位址暫存器高八位。

isp_addrl

:isp/iap

操作時的位址暫存器低八位。

isp_cmd

:isp/iap

操作時的命令模式暫存器,須命令觸發暫存器觸發方可生效。命令模式如表

2所示。

2 isp_cmd

暫存器模式設定

d7d6

d5d4

d3d2

d1d0

模式選擇 保留

命令選擇

----

------0

00待機模式,無

isp操作 --

----

----00

1對使用者的應用程式

flash

區及資料

flash

區位元組讀 --

----

----01

0對使用者的應用程式

flash

區及資料

flash

區位元組程式設計 --

----

----01

1對使用者的應用程式

flash

區及資料

flash

區扇區擦除

程式在系統

isp程式區時可以對使用者應用程式區/資料

flash

區(eeprom)

進行位元組讀

/位元組程式設計

/扇區擦除;程式在使用者應用程式區時,僅可以對資料

flash

區(eeprom)

進行位元組讀

/位元組程式設計

/扇區擦除。

stc89c51rc/rd+

系列微控制器出廠時已經固化有

isp引導碼,並設定為上電復位進入

isp程式區,並且出廠時就已完全加密。

isp_trig

:isp/iap

操作時的命令觸發暫存器。

在ispen(isp_contr.7) =1

時,對isp_trig

先寫入46h

,再寫入

b9h,

isp/iap

命令才會生效。

stc89c52rc

,stc89le52rc

微控制器內部可用

data flash(eeprom)

的位址如表

3所示,其它型號微控制器請查閱相關資料。

3 stc89c52rc

stc89le52rc

微控制器內部eeprom

位址表

第一扇區

第二扇區

第三扇區

第四扇區

起始位址

結束位址

起始位址

結束位址

起始位址

結束位址

起始位址

結束位址

2000h

21ffh

2200h

23ffh

2400h

25ffh

2600h

27ffh

第五扇區

第六扇區

第七扇區

第八扇區

起始位址

結束位址

起始位址

結束位址

起始位址

結束位址

起始位址

結束位址

2800h

29ffh

2a00h

2bffh

2c00h

2dffh

2e00h

2fffh

每個扇區為

512位元組,建議大家在寫程式時,將同一次修改的資料放在同乙個扇區,方便修改,因為在執行擦除命令時,一次最少要擦除乙個扇區的資料,每次在更新資料前都必須要擦除原資料方可重新寫入新資料,不能直接在原來資料基礎上更新內容。

下面通過乙個例子來講解

stc系列微控制器

eeprom

的具體用法。

【例】:在

tx-1c

實驗板上實現如下描述,操作

stc微控制器自帶的

eeprom

,儲存一組按秒遞增的二位資料,並且將資料實時顯示在數碼管上,資料每變化一次就往

eeprom

中寫入一次,當關閉實驗板電源,再次開啟電源時,從

eeprom

中讀取先前儲存的資料,接著遞增顯示。

新建檔案

part3.4.4.c

微控制器LY5A L1B開發板筆記 1

按鍵以接0方式觸發 即按鍵另一腳接gnd 標頭檔案 include reg51.h 引腳定義 sbit key p3 2 定義按鍵 sbit key2 p3 2 sbit led1 p2 0 定義第乙個led燈 sbit led2 p2 1 延時子函式,引數範圍 0 65536,int為兩個位元組 ...

基於51微控制器開發板的應用(數碼管續1)

顯示0 99 用8位共陰數碼可以通過動態掃瞄顯示0 99,考慮十位和個位,需要用到陣列來存放。其中的重要 是display 函式,firstbit表示從第n個數開始顯示,num表示顯示的個數,所以若是改變陣列tempdata的陣列元素,則可以顯示更多位的數字,並且8位數碼管可以任意選擇數碼管。主函式...

藍橋杯微控制器 開發板蜂鳴器與繼電器 (3)

藍橋杯微控制器 開發板蜂鳴器與繼電器 3 蜂鳴器的正極接vcc 5v,負極接在達林頓管的n buzz上,達林頓管是乙個非閘電路 若in輸入1,則out輸出0 若in輸入0,則out輸出1 要使蜂鳴器響,則out7為低電平0。再來看解碼器,想要打通這個解碼器那麼y5c必須為高電平,y5c由38解碼器控...