KEILCx51是面向8051系列单片机及其硬件控制系统的开发工具。它定义的任何数据类型必须以一定的存储类型的方式定位在8051的存储区 中,否则便没有任何的实际意义。该编译器通过将变量、常量定义成不同的存储类型(data,bdata,idata,pdata,xdata,code) 的方法,将他们定位在不同的存储区中。
8051系列单片机将程序存储器(ROM,存储空间)和数据存储器(RAM,运算空间)分开,并有各自的寻址方式(针对汇编语言)。8051系列单片机在 物理上有四个存储空间:1,片内程序存储空间;2,片外程序存储空间;3,片内数据存储空间;4,片外数据存储空间。
先讲数据存储器。大家都知道8051单片机数据存储器可划分为两大区域:00H~7FH为片内低128字节RAM区;80H~FFH为特殊功能寄存器区(SFR)。地址为00H~7FH的低128字节片内RAM区又可划分为三个区域:
A,通用寄存器区:地址(00H~1FH)通用寄存器区由4个寄存器组成:0组(00H~07H),1组(08H~0FH),2组 (10H~17H),3组(18H~1FH),每个寄存器组含有8个通用寄存器:R0,R1,R2,R3,R4,R5,R6,R7,共有32个通用寄存 器。
B,可位寻址区:8051系列单片机RAM的可位寻址区时字节地址位20H~2FH的16字节单元,共128位。
C,用户RAM区:8051系列单片机片内RAM的用户RAM区地址位30H~7FH。堆栈也可以设置在这里。
再讲存储类型,当我们那使用存