天天看點

單片機large模式_對單片機存儲配置設定新的認識

51單片機存儲器采用的是哈佛結構,即是程式存儲器空間和資料存儲器空間分開,程式存儲器和資料存儲器各自有自己的尋址方式、尋址空間和控制系統。

51存儲器可以分為

程式存儲器ROM:用于存放程式和表格之類的固定常識。C51程式設計中用code關鍵詞聲明。

内部資料存儲器RAM:51子系列有128位元組RAM,52子系列有256位元組RAM

特殊功能寄存器SFR:80H-FFH位元組位址的RAM

單片機large模式_對單片機存儲配置設定新的認識

位位址空間:片内RAM0x20-0x2f空間,本空間允許按位或者位元組尋址。可用bdata進行聲明。

外部資料寄存器RAM:片外的RAM,最大尋址空間2^16即是64K大RAM。Pdata用于聲明片外第一頁RAM空間為0-255;xdata用于聲明外部RAM空間為0-65535.

内部可直接尋址RAM結構圖

單片機large模式_對單片機存儲配置設定新的認識

此外data用于片内直接尋址RAM空間0-127;idata用于片内間接尋址RAM空間0-255。

二、C51增加的修飾符說明

C51變量聲明方式:

存儲類說明符 類型說明符 修飾符 辨別符;

例如:static unsigned char idata temp;

存儲類說明符:包括auto、extern、static、register;

符号說明符:包括unsigned char、char、unsigned int、int、long、unsigned long、float、bit、sfr、sft16、sbit;

修飾符:包括data、idata、pdata、xdata、bdata、code;

單片機large模式_對單片機存儲配置設定新的認識

此外,在編譯C51源程式時可選用三種存儲模式之一:即小模式(small)、緊湊模式(compact)、大模式(large)。三種模式的ROM空間相同,而三種模式的預設RAM空間:對small模式來說,就是片上RAM的所用空間data和idata;對compact模式來說,是片外pdata空間;large模式,為片外xdata空間;

以上就是對這幾天對8051的重新認識,當然不是很全面。在此之前,一直對其存儲結構不是太明了。現在多少有一些許了解了,很是興奮。另外,現在市場上的51核心晶片與之前傳統的還是有些許不同的,具體不同之處就需要認真讀讀供應商的文檔資料了。舉個例子來說,STC的89c51系列單片機,其ROM空間可以根據信号來判别,其RAM最小的型号89C51,就有256位元組内部RAM和擴充的256位元組外部RAM,其内部還有4K的EEPROM。