一、概念理清
使用環境: keil2,生成的代碼大小如下,data保存於內部RAM中,xdata保存於外部擴展SRAM中,code保存於FLASH中。
51單片機涉及的存儲介質:
RAM: 內部RAM,每種51單片機都應該有,共256字節。大小固定
SRAM:內存,掉電消失,外部擴展RAM,比內部RAM稍慢,作用一樣,用於定義變量。大小要查單片機具體手冊。最大0xFFFF
FLASH:(保存程序代碼,只能按扇區更改)。大小要查單片機具體手冊。
EEPROM:(保存掉電保存的數據,flash中也可以保存掉電保存的數據,但EEPROM可以按字節尋址,比FLASH稍微靈活一點)。大小要查單片機具體手冊。.
二、C51存儲修飾關鍵字:data、 idata 、pdata 、xdata、 code
char i : 使用的RAM前128字節。無修飾,等同與data char i,對應keil2編譯后的data
idata char i : 使用的RAM前256字節。即包含了data,對應keil2編譯后的data
pdata char i :使用SRAM的前256字節,對應keil2編譯后的 xdata
xdata char i:使用SRAM的所有字節。即包含了pdata,對應keil2編譯后的 xdata
code char i: 使用FLASH中的空間,不可更改,相當於存儲常量。,對應keil2編譯后的flash
三、EEPROM不是用於變量定義,用來保存掉電數據。作用和FLASH一樣。