0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

8051单片机的寄存器是什么样的

科技观察员 来源:英锐恩 作者:英锐恩 2023-07-07 12:24 次阅读

CPU中使用寄存器来临时存储信息,这些信息可以是要处理的数据,也可以是指向要获取的数据的地址。在8051单片机中,有一种数据类型是8位,从MSB(最高有效位)D7到LSB(最低有效位)D0。对于8 位数据类型,任何大于 8 位的数据类型都必须在处理之前分成 8 位块。

8051中使用最广泛的寄存器是 A(累加器)、B、R0-R7、DPTR(数据指针)和 PC(程序计数器)。所有这些寄存器都是 8 位的,除了 DPTR和 PC。

一、8051中的存储寄存器

我们将在这里讨论以下类型的存储寄存器:

1.累加器;

2.寄存器;

3.B寄存器;

4.数据指针 (DPTR);

5.程序计数器 (PC);

6.堆栈指针 (SP)。

(1)累加器

累加器寄存器 A

用于所有算术和逻辑运算。如果累加器不存在,则每次计算(加法、乘法、移位等)的每个结果都将存储到主存储器中。访问主存储器比访问诸如累加器之类的寄存器慢,因为用于大主存储器的技术比用于寄存器的技术慢(但更便宜)。

(2)“R”寄存器

“R”寄存器是一组八个寄存器,即 R0、R1 到 R7。这些寄存器在许多操作中用作辅助或临时存储寄存器。考虑 10 和 20 之和的示例。将变量 10

存储在累加器中,并将另一个变量 20 存储在寄存器 R4 中。要处理加法操作,请执行以下命令:

ADD A,R4

执行此指令后,累加器将包含值

30。因此“R”寄存器是非常重要的辅助或帮助寄存器。如果不是这些“R”寄存器,单独的累加器不会很有用。“R”寄存器用于临时存储值。

让我们再举一个例子。我们将 R1 和 R2 的值相加,然后从结果中减去 R3 和 R4 的值。

MOV A,R3 ;Move the value of R3 into the accumulator

ADD A,R4 ;Add the value of R4

MOV R5,A ;Store the resulting value temporarily in R5

MOV A,R1 ;Move the value of R1 into the accumulator

ADD A,R2 ;Add the value of R2

SUBB A,R5 ;Subtract the value of R5 (which now contains R3 + R4)

如您所见,我们使用 R5 来临时保存 R3 和 R4 的总和。当然,这不是计算 (R1 + R2) – (R3 + R4)

的最有效方法,但它确实说明了使用“R”寄存器作为临时存储值的方法。

8bit_registers.jpg

(3)“B”寄存器

“B”寄存器与累加器非常相似,因为它可以保存一个 8 位(1 字节)的值。“B”寄存器仅由两条 8051指令使用:MUL AB和DIV

AB。为了快速轻松地将 A 乘以或除以另一个数字,您可以将另一个数字存储在“B”中并使用这两个指令。除了使用 MUL 和 DIV

指令外,“B”寄存器通常用作另一个临时存储寄存器,很像第九个 R 寄存器。

(4)数据指针

数据指针 (DPTR) 是 8051唯一的用户可访问的 16 位(2 字节)寄存器。累加器、R0–R7 寄存器和 B 寄存器是 1

字节值寄存器。DPTR 用于指向数据。8051使用它来使用 DPTR 指示的地址访问外部存储器。DPTR 是唯一可用的 16 位寄存器,通常用于存储 2

字节值。

(5)程序计数器

程序计数器 (PC) 是一个 2 字节的地址,它告诉 8051可以在内存中找到下一条要执行的指令。PC 在 8051初始化时从 0000h

开始,每次执行指令后递增。PC 并不总是加 1。有些指令可能需要 2 或 3 个字节;在这种情况下,PC 将增加 2 或 3。

分支、跳转和中断操作将下一个顺序位置以外的地址加载到程序计数器中。激活上电复位将导致寄存器中的所有值丢失。这意味着复位时 PC 的值为 0,迫使

CPU 从 ROM 位置 0000 获取第一个操作码。这意味着我们必须将上行代码的第一个字节放在 ROM 位置 0000 中,因为这是 CPU

希望找到的位置第一条指令。

(6)堆栈指针(SP)

堆栈指针与除 DPTR 和 PC 之外的所有寄存器一样,可以保存 8 位(1

字节)值。堆栈指针告诉从堆栈中删除下一个值的位置。当一个值被压入堆栈时,SP 的值会增加,然后该值被存储在结果内存位置。当一个值从堆栈中弹出时,该值从SP

指示的内存位置返回,然后SP 的值递减。

这个操作顺序很重要。8051初始化时,SP 会被初始化为 07h。如果同时将一个值压入堆栈,则该值将存储在内部 RAM 地址 08h 中,因为

8051会先将 SP 的值(从 07h 到 08h)递增,然后将压入的值存储在该内存中地址 (08h)。8051直接通过 6 条指令修改

SP:PUSH、POP、ACALL、LCALL、RET 和 RETI。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44516

    浏览量

    632992
  • 寄存器
    +关注

    关注

    31

    文章

    5317

    浏览量

    120006
  • 8051单片机
    +关注

    关注

    5

    文章

    153

    浏览量

    25479
收藏 人收藏

    评论

    相关推荐

    51单片机寄存器如何赋值

    单片机在电学里面,属于很简单的一种器件,外表看,就是一个芯片,长着很多的脚。内部,就是一堆寄存器。不同的单片机,外部表现就是形状和引脚数量和引脚名称可能不一,内部,就是
    的头像 发表于 12-31 08:32 2.4w次阅读
    51<b class='flag-5'>单片机</b>的<b class='flag-5'>寄存器</b>如何赋值

    单片机教程七:单片机的特殊功能寄存器

    单片机教程七:单片机的特殊功能寄存器 通过前面的学习,我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机
    发表于 05-15 23:01 2250次阅读
    <b class='flag-5'>单片机</b>教程七:<b class='flag-5'>单片机</b>的特殊功能<b class='flag-5'>寄存器</b>

    51单片机汇编语言教程_单片机的特殊功能寄存器

    51单片机汇编语言教程:7课单片机的特殊功能寄存器
    发表于 01-19 15:26 0次下载

    51单片机寄存器说明

    本资料主要对51单片机常用寄存器配置作了说明
    发表于 11-18 17:59 15次下载

    8051单片机有哪些复位方法

    问题:8051单片机复位后,各寄存器的初始状态如何?复位方法有几种? 解答:8051单片机复位后机器的初始状态,即各
    发表于 12-19 15:09 1.2w次阅读

    如何计算给单片机寄存器赋的值

    不同的单片机,外部表现就是形状和引脚数量和引脚名称可能不一,内部,就是寄存器名称不一
    的头像 发表于 02-13 15:59 4871次阅读
    如何计算给<b class='flag-5'>单片机</b><b class='flag-5'>寄存器</b>赋的值

    51单片机经常使用的寄存器功能总结

    本文档的主要内容详细介绍的是51单片机经常使用的寄存器功能总结。
    发表于 08-29 17:29 12次下载
    51<b class='flag-5'>单片机</b>经常使用的<b class='flag-5'>寄存器</b>功能总结

    51单片机的一些特殊寄存器资料说明

    本文档的主要内容详细介绍的是51单片机的一些特殊寄存器资料说明。包括了:中断使能寄存器,中断优先级寄存器,电源控制PCON,PSW处理状态
    发表于 07-26 17:36 2次下载
    51<b class='flag-5'>单片机</b>的一些特殊<b class='flag-5'>寄存器</b>资料说明

    如何写单片机寄存器,这篇文章带你入门。

    单片机在电学里面,属于很简单的一种器件,外表看,就是一个芯片,长着很多的脚。内部,就是一堆寄存器。不同的单片机,外部表现就是形状和引脚数量和引脚名称可能不一,内部,就是...
    发表于 11-14 17:06 0次下载
    如何写<b class='flag-5'>单片机</b>的<b class='flag-5'>寄存器</b>,这篇文章带你入门。

    MSP430单片机寄存器

    电子发烧友网站提供《MSP430单片机寄存器.pdf》资料免费下载
    发表于 11-19 15:36 3次下载
    MSP430<b class='flag-5'>单片机</b><b class='flag-5'>寄存器</b>

    32单片机 C语言 寄存器(四)

    32单片机C语言相关知识以及寄存器地址名称映射分析
    发表于 11-29 10:06 12次下载
    32<b class='flag-5'>单片机</b> C语言 <b class='flag-5'>寄存器</b>(四)

    单片机定时寄存器

    标准的 51 单片机内部有 T0 和 T1 这两个定时,T 就是 Timer 的缩写,现在很多 51 系列单片机还会增加额外的定时,在这里我们先讲定时
    发表于 02-10 12:10 1次下载
    <b class='flag-5'>单片机</b>定时<b class='flag-5'>器</b>的<b class='flag-5'>寄存器</b>

    单片机寄存器和存储哪个好

    单片机寄存器和存储哪个好 单片机的运用在生活中是很常见的,随着科技的发展,单片机更新速度和发展速度也非常快。对于
    发表于 03-21 15:18 641次阅读

    单片机寄存器有哪些 单片机寄存器怎么理解 寄存器单片机的关系

    单片机寄存器是一种特殊的存储器件,用于存储和处理程序中的数据和指令。可以将单片机寄存器看作是CPU内部的工作区域,类似于人的大脑,用于暂时存储和处理当前的任务和信息。
    发表于 04-01 15:47 6135次阅读

    单片机工作寄存器作用 单片机常用专用寄存器

    除了通用寄存器(如累加、通用寄存器等),单片机中还会有特定功能的寄存器,如定时
    的头像 发表于 04-08 14:46 7343次阅读