文章目录

  • 前言
  • 一、CPU
  • 二、存储器
  • 1.存储器结构
  • 2.物理上有4个存储器地址空间
  • 3.逻辑上有3个存储器地址空间
  • 4.程序存储器
  • 5.程序存储器中的几个特殊地址的使用
  • 三、外部数据存储器
  • 四、内部数据存储器
  • (1)内部RAM——寄存器区(地址为0~1FH的前32个单元)
  • (2)内部RAM——位寻址区
  • (3)内部RAM——用户RAM区
  • (4)堆栈区
  • 五、特殊功能寄存器
  • 六、时钟电路
  • 七、单片机的时序单位
  • 八、复位电路
  • (1)复位的作用
  • (2)几个重要的复位状态:
  • 九、引脚功能
  • 总结



前言

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引脚决定

存储器映像图。

51单片机架构图 51单片机什么架构_单片机

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

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

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

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

51单片机架构图 51单片机什么架构_嵌入式_02

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

51单片机架构图 51单片机什么架构_经验分享_03

4.程序存储器

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

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

51单片机架构图 51单片机什么架构_经验分享_04

三、外部数据存储器

用于存放随机读写的数据。
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 )。

51单片机架构图 51单片机什么架构_51单片机架构图_05


51单片机架构图 51单片机什么架构_嵌入式_06

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

内部RAM的前32个单元,共分为4组,每组含8个寄存器,在组中按R7~R0编号,地址从00H~1FH。

CPU使用哪一组寄存器,由程序状态字中的RS0、RS1的设置来决定。

51单片机架构图 51单片机什么架构_单片机_07


初始化时或复位时,自动选中0组。

一旦选中一组,其它三组只能作为数据存储器使用,而不能作为寄存器使用。

设置多组寄存器可以方便保护现场。

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

片内20H~2FH字节单元,即可作为一般的RAM区使用进行字节操作,也可以对单元中的每一位进行位操作,共有16个字节寻址单元,按位计算有128位,位地址为:00H~7FH

例:清除位地址00H单元

CLR 00H ;对某位清0

MOV 20H, #00H ;

或 AND 20H, #0FEH

51单片机架构图 51单片机什么架构_51单片机架构图_08

(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的名称、字节地址、可寻址位的位地址和位名称。

51单片机架构图 51单片机什么架构_嵌入式_09


21个特殊功能寄存器的名称及主要功能介绍如下,详细的用法见后面各节的内容。

A—累加器,自带有全零标志Z,A=0则Z=1;A≠0则Z=0。该标志常用于程序分支转移的判断条件。

B—寄存器,常用于乘除法运算。

PSW—程序状态字。主要起着标志寄存器的作用,其8位定义如下。

51单片机架构图 51单片机什么架构_51单片机架构图_10


CY:进/借位标志

反映最高位的进位借位情况,加法为进位、减法为借位。

CY=1,有进/借位 ; CY=0,无进/借位。

AC:辅助进/借位标志

反映高半字节与低半字节之间的进/借位,

AC=1有进/借位; AC=0无进/借位 。

FO:用户标志位。可由用户设定其含义。

RS1,RS0:工作寄存器组选择位。

OV:溢出标志

反映补码运算的运算结果有无溢出

有溢出 OV=1,无溢出OV=0。

计算机中设立了溢出标志位OV,通过最高位的进位(符号位的进位CY和次高位的进位CY-1异或产生))

例如

51单片机架构图 51单片机什么架构_嵌入式_11


溢出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单片机的时钟信号通常有两种电路形式:
内部振荡方式和外部振荡方式。

51单片机架构图 51单片机什么架构_硬件_12


51单片机架构图 51单片机什么架构_51单片机架构图_13


★电容器C01、C02起稳定振荡频率、快速起振的作用。电容值一般为 5~30PF。外部振荡方式是把已有的时钟信号引入单片机。这种方式适宜用于使单片机的时钟与外部信号保持一致。外部振荡方式如图1-4所示。

51单片机架构图 51单片机什么架构_嵌入式_14

七、单片机的时序单位

单片机的时序单位有:

振荡周期:晶振的振荡周期,又称时钟周期,为最小的时序单位。单片机工作的基本频率信号,是单片机内的最高频率,由单片机振荡电路产生或外部振荡电路提供;

振荡周期(或时钟周期):Tosc=1/fosc

状态周期:振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期。因此,一个状态周期包含2个振荡周期。

状态时间:S=2Tosc

51单片机架构图 51单片机什么架构_经验分享_15


51单片机架构图 51单片机什么架构_嵌入式_16


51单片机架构图 51单片机什么架构_经验分享_17

机器周期(MC):1个机器周期由6个状态周期及12个振荡周期组成。是计算机执行一种基本操作的时间单位。

机器周期=12Tosc

指令周期:指令周期是执行一条指令所需要的时间,指令周期是以机器周期的倍数来表示。如单周期、双周期和四周期指令等

51单片机架构图 51单片机什么架构_经验分享_18


例:单片机外接晶振频率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

51单片机架构图 51单片机什么架构_51单片机架构图_19


51单片机架构图 51单片机什么架构_经验分享_20

(1)复位的作用

①得到一个可知的上电状态;

②工作时可随时重新初始化硬件,重新开始;

③协调多个器件同步工作;

④电源稳定后再工作,靠复位来确定单片机开始工作;

⑤在上电后控制程序开始的准确时间;

51单片机架构图 51单片机什么架构_单片机_21

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

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

九、引脚功能

8XX51单片机有44引脚的

方形封装形式和40个引脚的双

列直插式封装形式,最常用的

40个引脚封装,见图1-6.

51单片机架构图 51单片机什么架构_硬件_22


51单片机架构图 51单片机什么架构_51单片机架构图_23


51单片机架构图 51单片机什么架构_嵌入式_24


51单片机架构图 51单片机什么架构_经验分享_25

总结

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

51单片机架构图 51单片机什么架构_51单片机架构图_26