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

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

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

其中:

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

數據類型 可以用int、long、float等基本類型,當然也可以用數組、結構等復雜數據類型 ,本人認為一般用unsigned int 就可以解決很多問題了。

標識符 就是要定義的變量名,編程者自己決定

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

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

舉例:

xdata unsigned int addr1 _at_ 0x8300;

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

#include

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

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

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

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

    網站經營許可證:浙B2-20080178-1