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单片机 存储
引用地址:
51单片机-存储
推荐阅读最新更新时间:2024-03-16 16:23
51单片机小白零基础教程——数码管的动态显示
数码管的动态显示 数码管的动态显示:数码管的动态显示又叫做数码管的动态扫描。动态显示的特点是:将所有位数码管段选线并联在一起,,由位选控制是哪一位数码管有效。所谓动态扫描显示即轮流向各位数码管送出字型码和相应的位选,利用发光管的余晖和人眼视觉暂留作用,使人感觉好像各位数码管同时都在显示,而实际上多位数码管是一位一位轮流显示的,只是轮流的速度比较快,人眼已经无法分辨出来。 关于数码管以及74HC573锁存器的分析放在这,有详细的分析过程,请自行查看https://blog.csdn.net/chrisbum/article/details/115583779?spm=1001.2014.3001.5502 设计要求:在实验板
[单片机]
STM32总线结构和存储器
也就说我们所操作的就是别名区的位
[单片机]
51单片机LCD1602两行移动显示
第一行:My name is Eagal 第二行:Music film Games #include reg52.h #define uchar unsigned char #define uint unsigned int sbit lcden=P3^4; sbit rs=P3^5; sbit rw=P3^6; sbit dula=P2^6; sbit wela=P2^7; uchar table1 = My name is Eagal ; uchar table2 = Music Flim Games ; void delay(uint x) { uint a,b; for(a=x;a 0;a--) f
[单片机]
51单片机视力保护-实物+原理图+程序
51单片机视力保护-实物+原理图+程序 单片机源程序如下: #include reg52.h //调用单片机头文件 #define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int //无符号整型 宏定义 变量范围0~65535 #include intrins.h sbit CS=P1^4; //CS定义,连接ADC0832CS脚 sbit SCL=P1^5; //SCL定义,连接ADC0832SCL脚 sbit DO=P1^6; //D
[单片机]
一种低电压开关电流甲乙类存储单元的设计
引言 开关电流存储单元是电流模式采样数据信号处理系统的基本单元电路,其性能的优劣直接影响采样系统的整体性能,因此,研究设计性能优良的开关电流存储单元是研究开关电流技术的重要环节。根据出现时间的先后,可将其分为第一代开关电流存储单元和第二代开关电流存储单元。第一代开关电流存储单元的优点是瞬态虚假信号很小,可以输出非单位增益电流信号,以及采用相对简单的单相时钟方案。它的不足是需要由两个晶体管组成,因此存在失配误差问题和较大的功耗。为克服失配误差等问题,人们进而研究出第二代开关电流存储单元。第二代开关电流存储单元采用单管存储方式来避免失配误差、降低功耗,这是它的优点。它的缺点是:电路工作时有较大幅度的瞬态虚假信号,虽然可以采用三相时钟
[应用]
基于89C51单片机的数字视频监控系统键盘及报警控制卡
键盘是数字视频监控录像系统中最重要的输入设备之一,是人机接口的重要组成部分。目前常用的工业控制计算机键盘除配置电子锁开关防止非法键盘输入外,与 PC键盘并没有多大区别。这种键盘不仅键数多,操作不灵活,而且通常只能作为输入设备,主机无法通过键盘与外设进行通信。本文在分析PC机键盘通信方式的基础上,设计出以89C51单片机为核心的数字视频监控系统键盘及报警控制卡,该卡具有键盘通信和输入输出报警两种功能,采用标准PCI卡的结构,但不占用主机硬件资源。其中,报警部分有4路输入和4路输出,可以与标准的报警传感器相连;键盘部分有16个键,通信方式与PC机完全兼容。采用这种控制卡,不仅可以节省视频监控系统中常用的专用报警解码器,而且能够实现
[安防电子]
51单片机实现常用的自定义串口通讯协议
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: USART ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200711 ---- @ModifiedTime: 20200711 ----
[单片机]
示波器的采样率和存储深度
在选择示波器时,工程师首先需要确定测量所需的带宽。然而当示波器的带宽确定后,影响实际测量的恰恰是相互作用、相互制约的采样率和存储深度。图1是数字示波器的工作原理简图。 图1数字存储示波器的原理组成框图 输入的电压信号首先进入示波器的前端放大器,放大器将信号放大或者衰减以调整信号的动态范围,其输出的信号由采样/保持电路进行采样,并由A/D转换器数字化。经过A/D转换后,信号变成数字形式存入存储器中,微处理器对存储器中的数字化信号波形进行相应的处理,并显示在显示屏上。这就是数字存储示波器简单的工作过程。 采样、采样速率 由于计算机只能处理离散的数字信
[模拟电子]