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