×
单片机 > 单片机程序设计 > 详情

51单片机-存储

发布时间:2020-08-26 发布时间:
|

8051是传统的8位单片机,一般为256B 数据存储器RAM,4k程序存储器ROM (8052有384bytes的RAM,8K的ROM)


在51系列中可定义的数据类型有data,idata,xdata,pdata,bdata:

 

data:指芯片内核中地址0x00-0x7F的128个字节RAM区域和4个分组的R1-R7寄存器区域,所占用的区域,汇编ACC访问,可以直接读写,速度最快,生成代码小。


idata:固定指前面0x00-0xFF的256个RAM,其中前128字节和data的128字节完全相同,但访问的方式不同。idata是用类似指针方式访问的。


xdata:外部扩展存储,一般指外部0x0000-0xFFFF地址空间,用DPTR访问。一般指单片机的Flash,虽然Flash的结构封装在单片机中,但相对单片机RAM仍属于外部存取器。


pdata:外部扩展RAM的低256个字节,地址A0-A7上的读写。


bdata:


若程序需要8个或者更多的bit变量,如果你想一次性给8个变量赋值的话就不方便,又不可以定义bit数组,可使用bdata定义变量


char bdata MODE;


sbit MODE_7 = MODE^7;


sbit MODE_6 = MODE^6;


sbit MODE_5 = MODE^5;


sbit MODE_4 = MODE^4;


sbit MODE_3 = MODE^3;


sbit MODE_2 = MODE^2;


sbit MODE_1 = MODE^1;


sbit MODE_0 = MODE^0;


8个bit变量分别为MODE_n,注意一定是sbit而不是 bit MODE_0 = MODE^0;赋值语句要是这么写C语言就视为异或运算。


数据使用不同的存储器,程序执行效率不同,编写C51程序指定变量的存储类型有利于提高程序执行效率。与ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各种不同的模式对应不同的实际硬件系统,也将有不同的编译结果。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机的数码管动态扫描方法