一、存儲器結構
51單片機存儲器采用的是哈佛結構,即是程序存儲器空間和數(shù)據(jù)存儲器空間分開,程序存儲器和數(shù)據(jù)存儲器各自有自己的尋址方式、尋址空間和控制系統(tǒng)。
51存儲器可以分為
程序存儲器ROM:用于存放程序和表格之類的固定常識。C51編程中用code關鍵詞聲明。
內(nèi)部數(shù)據(jù)存儲器RAM:51子系列有128字節(jié)RAM,52子系列有256字節(jié)RAM
特殊功能寄存器SFR:80H-FFH字節(jié)地址的RAM
位地址空間:片內(nèi)RAM0x20-0x2f空間,本空間允許按位或者字節(jié)尋址。可用bdata進行聲明。
外部數(shù)據(jù)寄存器RAM:片外的RAM,最大尋址空間2^16即是64K大RAM。Pdata用于聲明片外第一頁RAM空間為0-255;xdata用于聲明外部RAM空間為0-65535.
內(nèi)部可直接尋址RAM結構圖
此外data用于片內(nèi)直接尋址RAM空間0-127;idata用于片內(nèi)間接尋址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;
此外,在編譯C51源程序時可選用三種存儲模式之一:即小模式(small)、緊湊模式(compact)、大模式(large)。三種模式的ROM空間相同,而三種模式的默認RAM空間:對small模式來說,就是片上RAM的所用空間data和idata;對compact模式來說,是片外pdata空間;large模式,為片外xdata空間;
以上就是對這幾天對8051的重新認識,當然不是很全面。在此之前,一直對其存儲結構不是太明了?,F(xiàn)在多少有一些許了解了,很是興奮。另外,現(xiàn)在市場上的51內(nèi)核芯片與之前傳統(tǒng)的還是有些許不同的,具體不同之處就需要認真讀讀供應商的文檔資料了。舉個例子來說,STC的89c51系列單片機,其ROM空間可以根據(jù)信號來判別,其RAM最小的型號89C51,就有256字節(jié)內(nèi)部RAM和擴展的256字節(jié)外部RAM,其內(nèi)部還有4K的EEPROM。