当前位置:首页 > 单片机 > 单片机
[导读]特点:哈佛结构,程序存储器与数据存储器分开,两者各有一个相互独立的64K(0x0000 ~ 0xFFFF)的寻址空间(准确地说,内部数据存储器与外部数据存储器不是一回事)。程序存储器:① 用于存放程序(可执行的二进制代码映像

特点:哈佛结构,程序存储器与数据存储器分开,两者各有一个相互独立的64K(0x0000 ~ 0xFFFF)的寻址空间(准确地说,内部数据存储器与外部数据存储器不是一回事)。

程序存储器:

① 用于存放程序(可执行的二进制代码映像文件,包括程序中的数据信息),还包括初始化代码等固件。

② 为只读存储器。注意,这里的“只读”,是指单片机(CPU)在正常工作时对其的访问方式是只读的;而现在大多数单片机的程序存储器(不管是内部还是外部)都采用了FLASH ROM,来取代以前所用的ROM、E2PROM等,可方便地进行在线编程(ISP)。

③ 标准8051的内部程序存储器大小为4KB(0x0000 ~ 0x0FFF);而具体的51核的兼容单片机的内部ROM大小需要参考其Datasheet,例如P89C51RA2xx的内部程序存储器是8K的Flash。

④ 内部、外部存储器统一编址,在软件设计上(指令系统中)没有差别;是否使用外部程序存储器是通过引脚EA在硬件电路上控制的:不使用外部程序存储器时,EA=0(接地);如果扩展了外部程序存储器,则使EA=1,当寻址到内部存储空间以外时,会自动转向外部程序存储器空间(与扩展外部程序存储器有关的还有PSEN和ALE的时序配合,以及P0和P2口用于地址线)。

[注] 一般直接选用内部程序存储器满足代码大小要求的单片机型号,避免扩展外部存储器,造成系统软硬件设计上的复杂和额外开销。

数据存储器:

为RAM。首先必须要强调的是,不管是物理上还是逻辑上,51单片机的内部、外部数据存储器都在不同的地址空间。两者不是一回事,用途也不一样,访问的指令也不同(内部RAM为MOV指令,外部为MOVX)。

1、内部数据存储器(内部RAM)

相当于内存,为程序(进程)中的变量和常量分配存储空间,掉电后内容消失。

标准8051的内部RAM为256B(0x00 ~ 0xFF):其中可供用户自由使用的是低128B(0x00 ~ 0x7F)区域,高128B中定义了26B的特殊功能寄存器(SFR),其余没有定义,因而没有意义。

P89C51RA2xx的片内RAM是512B(片内RAM不等于内部RAM,见释疑2)。

[说明] 关于内部RAM中的SFR,其中不但定义了一些控制字段,还包括累加器(ACC)、程序状态字(PSW)、数据指针(DPTR)、堆栈指针(SP)等,值得注意的是,片上I/O口P0 ~ P3的地址也在这里定义(即有3个特殊功能寄存器的地址实际上是P口的地址)——这是因为51单片机的I/O口与存储器是统一编址的*。

2、外部数据存储器(外部RAM)

上面谈到“I/O口与存储器统一编址”的问题,因此,这里称作外部RAM空间更为合适。在这个64KB地址空间中(0x0000 ~ 0xFFFF),除了可以扩展外部RAM外,还可以扩展外部I/O设备。

外部RAM主要用于存储程序运行时产生的重要数据(如数据采集结果、数据处理结果、系统日志等),这时一般需要外加电源进行掉电保护,以在系统掉电时保存其中的数据信息;也可用于数据的暂时存储,供CPU正常读写操作使用。因此外部RAM主要是使用其“可随机访问、读写方便且高速”的特性。

* 所谓I/O口与存储器统一编址,是指I/O口与主存在同一地址空间,将处理器的可寻址存储空间中专门划出一部分地址空间分配给I/O口使用。这与PC机的x86处理器不同,x86体系结构为I/O口专门定义了独立于存储空间之外的地址空间(事实上,除X86外,其他体系结构的处理器都对I/O口与存储器统一编址,可参考《Linux Device Drivers》)。

释疑1:51只有16根地址线,为什么能同时将程序存储器和外部数据存储器都扩展到64KB呢?即外部即有ROM,又有RAM,如何知道访问的是哪个?

在体系结构上,程序存储器和数据存储器是不同的地址空间,两者的访问是不会相互干扰的,这主要是通过在硬件和指令集设计上来实现的。

在硬件上,访问外部ROM是通过EA和PSEN引脚来控制的;访问外部RAM则是通过WR和RD信号来控制的;

在指令集上,访问外部ROM不需要使用显示指令,是通过PC(指令计数器)来控制取指地址的(跳转指令也可能引起PC跳转);而访问外部RAM则需要在程序设计上使用指令MOVX来执行。另外,访问内部RAM则使用了指令MOV,以区分外部RAM的访问。

释疑2:P89C51RA2xx的片内RAM是512B,是如何组织的?

P89C51RA2xx的片内RAM是512B:其中内部RAM为256B(使用MOV指令访问,定义与标准51相同);另外的256B为XRAM(片内的外部数据存储器),属于外部存储器的范畴,因此用途也同外部RAM,使用MOVX指令访问,当程序中的全局变量或单个局部变量需占较大存储空间时,可以定义为xdata型,保存到XRAM区。注意这个片内的XRAM掉电后其数据也会丢失;另外,如果要扩展外部RAM,则一般是设置XRAM为禁用态。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

无论您是在研究如何使用 10GigE 还是寻求所需考虑事项的建议,本文均提供有实践,帮助确保单相机 10GigE 视觉系统设置顺利并拥有良好性能。 我们列出了主机系统配置、布线和相机设置的实践。

关键字: 视觉系统 CPU 存储器

存储器是计算机系统中的关键组件,负责存储程序指令和数据,是实现计算和信息处理的基础。根据其工作原理、存储容量、访问速度、稳定性以及持久性等诸多特性,存储器可以被细分为多个类别。本篇文章将详细介绍存储器的主要分类,并探讨各...

关键字: 存储器 RAM

Apr. 03, 2024 ---- 4月3日7时58分在台湾花莲县海域(北纬23.81度,东经121.74度)发生7.3级地震,震源深度12千米。根据全球市场研究机构TrendForce集邦咨询于第一时间调查各厂受损及...

关键字: 存储器 晶圆代工

2024年3月26日,中国-- 服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)发布了一项基于 18 纳米全耗尽绝缘体上硅(FD-SO...

关键字: 处理器 微控制器 存储器

STM32与51单片机之间有什么差异呢?两者可以说是一场科技与性能的较量了。在科技飞速发展的今天,微控制器(MCU)已广泛应用于各类电子设备和系统中,发挥着举足轻重的作用。其中,STM32和51单片机作为两种常见的微控制...

关键字: STM32 51单片机 MCU

该产品线提供了并行SRAM的低成本替代方案,容量高达 4 Mb,具有143 MHz SPI/SQI™通信功能

关键字: SRAM 存储器 MCU

51单片机将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对51单片机的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 单片机 51单片机

【2024年1月15日,德国慕尼黑讯】卫星上的边缘计算和推理可实现近乎实时的数据分析和决策制定。随着联网设备的数量及其产生的数据量不断增长,这一点变得愈发重要。为满足太空应用中的这些高性能计算需求,英飞凌科技股份公司(F...

关键字: 存储器 嵌入式 边缘计算

可编程逻辑控制器(PLC,Programmable Logic Controller)是一种专为工业环境设计的数字电子系统。它使用可编程的存储器,内部存储程序,执行逻辑运算、顺序控制、定时、计数和算术操作等面向用户的指令...

关键字: 可编程逻辑控制器 数字电子系统 存储器

Jan. 11, 2024 ---- 根据TrendForce集邦咨询表示,全球受高通胀冲击,2023年笔电市场需求欲振乏力,全年出货量仅1.66亿台,年减10.8%,但衰退幅度较2022年收敛。

关键字: AI 笔电 存储器
关闭
关闭