機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
C51編程中對單片機絕對地址訪問的兩種方法
C51編程中對單片機絕對地址訪問的兩種方法
 更新時間:2009-12-9 11:25:51  點擊數(shù):0
【字體: 字體顏色

在進(jìn)行8051單片機應(yīng)用系統(tǒng)程序設(shè)計時,編程都往往少不了要直接操作系統(tǒng)的各個存儲器地址空間。C51程序經(jīng)過編譯之后產(chǎn)生的目標(biāo)代碼具有浮動地址,其絕對地址必須經(jīng)過BL51連接定位后才能確定。為了能夠在C51程序中直接對任意指定的存儲器地址進(jìn)行操作,可以采用擴(kuò)展關(guān)鍵字“at”、指針、預(yù)定義以及連接定位控制命令。

在這些方法中,本人認(rèn)為最簡單而有效的方法是用“ _at_ ”關(guān)鍵字來對指定變量存儲器空間絕對地址來指定。一般格式如下:
[存儲器類型] 數(shù)據(jù)類型 標(biāo)識符 _at_ 地址常數(shù)

其中:

存儲器類型 為idata、data、xdata等C51能夠識別的所有類型,最好不要省略。

數(shù)據(jù)類型 可以用int、long、float等基本類型,當(dāng)然也可以用數(shù)組、結(jié)構(gòu)等復(fù)雜數(shù)據(jù)類型 ,本人認(rèn)為一般用unsigned int 就可以解決很多問題了。

標(biāo)識符 就是要定義的變量名,編程者自己決定

地址常數(shù) 就是要直接操作的存儲器的絕對地址,必須位于有效的存儲器空間之內(nèi)。

注意:不能對變量進(jìn)行初始化,只能是全局變量,一般不要輕易用,免得出錯。

舉例:

xdata unsigned int addr1 _at_ 0x8300;

另有一種方法就是要用到一個頭文件absacc.h,也不是很難,舉個例說明一下就會明白:

#include

XBYTE[0x8300]=0; /*向外部存儲器(XDATA)地址0x8300寫0

  • 上一篇: 基于MSP430的液壓測控器的設(shè)計
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1