51的结构

本文详细介绍了51单片机的结构,包括CPU的运算部件和控制部件,如B寄存器、PSW标志寄存器、程序指针PC、堆栈指针SP等。还讨论了程序存储器和数据存储器的布局,以及特殊功能寄存器区和堆栈操作。文章特别提到了如何避免在复位时执行特殊地址的程序以及堆栈在RAM中的工作方式。
摘要由CSDN通过智能技术生成

51单片机系列学习笔记
1.51的结构
2. 51引脚与工作方式
3. 51单片机的寻址方式和指令系统

1 单片机简介

image-20230405132716282

image-20230405132733461

image-20230405132759802

image-20230405132835142

2 部件详细介绍

2.1 CPU

包含运算部件 控制部件

2.1.1 运算部件

image-20230405133047045

B寄存器称为辅助累加器 完成乘除运算

标志寄存器PSW

image-20230405133323489

C:(carry)进位借位标志位 进位借位时置1 否则清零

AC:辅助进位或借位标志位 当低四位向高四位有进位或借位时置1 否则清零

OV:溢出标志位

P:偶校验标志位 当A寄存器中的数为奇数时置1 否则清零

F0:用户标志位 用户自己使用的

RS0和RS1共同作用用来选择工作寄存器的

image-20230405133852843

2.1.2 控制部件

image-20230405134021226

  • 程序指针PC 16位寄存器 CPU通过PC 从程序存储区(ROM)取指令
  • 堆栈指针SP 8位寄存器 用于堆栈空间的操作
  • 数据指针DPTR 16位寄存器 对片外64KB数据存储空间(RAM)的操作 分为高八位DPH 和低八位DPL

2.2 程序存储器

image-20230405135230945

正好对应前文片内4KB ROM

image-20230405135322279

片外扩展 由EA引脚决定 低电平使能

一般不片外扩展

image-20230405135433333

有七个特殊地址 默认的 我们无法改变

但是单片机复位时 都是从0000H开始执行程序 就会执行后面的特殊程序 怎么办呢?

可以在0000H 单元处放一个绝对转移指令 直接转移到后面的某一个地方(一般我们用0100H) 从而避开这些特殊地址

2.3 数据存储器

image-20230405141612867

两个块地址重叠了?会有影响吗?

不会 因为访问指令不同

2.3.1 随机存储块

image-20230405141819410

2.3.1.1 工作寄存器组区

image-20230405141913147

2.3.1.2 位寻址区

image-20230405142250448

这里让我想到了stm32中的位扩展技术

2.3.1.3 一般RAM区

image-20230405142556383

一般ram区中还有堆栈区

image-20230405142835343

入栈时 先将sp+1->sp 再将数据放入堆栈区 所以说堆栈实际从08H开始的

出栈时 先将数据移出堆栈区 再将sp-1->sp

注意顺序

但是07H是工作寄存器组区 所以 一般通过对SP赋值,可以使堆栈区设定在RAM中的某一区域(一般在一般RAM区 这段连续 适合堆栈生长)

2.1.2 特殊功能寄存器区

image-20230405144032740

image-20230405144142507

image-20230405144252914

2.1.3 片外扩展

image-20230405144434426

3 思考

image-20230405144643800

image-20230405150653858

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值