文章目录

  • 一、MCS-51单片机内部结构
  • 二、CPU
  • 三、存储器
  • 四、特殊功能寄存器SFR
  • 五、时钟电路与复位电路
  • 六、引脚功能



一、MCS-51单片机内部结构

单片机是在一块芯中集成了CPU、RAM、ROM、定时/计数器和多功能I/O接口等基本部件的大规模集成电路,又称MCU。

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

单片机程序架构详解篇 单片机编程结构_51单片机


二、CPU

核心部件,由运算器和控制器等部件组成。

运算器:算术运算,逻辑运算,位操作。

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

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


三、存储器

分程序存储器和数据存储器,分片内和片外,从逻辑地址空间看,又可分为片内数据存储器、片外数据存储器、片内片外统一编址的程序存储器。

引脚EA(上面一横)的接法决定了程序存储器0000H~0FFFH的4KB地址范围是在片内还是片外。为1时,片内0000H~0FFFH,片外1000H~FFFFH;为0时,0000H~FFFFH64KB都是片外。

程序存储器:以PC作为地址指针,通过16位地址总线,可寻址64KB地址空间。

程序存储器中的特殊地址:

地址

用途

0000H

复位操作后的程序入口

0003H

外部中断0服务程序入口

000BH

定时器0中断服务程序入口

0013H

外部中断1服务程序入口

001BH

定时器1中断服务程序入口

0023H

串行口中断服务程序入口

由于两入口地址直接的存储空间有限,通常在这些入口地址开始的两三个地址单元中,放入一条转移类指令(跳转指令),使得相应程序跳转到指定的程序存储器区域。

外部数据存储器:51单片机具有扩展64KB外部数据存储器RAM和I/O端口的能力,它们统一编址,使用相同的选通控制信号、相同的访问指令MOVX,以及相同的寄存器间接寻址。

内部数据存储器:51单片机中只有128字节RAM,地址为00H~7FH,它和SFR的地址(80H~FFH)空间是连续的,而在增强型52子系列中有256字节RAM,高128字节RAM和SFR的地址是重合的,访问高128字节RAM采用寄存器间接寻址,访问SFR则采用直接寻址。

单片机程序架构详解篇 单片机编程结构_51单片机_02


单片机程序架构详解篇 单片机编程结构_51单片机_03


前32个单元(00H~1FH)为寄存器区,共分4组,每组有8个8位寄存器R0~R7,R0和R1可作为间址寄存器使用。使用时,只能选其中一组寄存器,寄存器的选组由程序状态字PSW的RS1和RS0位定。一旦选中了一组寄存器,其它3组只能作为数据存储器使用,而不能作为寄存器使用。初始化或者复位时,自动选中0组。

20H~2FH为位地址区,共16个单元,每个单元有8位,共128位,每位有一个位地址,范围为00H~7FH,该区既可位寻址,又可字节寻址。

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

单片机程序架构详解篇 单片机编程结构_单片机程序架构详解篇_04


四、特殊功能寄存器SFR

用途:
A累加器、状态标志寄存器
单片机内部各部件专用的控制、状态寄存器
并行口、串行口影射寄存器

地址空间:
21个特殊功能寄存器不连续地分布在80H~FFH128个字节地址空间,地址为X0H和X8H是可位寻址的寄存器。

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

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

PSW——程序状态字,主要起着标志寄存器的作用:
Cy:进/借位标志,反映运算中最高位有无进/借位,有进/借位时为1
AC:辅助进/借位标志,反映运算中低半字节与高半字节间的进/借位情况
F0:用户标志位,可由用户设定其含义
RS1、RS2:工作寄存器组选择位
OV:溢出标志位,补码运算的结果有溢出时为1,OV=Cy异或Cy-1
-:无效位
P:奇偶标志位,反映对累加器A操作后,A累加器中“1”个数的奇偶,奇为1
SP:堆栈指针寄存器
DPTR:16位数据指针寄存器,分DPL和DPH
P0~P3:I/O端口寄存器


五、时钟电路与复位电路

51单片机的时钟信号通常有两种电路形式:内部振荡方式和外部振荡方式。

内部振荡:在引脚XTAL1和XTAL2外接晶体振荡器(晶振),C1和C2起稳定振荡频率、快速起振作用。

单片机程序架构详解篇 单片机编程结构_嵌入式硬件_05


外部振荡:把已有的时钟信号引入单片机,这种方式适宜用于使单片机的时钟与外部信号保持一致。对HMOS的单片机(8031),由XTAL2引入,对CHMOS的单片机(8XCXX),由XTAL1引入。

单片机程序架构详解篇 单片机编程结构_寄存器_06


振荡周期:晶振的振荡周期,又称时钟周期,为最小的时序单位。

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

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

指令周期:执行一条指令所需的时间,一个指令周期由1~4个机器周期组成,依据指令不同而不同。

振荡周期和机器周期是单片机内计算其它时间值(例如波特率、定时器的定时时间等)的基本单位。

单片机外接晶振频率12MHZ时:

单片机程序架构详解篇 单片机编程结构_寄存器_07


复位:使片内电路初始化,当复位引脚RST出现5ms以上的高电平时,单片机就完成复位操作。

两种复位操作的形式:上电复位,开关复位

上电复位:接通电源后自动复位

开关复位:在运行期间,按钮使单片机复位

单片机程序架构详解篇 单片机编程结构_单片机_08


单片机的复位操作使SFR寄存器初始化,而不改变片内RAM中的内容。

几个主要特殊功能寄存器复位状态:
PC=0000H:程序计数器为0表明单片机复位后程序从0000H地址单元开始执行
A=00H:累加器清零
PSW=00H:选寄存器0组为工作寄存器组
SP=07H:堆栈指针指向片内RAM的07H单元,根据先加后压的法则,第一个被压入的数据被写入08H单元中
P0~P3=FFH:向各端口写入1,各端口即可用于输入又可用于输出


六、引脚功能

单片机程序架构详解篇 单片机编程结构_嵌入式硬件_09

Vss:接地端
Vcc:电源端
XTAL1、XTAL2:接外部晶体或外部时钟信号
RST/VPD:①复位信号输入②接备用电源
ALE:地址锁存允许,输出脉冲的频率为振荡频率的六分之一
PR0G(上面一横):对片内EPROM编程时,编程脉冲由该引脚引入
PSEN(上面一横):程序存储器允许,输出读取外部程序存储器的选通信号
EA(上面一横):选择访问程序存储器
P0.0~P0.7:P0口,数据/低八位地址复用总线端口
P1.0~P1.7:P1口,静态通用端口
P2.0~P2.7:P2口,高八位地址总线端口
P3.0~P3.7:P3口,双功能静态端口