简述51单片机的内部结构_51单片机的硬件结构及其作用

简述51单片机的内部结构_51单片机的硬件结构及其作用【1.基本组成】单片机是在一块芯片中集成了CPU、RAM、ROM、定时/计数器和多功能I/O等计算机所需要的基本功能部件的大规模集成电路,又称MCU。51单片机内包含下列几个部件:一个8位CPU一个片内震荡器及时钟电路一个片内4KBROM程序存储器128字节RAM数据存储器可寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路32条可编程的I/O线(4个8位并行I/O端口)两个16位的定时/计数器一个可编程全双工串行口5个中断源、两个优先级嵌套中断结构

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

【 1. 基本组成 】

  • 单片机:
    在一块芯片中集成了CPU、RAM、ROM、定时/计数器、多功能I/O等计算机所需要的基本功能部件的大规模集成电路,又称 MCU

51单片机内包含下列几个部件

  • 一个8位CPU
  • 128字节 RAM 数据存储器
  • 一个片内4KB ROM 程序存储器
  • 可寻址 64KB 外部 RAM 和 64KB 外部 ROM 的控制电路
  • 32条可编程的 I/O 线(4个8位并行I/O端口)
  • 两个16位的定时/计数器
  • 一个可编程全双工串行口
  • 5个中断源、两个优先级嵌套中断结构
  • 一个片内震荡器及时钟电路

在这里插入图片描述
上图1-1中,其“/”前面为普通型,“/”后面为增强型。

【 2. CPU 】

  • CPU:
    是单片机的核心部件,由运算器、程序计数器PC、指令寄存器 等部件组成。

1. 运算器

  • 功能就是进行运算(算术运算、逻辑运算、位运算)。
  • 操作结果的状态信息存至 状态寄存器PSW

2. 程序计数器PC

  • Program Counter
  • 16位自动加 1 的寄存器
  • 存放即将执行的指令地址
  • 可对64KB程序存储器直接寻址
  • 执行指令时,PC内容的低8位经 P0 输出,高8位经 P2 输出。
  • 取出指令码后,PC寄存器内容自动加 1 ,指向下一指令地址。

3. 指令寄存器

  • 存放指令代码
  • CPU执行指令时,由程序存储器中读取的指令代码送入指令寄存器,经指令寄存器译码后,由定时与控制电路发出相应的控制信号,完成指令功能。

【 3. 存储器 】

1. 存储器地址空间的结构形式

  • 第一种:普林斯顿结构:RAM 和 ROM 连续编址在同一地址空间,CPU访问ROM和RAM用相同的访问指令。
  • 第二种:哈佛结构:RAM 和 ROM 分别编址在不同地址空间,(RAM和ROM可以有相同的地址,CPU靠不同的指令区别)MCS-51采用这个结构,各有各自的指令。

在这里插入图片描述

  • 51 存储器的特点:采用哈佛结构,拥有片内RAM、片内ROM、片外RAM、片外ROM;

2. 程序存储器

  • 程序存储器 ROM
    用于存放编制好的始终保留的固定程序和表格常数。
  • 8051单片机内置最低4KB ROM程序存储器。
  • 51 ROM的执行特点
    ❶ 片内、片外的两个ROM统一编址,用MOC指令访问。程序存储器以程序计数器PC作为地址指针,通过16位地址总线,可寻址的地址空间为64KB。
    EA ‾ \overline{\text{EA}} EA=1时,程序先执行片内ROM地址的0000H~0FFFH,再执行片外ROM地址的1000H~FFFFH,是连续的(此时片内、片外ROM中被用的空间共占64K);
    EA ‾ \overline{\text{EA}} EA=0时,程序只执行外部ROM地址的0000H~FFFFH(即只用外部ROM的64K)。

在这里插入图片描述

  • 程序存储器中几个特殊地址

在这里插入图片描述

3. 外部数据存储器

  • 数据存储器RAM:存放随机读写的数据。
  • 外部数据存储器和外部I/O 统一编址,并使用相同的选通控制信号,均使用 MOVX指令和相同的寄存器间接寻址
  • MCS-51单片机最多可扩展64KB外部数据存储器。

4. 内部数据存储器

  • 内部数据存储器
    ❶ 使用最多的的地址空间,用于存放随机读写的数据,所有操作指令的操作数只能存在此地址空间或特殊功能寄存器中。
    ❷ 其区域包括通用寄存器区、堆栈区、运算操作数存放区。
  • 加强型 52 RAM特点
    有256字节RAM,占地址00~FFH,其中80H~FFH地址的RAM和SFR所占地址是重合的。区分方法:访问SFR用直接地址(称为直接寻址),访问RAM采用寄存器采用寄存器间接寻址。在这里插入图片描述
  • 基本型51 RAM 的地址分配:
    51系列单片机内部数据存储器地址范围为00~7FH。(附:而SFR占地址80H~FFH,两者的地址空间是连续的)。
  • 通用寄存器区
       00H~1FH的前32个单元。共4组寄存器(寄存器0组~3组),每组寄存器有8个8位通用寄存器(R0~R7)。
       寄存器的选组由程序状态字PSW的RS1和RS0位决定。
    在这里插入图片描述
       初始化或复位时自动选中0组。
       使用时之能选其中一组寄存器,一旦选中一组,其他三组只能作为数据存储器使用,而不能作为寄存器使用。
       设置多组寄存器可以方便保护现场。
       除选中的寄存组以外的存储器均可以作为通用 RAM 区。
  • 位地址区
    20H~2FH为,共16个单元,每个单元有8个位,每位有一个位地址,共128位,位地址范围是00H~7FH。该区既可位寻址,又可字节寻址。
  • 堆栈区
    8XX51单片机的堆栈设在内部RAM区,深度不大于128字节,除选中寄存器组以外的存储区可作为堆栈区,初始化时SP指向07H。
    在这里插入图片描述

5. 特殊功能寄存器

  • 共21个特殊功能寄存器,不连续地分布在80H~FFH 128个字节地址空间。
  • 常见的SFR :累加器A,寄存器B,程序状态字PSW,堆栈指针SP,数据指令寄存器DPTR,P0 P1 P2 P3 I/O端口寄存器等。
  • PS:52系列中,高128字节RAM和SFR地址是重合的。访问高128字节RAM用寄存器间址,访问SFR只能采用直接寻址,访问低128字节RAM两种寻址方式均可使用
  • 地址为X0H和X8H是可位寻址的寄存器
    在这里插入图片描述
  • A累加器
    自带全0标志Z,A=0时,Z=1; A=0时,Z=0,该全0标志用于程序分支转移的判断条件。
  • B寄存器
    常用于乘除法运算。
  • PSW程序状态字,也叫标志寄存器
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

【 4. 时钟电路 】

周期

  • 震荡周期、时钟周期
    晶振的震荡周期。12MHZ晶振的震荡周期为 1 12 \frac{1}{12} 121
  • 状态周期
    两个震荡周期。震荡频率会经过单片机内部的二分频电路。
  • 机器周期
    12个震荡周期。单片机执行一种基本操作的单位时间。
  • 指令周期
    单片机执行一条指令所需的时间。一个指令周期由1~4个机器周期组成(依据指令不同而不同)。
    在这里插入图片描述

电路

单片机的时钟信号用于给单片机提供震荡周期,即操作时间的基准。
在这里插入图片描述
在这里插入图片描述

【 5. 复位电路 】

  • 复位
    使单片机内部电路初始化,从程序的初始状态开始执行。
  • 复位操作的实质
    使SFR寄存器进入初始化,不改变片内RAM区的内容。
  • MCS-51复位操作
    引脚RST出现5ms以上的高电平,单片机就会复位。若RST一直是高电平,则会一直死循环复位。
  • 复位操作的基本种类
    上电复位:单片机一通电,就会自动复位。
    开关复位:电源接通时,利用开关,控制RST引脚接高电平实现复位。当出现死循环或崩溃的时候,可通过开关令其复位使单片机退出当前崩溃状态。
  • 常用复位电路
    上电后,电容充电,有电流流经电容器,RST维持高电平一段时间,当电容充电至电容两端电压为VCC后,就没有电流流经电容器。

在这里插入图片描述

  • 常见寄存器的复位状态
    在这里插入图片描述
    在这里插入图片描述

【 6. 引脚 】

1. 可总线扩展的单片机引脚

在这里插入图片描述
接上图中,保持在低功耗条件下内部RAM中的数据。
在这里插入图片描述
在这里插入图片描述

2. 不可总线扩展的单片机引脚

在这里插入图片描述

【 7. 总结 】

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186055.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • css绝对定位与相对定位结合使用_css定位方法

    css绝对定位与相对定位结合使用_css定位方法css绝对定位与相对定位结合使用1、绝对定位与相对定位绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。相对定位是一个非常容易掌握的概念。如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动。—(w3cSchool)…

    2025年6月20日
    4
  • H3C : S6550XE-56HF-HI 25G+100G光口交换机配置动静态端口聚合

    H3C : S6550XE-56HF-HI 25G+100G光口交换机配置动静态端口聚合H3C:S6550XE-56HF-HI25G+100G光口交换机配置动静态端口聚合动态端口聚合:(WGE1/0/53WGE1/0/54)[H3C]interfaceBridge-Aggregation11[H3C-Bridge-Aggregation11]link-aggregationmodedynamic[H3C-Bridge-Aggregation11]quit[H3C]interfaceTwenty-FiveGigE1/0/53[H3C-Twenty-FiveG

    2022年6月5日
    31
  • pycharm2021.11激活码(JetBrains全家桶)

    (pycharm2021.11激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1M3Q9SD5XW-eyJsa…

    2022年3月28日
    54
  • linux时间戳转换日期格式_shell脚本获取时间戳

    linux时间戳转换日期格式_shell脚本获取时间戳Linux时间戳、日期转换函数:#include#include#include#includeusingnamespacestd;time_tdate_to_timestamp(char*date,char*pfmt){structtmt;strptime(date,pfmt,&t);time_ttt=mktime(&t);returntt;}…

    2022年10月2日
    2
  • 某网站(JSP + Access) 渗透 实例 ( eWebEditor 漏洞 )「建议收藏」

    某网站(JSP + Access) 渗透 实例 ( eWebEditor 漏洞 )「建议收藏」某网站后台是用的  蓝滨新闻系统精简加强版即如图:可见,后台是JSP+Access,虽然这个新闻系统标题写了是安全性加强版本,但是对于这种系统我还是很感兴趣的。根据这个系统的源代码,找这个系统的漏洞。manage/htmledit/eWebEditor.asp sSql="select*fromewebeditor_stylewheres_name=’"&sSty…

    2022年7月14日
    42
  • 红月服务器制作过程,红月3.8C私服架设教程

    红月服务器制作过程,红月3.8C私服架设教程————————————————九到一私服资源下载站原创教程–红月3.8C私服架设录像教程————————————————大家好,今天架设红月私服。课前必看为MSSQL的架设教程。事先我已经安装好SQL了。下面我们下下载好服务端和客户端。桌面上建立个文件夹储存OK,…

    2022年9月28日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号