机电之家资源网
单片机首页|单片机基础|单片机应用|单片机开发|单片机文案|软件资料下载|音响制作|电路图下载 |嵌入式开发
培训信息
赞助商
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的液压测控器的设计
  • 下一篇: 没有了
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部
    热点文章
     
    推荐文章
     
    相关文章
    网友评论:(只显示最新5条。)
    关于我们 | 联系我们 | 广告合作 | 付款方式 | 使用帮助 | 机电之家 | 会员助手 | 免费链接

    点击这里给我发消息66821730(技术支持)点击这里给我发消息66821730(广告投放) 点击这里给我发消息41031197(编辑) 点击这里给我发消息58733127(审核)
    本站提供的机电设备,机电供求等信息由机电企业自行提供,该企业负责信息内容的真实性、准确性和合法性。
    机电之家对此不承担任何保证责任,有侵犯您利益的地方请联系机电之家,机电之家将及时作出处理。
    Copyright 2007 机电之家 Inc All Rights Reserved.机电之家-由机电一体化网更名-声明
    电话:0571-87774297 传真:0571-87774298
    杭州滨兴科技有限公司提供技术支持

    主办:杭州市高新区(滨江)机电一体化学会
    中国行业电子商务100强网站

    网站经营许可证:浙B2-20080178-1