keil C51存儲區域類型是什么?
keil C51存儲區域分為程序存儲區和數據存儲區2大類型。
一.程序存儲區(Pragram Area):
欲將聲明的數據存放在程序存儲區域,可以使用關鍵字“code”說明。
例 unsigned char code i=10;則表示 i為無符號字符型數據存放區域為程序存儲區。
二.數據存儲區(Data Memory):
數據存儲區域分為內部數據存儲區、外部數據存儲區域和特殊功能寄存器尋址區。
1.內部數據存儲區域(Internal Data Memory):可以使關鍵字"data、iadta、bdata"做相應說明。
data:直接尋址區,聲明的數據存儲范圍為內部RAM低128字節 0X00~0X7F。
例 unsigned char data i=10;則表示 i為無符號字符型數據存放區域為數據存儲區域(RAM)的低128字節范圍內。
idata:間接尋址區,聲明的數據存儲范圍為整個內部RAM區 0X00~0XFF。
例 unsigned char idata i=10;則表示 i為無符號字符型數據存放區域為數據存儲區域(RAM)內。
bdata:可位尋址區,尋址范圍為0X20~0X2F。
2.外部數據存儲區(External Data Memory):可以使用關鍵字"pdata、xdata"進行說明。
pdata:主要用于緊湊模式,能訪問1頁(256字節)的外部RAM,即在訪問使用,pdata定義的數據時,不會影響P2口的輸出電平(在訪問某些自身內部擴展的外部RAM時本身就不會影響I/O端口)。
例 unsigned char pdata i;則表示 i為無符號字符型數據存放區域為外部數據存儲區域(RAM)內(只能在一頁范圍內)具體操作哪一頁,可由其他i/o口設定。
xdata:可訪問64k的外部數據存儲區,地址范圍0X0000~0XFFFF,同pdata一樣在訪問芯片自身內部擴展的RAM時也不會影響I/O端口。
例 unsigned char pdata i;則表示 i為無符號字符型數據存放區域為外部數據存儲區(RAM)。
3.特殊功能寄存器尋址區域(Speciac Function Register Memory)-SFR:8051提供128字節的SFR尋址區,該區域可以字節尋址,字尋址,能被8整除的地址單元還可以位尋址。該區域用于控制定時器、計數器、串口等外圍接口。使用時可用關鍵字“sfr、sfr16、sbit”做相應的聲明。
例 字節尋址 sfr P0=0x80;為P0 口地址為80H,“=”后0X00~0XFF 之間的常數。
字尋址 sfr16 T2=0XCC;指定Timer2 口地址T2L=0XCC T2H=0XCD。
位尋址 sbit EA=0xAF;指定第0xAF 位為EA,即中斷允許

編輯:admin 最后修改時間:2018-05-21


