就數(shù)據(jù)存儲類型而言,8051系列有片上、輸出程序存儲裝置、片上、輸出數(shù)據(jù)存儲器,片上程序存儲器還分為直接地址區(qū)域和間接地址類型,分別為code 支持根據(jù)idata和51系列特色設(shè)定的pdata類型,通過使用不同的內(nèi)存,程序的執(zhí)行效率不同,與生成C51程序的ANSI-C略有不同,為SAMLL、COMPACT、lll 數(shù)組
51系列中的data、idata、xdata、pdata差異:
data:固定是指前面0x00-0x7f的128個RAM,能夠直接在acc上讀寫,速度最快,生成的代碼也最小。
idata:固定是指前一個0x00-0xff的256個RAM。 其中,前面的128和data的128完全相同,但訪問方法不同。 idata以類似于c的指針方式訪問。 程序集語句為mox ACC,@Rx . (不重要的補充:在c中,idata作為指針式訪問非常有效。 )
xdata:外部擴展RAM通常是指外部0x0000-0xffff空間,通過DPTR訪問。
當(dāng)?shù)刂吩诋?dāng)前A0-A7之上時,pdata:外部擴展RAM的最低256個字節(jié)被讀寫,并且由movx ACC和@Rx讀寫。 這很特殊,C51上好像有這個bug,所以建議不要太用。 但是,也有他的優(yōu)勢,具體的使用方法是中級的問題,所以在這里不提及。
單片機c語言unsigned char代碼表[ ]代碼是什么?
代碼的作用是,我定義的數(shù)據(jù)放入程序存儲器區(qū)域(ROM ),告訴單片機寫入后不能更改,實際上就像程序集中的尋址MOVX ()。 因為c語言無法詳細說明ROM仍然是RAM,所以可以在軟件中添加此語句以代替匯編指令。 還有對應(yīng)的data
程序可以簡單地分為代碼(程序)區(qū)域和數(shù)據(jù)(數(shù)據(jù))區(qū)域。 代碼區(qū)域在運行中無法更改。 在data區(qū)域中放置全局變量和臨時變量需要不斷變更。 cpu從代碼區(qū)域讀取指令,并對data區(qū)域的數(shù)據(jù)進行運算處理,因此代碼區(qū)域存儲在哪個介質(zhì)上并不重要。 就像以前的計算機程序。代碼區(qū)域可以在rom中、ram中、flash中,所以通常先將程序放入flash中,然后加載到ram中執(zhí)行; DATA區(qū)域沒有選擇。 已經(jīng)決定放入RAM。 放入rom也無法變更。 互聯(lián)網(wǎng)
bdata怎么用那個?
程序需要8個以上的bit變量時,想要一次給8個變量賦值時很不方便。 (請舉例說明其便利性,想更深入地了解時請在APP應(yīng)用中考慮。 )此外,不能定義bit數(shù)組。 有唯一的方法
char bdata模式;
sbit MODE_7=MODE^7;
sbit mode _6=模式^ 6;
sbit MODE_5=MODE^5;
sbit MODE_4=MODE^4;
sbit MODE_3=MODE^3;
sbit mode _2=模式^ 2;
sbit mode _1=模式^ 1;
sbit MODE_0=MODE^0;
定義了8個bit變量MODE_n
這是定義語句,Keilc的特殊數(shù)據(jù)類型。 如果是sbit,請記住
比特模式_0=模式^ 0;
賦值語句如果是這樣的c語言,就被視為異或運算
-----------------------------請參閱
空間名稱地址范圍的說明
DATAD:00H~7FH片內(nèi)RAM直接地址區(qū)域
BDATAD:20H~2FH片內(nèi)的RAM地址區(qū)域
IDATAI:00H~FFH片內(nèi)的RAM間接地址區(qū)域
XDATAX:0000H~FFFFH64KB普通片外RAM數(shù)據(jù)區(qū)
HDATAX:0000H~FFFFFFH16MB擴展片外RAM數(shù)據(jù)區(qū)
CODEC:0000H~FFFFH64K通常片內(nèi)外ROM代碼區(qū)域
hconst(ecode ) c :0000 h至fffff fh16 MB擴展片外ROM常量區(qū)域(對于Dallas390可用作代碼區(qū)域) ) ) ) ) ) ) ) )。
銀行0~銀行31b0:0000h~FFFFFH
:
:
B31:0000H~FFFFH組碼區(qū),最時尚人生拓展32X64KB ROM
-----------------------------請參閱
keil生成的文件:
. plg:編譯器的編譯結(jié)果
. hex和. bin:可執(zhí)行文件
. map和. lst:連接文件
. o :目標(biāo)文件
. crf、 lnp、 d、 axf :調(diào)試文件
. opt :保存項目配置信息
. bak :工程備份文件
M51文件,startup文件。 spa
注:本文從網(wǎng)絡(luò)指針收集