使用C语言访问51单片机中存储器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用C语言访问51单片机中存储器
CBYTE,XBYTE,DBYTE,PBYTE的区别:
CBYTE,XBYTE,DBYTE,PBYTE,都在#include<absacc.h>函数中定义;可以直接使用;
CBYTE是用于访问代码存储器的,即ROM部分;如使用下面这条语句,就可以访问到代码存储器中的内容:rval=CBYTE[adress];其中代码存储器地址(adress)范围是0X0000--0xFFFF,大小为16K。
DBYTE是用于访问片内数据存储器的,即片内RAM部分,可以使用DBYTE读写片内RAM部分的数据,如使用下面这条语句,就可以访问到代码存储器中的内容:
写数据:DBYTE[adress]=0XFB;其中片内存储器地址(adress)范围是:0x00--0xFF,大小为256byte。
读数据:rval=DBYTE[adress];其中片内存储器地址(adress)范围是:0x00--0xFF,大小为256byte。
XBYTE是用于访问片外数据存储器的,即片外RAM部分,但是XBYTE只能读数据不能写数据到片外RAM,读数据操作:rval=XBYTE[adress];
PBYTE也用来访问扩展ram,但只能访问开始的256字节;
片外数据存储器的读可以使用XBYTE,片外数据存储器的写可以使用下面这条语句:char xdata x1_at_0x30;//x1为char型全局变量,地址位于xdata区地址0x30
x1=0x01;//给片外存储器地址赋值
上面4个是单字节访问,对应双字节访问用下面4个。
CWORD、XWORD、DWORD、PWORD
MOV,MOVC,MOVX汇编指令与对应的访问数据部分:
1、MOVC是与ROM之间的数据传送,而MOVX是与外部RAM数据传送;
2、MOV就是移动的意思,C就是Code,代码的意思,X就是eXternal,外部的意思MOVC就是读代码存储器,MOVX就是读写外部存储器,即外部RAM;
3、MOVC是读取ROM中的数据,只能读不能写(一般来说主要是用来读取常量或常量表)
MOVX是读写外部扩展的RAM和扩展的IO口,可以读也可以写。