使用C语言访问51单片机中存储器的核心代码

使用C语言访问51单片机中存储器的核心代码

目录

使用C语言访问51单片机中存储器

1.头文件

2.code data pdata xdata

4.CWORD、XWORD、DWORD和PWORD

5.参考

使用C语言访问51单片机中存储器 1.头文件

在Keil C51工程中 #include <absacc.h> ,可以直接使用CBYTE, XBYTE, DBYTE, PBYTE

absacc.h 的部分内容如下:

#ifndef __ABSACC_H__ #define __ABSACC_H__ #define CBYTE ((unsigned char volatile code *) 0) #define DBYTE ((unsigned char volatile data *) 0) #if !defined (__CX2__) #define PBYTE ((unsigned char volatile pdata *) 0) #endif #define XBYTE ((unsigned char volatile xdata *) 0) #define CWORD ((unsigned int volatile code *) 0) #define DWORD ((unsigned int volatile data *) 0) #if !defined (__CX2__) #define PWORD ((unsigned int volatile pdata *) 0) #endif #define XWORD ((unsigned int volatile xdata *) 0)

code data pdata xdata 均为存储器类型,下节将详叙,此处用T替代:

unsigned char volatile T * 为指向存储器T中无符号整型数的指针类型
((unsigned char volatile T * ) 0) 对0做强制类型转换

2.code data pdata xdata

code data pdata xdata均为存储器类型

code:用于存储常数和函数,使用16位地址访问,可位于片内或片外

ROMdata:用于存储变量,使用8位地址,位于片内RAMp

data:用于存储变量,使用8位地址,位于片外RAMx

data:用于存储变量,使用16位地址,位于片外RAM

3.CBYTE、DBYTE、PBYTE和XBYTE的区别

注意:以下存储地址范围均指理论上可访问的最大范围,具体操作时需根据存储器大小调整
从存储器类型的区别中可以得出本节四者的区别:

CBYTE

CBYTE 是用于访问代码存储器的,即ROM部分。

rval = CBYTE[adress]; //访问到代码存储器中的内容

其中代码存储器地址(adress)范围是 0X0000--0xFFFF ,大小为16K。

DBYTE

DBYTE 是用于访问片内数据存储器的,即片内RAM部分,

DBYTE[adress] = 0XFB; //写数据 rval = DBYTE[adress]; //读数据

其中片内存储器地址(adress)范围是 0x00--0xFF ,大小为256byte。

XBYTE

XBYTE 是用于访问片外数据存储器的,即片外RAM部分,但是XBYTE只能读数据不能写数据到片外RAM。

rval =XBYTE[adress]; //读数据

片外数据存储器的写可以使用下面这条语句:

char xdata x1 _at_ 0x30 ; //x1为char型全局变量,地址位于xdata区地址0x30 x1 = 0x01; //给片外存储器地址赋值

地址范围为 0x0000--0xFFFF,大小为16K。

PBYTE

PBYTE也用来访问扩展ram,但只能访问开始的256字节。

4.CWORD、XWORD、DWORD和PWORD

上节所述四者为单字节访问,对应双字节访问使用CWORD、DWORD、XWORD和PWORD。

5.参考

https://wenku.baidu.com/view/fe5a4b09f61fb7360a4c659c.html

到此这篇关于使用C语言访问51单片机中存储器的文章就介绍到这了,更多相关C语言51单片机存储器内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    不要混淆核心i7/i5/i3的名字细节

    不要混淆核心i7/i5/i3的名字细节,,Core i7 / i5 / i3处理器lga1156接口英特尔新的命名混乱,很多读者会感到困惑。甚至很多高级硬件玩家无法

    PC计算机:AMDCPU核心细节

    PC计算机:AMDCPU核心细节,,核心提示:AthlonXP的核心型athlonxp有4种不同的核心类型,但都有个共同点:他们都使用socketa接口,他们都使用PR标称值

    128mb集双核心3000元办公配置

    128mb集双核心3000元办公配置,,支持双内存规格,集成的Radeon hd4200核心七c.a785g双显示彩虹V14主板现在的价格仅为499元,是办公用户攒机的

    5717元高端核心i54570全能电脑配置

    5717元高端核心i54570全能电脑配置,, 现在已经有haswell架构处理器,第一批haswell处理器都是中高端配置,适合一些高端电脑用户选择。市场

    探探语言设置|探探怎么设置语言

    探探语言设置|探探怎么设置语言,,1. 探探怎么设置语言打开探探软件,然后就有消息提示的红点,点开就行了!其实这些软件都是挺简单的操作的,都是

    git设置编码|git语言设置

    git设置编码|git语言设置,,git设置编码点击cap4j搜索从git直接链接上拉代码。git语言设置Git是一个开源的分布式版本控制系统,可以有效、高