MCS-51单片机的内部结构

Posted 学工科的皮皮志^_^

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MCS-51单片机的内部结构相关的知识,希望对你有一定的参考价值。


前言

51系列单片机包括下列部件
1个8位CPU
1个片内振荡器及时钟电路
4KB ROM程序存储器
128B RAM数据存储器
可寻址64KB外部数据存储器和64KB外部程序存储器的控制电路
32条可编程的I/O线(4个8位并行I/O接口)
两个16位的定时/计数器
1个可编程全双工串行接口
5个中断源和两个优先级嵌套中断结构

一、CPU

CPU是单片机的核心部件。它由运算器和控制器等部件组成。

  1. 运算器
    运算器的功能是进行算术运算:加、减、乘、除、加1、减1、比较、BCD码十进制调整等
    逻辑运算:与、或、异或、求反、循环等逻辑操作
    位操作:内部有布尔处理器,它以进位标志位C为位累加器,用来处理位操作。可对位置 “1”、对位清零 、位判断等。
    操作结果的状态信息送至状态寄存PSW。

    2.程序计数器PC(注:PC是不可以被用户寻址) 程序计数器PC是16位的寄存器,用来存放即将要执行的指令地址,可对64KB程序存储器直接寻址。执行指令时,PC内容的低8位经P0口输出,高8位经P2口输出。

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

二、存储器

1.存储器结构

MCS-51的储存器结构与常见的微型计算机的配置方法不同,主要特点是:程序存储器数据存储器寻址空间是分开的,各有自己的寻址方式、控制信号和功能。

前面我们讲到了51单片机有64KB的程序存储器,其中呢有4KB的程序存储器0000H~0FFFH的4KB地址范围是在单片机的片内还是片外,由EA引脚决定
存储器映像图。
在这里插入图片描述

程序存储器用来存放程序和始终要保留的常数。

数据存储器存放程序运行中所需要的常数和变量。

程序计数器PC是16位的寄存器,用来存放即将要执行的指令地址,可对64KB程序存储器直接寻址。执行指令时,PC内容的低8位经P0口输出,高8位经P2口输出。

2.物理上有4个存储器地址空间

在这里插入图片描述

3.逻辑上有3个存储器地址空间

在这里插入图片描述

4.程序存储器

程序存储器用来存放编制好的始终保留的固定程序和表格常数。程序储存器以程序计数器 PC 作为地址指针,通过16位地址总线,可寻址的地址空间为64KB。
对于内部无ROM的单片机,如8031单片机,必须外部扩展程序存储器,地址从0000H~FFFFH都是外部程序存储空间,/EA 应始终接地。
对于内部有ROM的单片机,/EA引脚可接高电平,使程序从内部ROM开始执行。当PC值超出内部ROM的容量时,会自动转向外部程序存储器空间。外部程序存储器地址空间为1000H~FFFFH;/EA引脚也可接低电平,此时内部ROM将不起作用。

5.程序存储器中的几个特殊地址的使用

在这里插入图片描述

三、外部数据存储器

用于存放随机读写的数据。
MCS-51单片机的外部数据存储器和外部I/O口实行统一编址,最多可扩展64KB外部数据存储器。

四、内部数据存储器

前面我们说到,51单片机有128B 的数据存储器,即128个字节的数据存储器
那么让我们来看看是怎么区分的
内部数据存储器是使用最多的地址空间,存放随机读写的数据,分为:通用寄存器区、堆栈区、运算操作数存放区
那么有同学就有疑问了,51不是只有128B的内部数据存储器,哪来的高128单元,原因是我们现在是用的52即增强型的了,所以讲的也是52的了
注: 对51基本型单片机只有00H-7FH单元128字节的RAM区。对52增强型的单片机还有80H-FFH组成的高128字节RAM区(共256字节RAM )。
在这里插入图片描述
在这里插入图片描述

(1)内部RAM——寄存器区(地址为0~1FH的前32个单元)

内部RAM的前32个单元,共分为4组,每组含8个寄存器,在组中按R7~R0编号,地址从00H~1FH。
CPU使用哪一组寄存器,由程序状态字中的RS0、RS1的设置来决定。
在这里插入图片描述
初始化时或复位时,自动选中0组。
一旦选中一组,其它三组只能作为数据存储器使用,而不能作为寄存器使用。
设置多组寄存器可以方便保护现场。

(2)内部RAM——位寻址区

片内20H~2FH字节单元,即可作为一般的RAM区使用进行字节操作,也可以对单元中的每一位进行位操作,共有16个字节寻址单元,按位计算有128位,位地址为:00H~7FH
例:清除位地址00H单元
CLR 00H ;对某位清0
MOV 20H, #00H ;
或 AND 20H, #0FEH
在这里插入图片描述

(3)内部RAM——用户RAM区

除选中的寄存组以外的存储器均可以作为通用RAM区。
单元地址为30H~7FH。共80个字节单元。
注意:对于用户RAM区,只能以存储单元(字节地址)的形式来使用,一般用作堆栈区。

(4)堆栈区

8XX51单片机的堆栈设在内部RAM区,深度不大于128字节,初始化时SP指向07H。

注: 对51基本型单片机只有00H-7FH单元128字节的RAM区。对52增强型的单片机还有80H-FFH组成的高128字节RAM区(共256字节RAM )。

五、特殊功能寄存器

专用寄存器:做为专门规定的、有特定的用途寄存器。也就是用于存放相应部件的控制命令、状态、或者数据的寄存器,共22个专用寄存器,其中有21个为可寻址的 。 特殊功能寄存器用英文缩写SFR (Special Fuction Register)表示。 具体见下表,表中标注了各SFR的名称、字节地址、可寻址位的位地址和位名称。
在这里插入图片描述
21个特殊功能寄存器的名称及主要功能介绍如下,详细的用法见后面各节的内容。
A—累加器,自带有全零标志Z,A=0则Z=1;A≠0则Z=0。该标志常用于程序分支转移的判断条件。
B—寄存器,常用于乘除法运算。
PSW—程序状态字。主要起着标志寄存器的作用,其8位定义如下。
在这里插入图片描述
CY:进/借位标志
反映最高位的进位借位情况,加法为进位、减法为借位。
CY=1,有进/借位 ; CY=0,无进/借位。
AC:辅助进/借位标志
反映高半字节与低半字节之间的进/借位,
AC=1有进/借位; AC=0无进/借位 。
FO:用户标志位。可由用户设定其含义。
RS1,RS0:工作寄存器组选择位。
OV:溢出标志
反映补码运算的运算结果有无溢出
有溢出 OV=1,无溢出OV=0。
计算机中设立了溢出标志位OV,通过最高位的进位(符号位的进位CY和次高位的进位CY-1异或产生))
例如
在这里插入图片描述
溢出OV:两个补码数相加时结果超出补码表示范围而产生
进位CY:当运算结果超出计算机位数的限制(8位,16位),会产生进位,他是由最高位计算产生的,在加法中表现为进位,在减法中表现为借位。

-:无效位。
P:奇偶标志
运算结果有奇个“1”,P=1;运算结果有偶个“1”,P=0。

SP—堆栈指针。8XX51单片机的堆栈设在片内RAM,
对堆栈的操作包括压入(PUSH)和弹出(POP)两种方式,并且遵循先进后出、后进先出的原则,同时,SP指向的存储内容总是有用的,地址的生产方向是向上(高地址)生成,操作时先修改SP,后压栈或出栈,并按字节进行操作。

DPTR——数据指针寄存器
用来存放16位地址值,以便用间接寻址或变址寻址片外存储器。DPTR可分成DPL和DPH两个8位寄存器分别使用。
P0、P1、P2、P3——I/O端口寄存器
是四个并行I/O端口映射入SFR中的寄存器。通过对该寄存器的读/写,可实现从相应I/O端口的输入/输出。

例如:
指令 MOV P1,A 实现了把A累加器中的内容从P1端口输出的操作;
指令MOV A,P3 实现了把P3端口线上的信息输入到A中的操作。

此外还有如下寄存器,它们将在后面章节介绍:
IP——中断优先级控制寄存器。
IE——中断允许控制寄存器。
TMOD——定时器/计数器方式控制寄存器。
TCON——定时器/计数器控制寄存器。
TH0、TL0——定时器/计数器0。
TH1、TH1——定时器/计数器1。
SCON——串行端口控制寄存器。
SBUF——串行数据缓冲器。
PCON——电源控制寄存器。

注: 在52子系列中,高128字节RAM和SFR的地址是重叠的,究竟访问哪一块可通过不同的寻址方式加以区分,访问高128字节RAM采用寄存器间址,****访问SFR则只能采用直接寻址(易错),访问低128字节RAM时,两种寻址均可采用。

六、时钟电路

单片机的时钟信号用来提供单片机内各种微操作时间基准,8XX51单片机的时钟信号通常有两种电路形式:
内部振荡方式和外部振荡方式。

在这里插入图片描述
在这里插入图片描述
★电容器C01、C02起稳定振荡频率、快速起振的作用。电容值一般为 5~30PF。

外部振荡方式是把已有的时钟信号引入单片机。这种方式适宜用于使单片机的时钟与外部信号保持一致。外部振荡方式如图1-4所示。
在这里插入图片描述

七、单片机的时序单位

单片机的时序单位有:
振荡周期:晶振的振荡周期,又称时钟周期,为最小的时序单位。单片机工作的基本频率信号,是单片机内的最高频率,由单片机振荡电路产生或外部振荡电路提供;
振荡周期(或时钟周期):Tosc=1/fosc
状态周期:振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期。因此,一个状态周期包含2个振荡周期。
状态时间:S=2Tosc
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述机器周期(MC):1个机器周期由6个状态周期及12个振荡周期组成。是计算机执行一种基本操作的时间单位。
机器周期=12Tosc
指令周期:指令周期是执行一条指令所需要的时间,指令周期是以机器周期的倍数来表示。如单周期、双周期和四周期指令等
在这里插入图片描述
例:单片机外接晶振频率12MHZ时的各种时序单位:
振荡周期=1/fosc=1/12MHZ=0.0833us
状态周期=2/fosc=2/12MHZ=0.167us
机器周期=12/fosc=12/12MHZ=1us
指令周期=(1~4)机器周期=1~4us

八、复位电路

复位操作则使单片机的片内电路初始化,使单片机从一种确定的状态开始运行。复位操作通常有2种基本形式:上电复位开关复位

上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行过程中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。通常选择
C=10uf
在这里插入图片描述
在这里插入图片描述

(1)复位的作用

①得到一个可知的上电状态;
②工作时可随时重新初始化硬件,重新开始;
③协调多个器件同步工作;
④电源稳定后再工作,靠复位来确定单片机开始工作;
⑤在上电后控制程序开始的准确时间;
在这里插入图片描述

(2)几个重要的复位状态:

PC = 0000H
P0、P1、P2、P3 = 0FFH
PSW= 00H
SP = 07H

九、引脚功能

8XX51单片机有44引脚的
方形封装形式和40个引脚的双
列直插式封装形式,最常用的
40个引脚封装,见图1-6.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

本章我们讲到了,51单片机的结构,这也是最基本的知识,毕竟硬件决定物理世界,有哪些硬件决定能实现哪些功能,只有了解底层的硬件结构,才能让我们更好地编写代码。所以说本章可以说是重中之重,知识点也多,注意辨析。把这一章看懂了,说明51单片机入门了。
在这里插入图片描述

以上是关于MCS-51单片机的内部结构的主要内容,如果未能解决你的问题,请参考以下文章

为啥MCS-51单片机的程序存储器和数据存储器共处同一地址空间而不会发生总线冲突

MCS-51系列单片机是属于啥体系结构

MCS51和8051和C51单片机啥联系?

中断系统结构及中断控制详解

MCS-51单片机存储地址空间划分

MCS-51单片机汇编语言程序设计