C51关键字及存储区域详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51所有关键字:
_at_ idata sfr

alien interrupt sfr16

bdata large small

bit pdata _task_

code _priority_ using

compact reentrant xdata

data sbit

一些关键字用法:
1 比特型变量: bit
C51提供了比特型变量,该种类型的变量可以用于的定义和声明,函数参数的传递和函数的返回值
绝对地址访问:
xdata char text[256] _at_ 0xE000; //将char型数组存放在xdata型存储区的0xE000地址处
xdata int temp _at_ 0x8000; //存放在xdata 的0x8000处的int型变量
idata struct link list _at_ 0x40; //list结构在idata类型数据区的0x40地址处






C51存储区域
程序存储区:
片内:4kB; 片外:64KB

内部数据存储区:
data: 直接寻址区,为内部RAM的低128字节00h-7Fh
idata: 间接寻址区,包括整个内部RAM区00h-FFh
bdata: 可位寻址区,20H-2FH

外部数据存储区:
xdata: 可指定多达64kb的外部直接寻址区,地址范围:0000H-FFFFH
pdata: 能访问1页(256Bytes)的外部RAM,主要用于紧凑模式(Compact Model)

特殊功能寄存器区:
sfr: 字节寻址,比如sfr P0=0x80;为P0口地址为80H,范围为:80H-FFH
sfr16: 字寻址,如 sfr16 T2=0xCC; 指定Timer2口地址T2L=0xCC,T2H=0xCD
sbit : 位寻址,如 sbit EA=0xAF;指定第0xAF位为EA,即中断允许

(数据)存储器模式
1 small模式
所有缺省变量参数均装入内部RAM(与使用显式的data关键字来定义是一样的结果),该模式的优点是访问速度快,缺点是空间有限,对堆栈的空间分配比较少
2 compact 模式
所有缺省变量均位于外部RAM区的一页(和显示的pdata来定义效果是相同的),最大变量数为256kB,优点是空间较small宽裕速度较small慢,较large快,中一种中间状态.使用本模式时,程序通过@R0和@R1指令来进行访问存储器的操作
3 large 模式
在large模式中,所有缺省变量可放在多达64kB的外部RAM区(和显式的使用xdata关键字来定义是相同的),均使用数据指针DPTR来寻址。此模式空间大,可存变量多,速度慢。

相关文档
最新文档