英特尔8051

编辑
本词条由“匿名用户” 建档。
MCS-51 是 Intel 于 1980 年推出的 8 位微控制器家族的名称。 在最好的情况下,微控制器将计算机系统的所有部分(处理器、程序存储器、数据存储器和输入/输出单元)组合在一个组件中。 MCS-51 系列继承了 MCS-48 系列。 最初,它只有三个成员,指定为 8051、8031 和 8751。在 8031 中,ROM 驻留在外部设备中,而在 8051 和 8751 中,它驻留在...

英特尔8051

编辑

MCS-51 是 Intel 于 1980 年推出的 8 位微控制器家族的名称。 在xxx的情况下,微控制器将计算机系统的所有部分(处理器、程序存储器、数据存储器和输入/输出单元)组合在一个组件中。 MCS-51 系列继承了 MCS-48 系列。 最初,它只有三个成员,指定为 8051、8031 和 8751。在 8031 中,ROM 驻留在外部设备中,而在 8051 和 8751 中,它驻留在设备本身 - 或者在掩码编程的 ROM 中( 8051) 或在一个 EPROM (8751) 中。 1983 年,推出了 8052、8032 和 8752 变体,每个变体都有双 ROM 作为 RAM 和一个额外的定时器。 该系列最初采用 NMOS 技术制造,几年后也采用当今常见的 CMOS 技术制造。

英特尔已将 MCS-51 CPU 内核授权给许多半导体制造商,从而为独立于制造商的行业标准奠定了基础。

英特尔提供 SDK-51 作为开发系统。

结构

编辑

MCS-51 家族产生了许多成员,包括 西门子80C517。 他们有以下共同点:

  • 具有统一指令集的 8 位处理器内核
  • 至少 128 字节的内部 RAM
  • 外部 RAM 和 ROM
  • 所谓的特殊功能寄存器 (SFR) 的统一寻址模型
  • 全双工串口
  • 5 个中断
  • 2 个中断优先级
  • 各种计时器

由于一到三个字节的命令长度不同,一条命令的执行时间也不同,很明显是CISC架构。

在Intel最初开发的结构中,一个指令周期对应一到三个机器周期(乘法和除法需要4个)。 一个机器周期对应 12 个时钟周期。 另一方面,今天常见的 MCS-51 变体通常每个机器周期只有 2 个时钟周期。 这意味着可以使用相同的时钟频率更快地处理命令。

该处理器的一个特殊功能是位处理器,它允许在位可寻址区域中快速轻松地进行位操作。

由于该处理器系列和相关的大型软件库的广泛使用,还有大量可综合的 MCS-51 实现。 这些可以作为所谓的 IP 内核免费提供,采用硬件描述语言(例如 VHDL)和源代码。 它们适用于 FPGA 和专用集成电路 (ASIC)。 典型的应用示例是 USB 控制器,例如用于打印机或接口适配器的控制器。 MCS-51 微控制器集成到其中以控制各种协议。

内存组织

编辑

堆栈始终可在内部 RAM 中自由定义。 字节顺序是little-endian,原来是Harvard架构,但是很多较新的MCS-51开发板都有修改后的Harvard架构。 在这种架构中,部分 XRAM(扩展数据 RAM)使用地址解码器镜像到程序存储器中。 这会启用通常从 ROM 运行的终端软件,例如 B. 将通过串行接口来的软件加载到程序存储器中,并在传输后执行。

数据存储

4 个寄存器组每个包含 8 个寄存器,可以作为寄存器或通过它们的地址寻址。 寄存器相对于“通用 RAM”的优点是指令更短。 寄存器 0 和 1 可用作内部和外部 RAM 中的 8 位数据指针。 巧妙地使用寄存器组可以缩短对中断的响应时间,因为数据不在堆栈必须移动。

由于上位RAM和特殊功能寄存器共享地址,所以用寻址类型来区分它们。 上位 RAM 只能使用寄存器 0 和寄存器 1 间接寻址,而特殊功能寄存器可以使用直接寻址。

编程时,通过命令将扩展RAM(扩展数据RAM或简称XRAM)与普通RAM区分开来。 MOV 寻址内部 RAM 而 MOVX 寻址 XRAM。 XRAM 只能间接寻址,但是是线性的。 在早期的变体中,XRAM 始终是外部的,在较新的变体中,它可以部分或完全集成。

英特尔8051

由于 16 位的地址总线宽度,最多可以有 65536 字节的 XRAM。

XRAM 的特殊功能寄存器或内存地址被控制器或控制器板的某些变体用于各种扩展。 举个例子:

  • 其他输入和输出
  • 16 位处理单元
  • USB 控制器

这对于可综合的 MCS-51 实现特别有用,因为 MCS-51 系列的指令集没有改变,这意味着与其开发工具的兼容性得以保留。

程序内存

由于地址总线为 16 位宽,外部程序存储器最多可包含 65536 字节。 可以使用内部或外部程序存储器。 不能同时操作。

使用 MOVC,程序可以从程序内存中读取,这在实现表时很有用。

端口

编辑

所有端口均可用作输入或输出,端口 1 至 3 具有内部上拉电阻。 端口 0 是一个真正的三态端口,与端口 2 一起用于外部存储器访问。 端口0用于时分复用,用于低地址字节的输出或数据的输入输出。 同时,高地址字节出现在端口 2。

RMW 指令从内存中读取值,而所有其他指令从引脚中获取值。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/372599/

(6)
词条目录
  1. 英特尔8051
  2. 结构
  3. 内存组织
  4. 数据存储
  5. 程序内存
  6. 端口

轻触这里

关闭目录

目录