首页 理论教育 CPU结构-《单片机应用技术》

CPU结构-《单片机应用技术》

时间:2023-10-17 理论教育 版权反馈
【摘要】:图2.2MCS-51单片机内部结构控制器的功能是对来自程序存储器中的指令进行译码,通过定时控制电路,在规定的时刻发出各种操作所需的内部和外部控制信号,指挥单片机系统内部各部分协调的完成指令所规定的功能。表2.1当前工作寄存器组的选择单片机在复位后,RS1和RS0都为0,CPU默认第0组工作寄存器为当前工作寄存器组。

CPU结构-《单片机应用技术》

单片机内部资源中最核心的部分是CPU,它是单片机的“大脑”。MCS-51单片机的CPU是8位的微处理器,它由运算器和控制器两大部分组成,是单片机的运算和控制核心,负责完成算术和逻辑运算及产生控制各个功能单元协调工作的控制信号

1.控制器

控制器由程序计数器(PC)、指令寄存器、指令译码器、定时与控制逻辑电路等组成。MCS-51单片机详细组成如图2.2所示。

图2.2 MCS-51单片机内部结构

控制器的功能是对来自程序存储器中的指令进行译码,通过定时控制电路,在规定的时刻发出各种操作所需的内部和外部控制信号,指挥单片机系统内部各部分协调的完成指令所规定的功能。控制器各功能部件简述如下:

(1)程序计数器PC(Program Counter)。

程序计算器PC是一个16位的专用寄存器,用来存放下一条要执行指令的地址,即程序计数器的内容决定了CPU将要执行那一条指令。PC可以存放16位地址,MCS-51单片机对程序存储器可以达到64KB(216)的寻址范围。

当CPU要取指令时,PC的内容送到地址总线上,从而指向程序存储器中存放当前指令的单元地址,以便从存储器中取出指令,加以分析、执行,同时PC内容自动增1指向下一字节,CPU不断重复进行以上的取指令、译码过程。

PC在系统复位后的初值为0000H,即复位后CPU将从程序存储器的0000H地址开始执行指令,但程序的执行并不完全是顺序的,通过转移指令、子程序调用与返回、中断调用与返回,程序可以发生跳转。

(2)指令寄存器IR(Instruction Register)。

指令寄存器是一个8位寄存器,用于暂存待执行的指令,等待译码。指令译码电路对指令寄存器中的指令进行译码,将指令转变为执行此指令所需要的电信号,再经定时控制电路定时产生执行该指令所需要的各种控制信号。

(3)数据地址指针DPTR(Data Pointer)。

数据地址指针DPTR是一个16位的专用地址指针寄存器,它由DPH和DPL两个特殊功能寄存器组成。DPH是DPTR的高8位,DPL是DPTR的低8位,其组成如下:

DPTR可以用来存放片内ROM的地址,也可以用来存放片外RAM和片外ROM的地址,与相关指令配合可实现对最高64KB片外RAM和全部ROM的访问,具体用法将在第三章中结合相关指令进行介绍。

2.运算器

运算器主要由算术逻辑运算单元(ALU)、累加器(A)、通用寄存器B、暂存寄存器、程序状态字寄存器(PSW)及两个暂存寄存器(TMP)组成。运算器各功能部件简述如下:

(1)算术逻辑运算单元ALU(Arithmetic Logic Unit)。(www.xing528.com)

算术逻辑运算单元ALU可以完成各种算术及逻辑运算。ALU的两个操作数,一个由累加器A通过暂存器2输入,另一个由暂存器1输入,运算结果的状态传送给PSW,见图2.2所示。

(2)累加器ACC(Accumulater)。

累加器ACC是一个8位寄存器,它通过暂存器和ALU相连,是CPU中工作最繁忙、最常用的寄存器,许多指令的操作数取自于ACC,许多运算结果也存放在ACC中。在指令系统中,累加器ACC的助记符记作A。

(3)程序状态字寄存器PSW(Program StateWord)。

程序状态字寄存器PSW是一个8位的状态标志寄存器,用来保存ALU运算结果的特征(如结果是否为0,是否有溢出等)和处理器状态信息。这些特征和状态可作为控制程序转移的条件,供程序判别和查询。其格式如下:

PSW中各位的具体含义如下:

CY:进位标志。在进行加(或减)法运算时,如果执行结果最高位D7有进(或借)位,CY置1,否则CY清0。在进行位操作时,CY又可作为位操作累加器,指令助记符用C表示。

AC:辅助进位。在进行加(或减)法运算时,如果低半字节向高半字节有进(或借)位时,AC置1,否则AC清0。

F0:用户标志。由用户根据需要对其置位或清零,可作为用户自行定义的一个状态标志。

RS1和RS0:工作寄存器组选择位。由用户程序改变RS1和RS0组合中的内容,以选择片内RAM中的4个工作寄存器组之一作为当前的工作寄存器组。工作寄存器组的选择见表2.1。

表2.1 当前工作寄存器组的选择

单片机在复位后,RS1和RS0都为0,CPU默认第0组工作寄存器为当前工作寄存器组。根据需要,用户可以利用传送指令或位操作指令来改变RS1、RS0的内容,选择其它的工作寄存器组,这种设置对程序中保护现场提供了方便。

OV:溢出标志。在补码运算时,当运算结果超出-128~+127范围,产生溢出,OV置1;否则无溢出,OV清0。因此,根据OV状态可以判断累加器A中的结果是否正确。

F1:用户标志。作用同F0,但要用位地址D1H或符号PSW.1来表示这一位。

P:奇偶标志。该标志位始终跟踪累加器A中1的数目的奇偶性。如果A中1的数目为奇数,则P置1,若A中1的数目为偶数或A=00H(没有1),则P清0。无论执行什么指令,只要A中1的数目改变,P就随之而变。以后在指令系统中,凡是累加器A的内容对P标志位的影响都不再赘述。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈