mcs-51单片机CPU的内部结构及工作原理

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

单片机内部有一个8位的CPU,同时知道了CPU内部包含了运算器,控制器及若干寄存器。51单片机CPU的内部结构及工作原理。

从图中我们可以看到,在虚线框内的就是CPU的内部结构了,8位的MCS-51单片机的CPU内部有数术逻辑单元ALU(Arithmetic Logic Unit)、累加器A(8位)、寄存器B(8位)、程序状态字PSW(8位)、程序计数器PC(有时也称为指令指针,即IP,16位)、地址寄存器AR(16位)、数据寄存器DR(8位)、指令寄存器IR(8位)、指令译码器ID、控制器等部件组成。 

 

mcs-51单片机CPU的内部结构及工作原理_第1张图片

                                                       图片1

1、运算器(ALU)的主要功能 
A)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。 
B)加、减、乘、除、加1、减1、比较等算术运算。 
C)与、或、异或、求补、循环等逻辑运算。 
D)位处理功能(即布尔处理器)。 
由于ALU内部没有寄存器,参加运算的操作数,必须放在累加器A中。累加器A也用于存放运算结果。 
例如:执行指令 ADD A,B 
执行这条指令时,累加器A中的内容通过输入口In_1输入ALU,寄存器B通过内部数据总线经输入口In_2输入ALU,A+B的结果通过ALU的输出口Out、内部数据总线,送回到累加器A。

 

2、程序计数器PC 
PC的作用是用来存放将要执行的指令地址,共16位,可对64K ROM直接寻址,PC低8位经P0口输出,高8位经P2口输出。也就是说,程序执行到什么地方,程序计数器PC就指到哪里,它始终是跟蹿着程序的执行。我们知道,用户程序是存放在内部的ROM中的,我们要执行程序就要从ROM中一个个字节的读出来,然后到CPU中去执行,那么ROM具体执行到哪一条呢?这就需要我们的程序计数器PC来指示。 
程序计数器PC具有自动加1的功能,即从存储器中读出一个字节的指令码后,PC自动加1(指向下一个存储单元)。 


3、指令寄存器IR 
指令寄存器的作用就是用来存放即将执行的指令代码。 
在这里我们先简单的了解下CPU执行指令的过程,首先由程序存储器(ROM)中读取指令代码送入到指令寄存器,经译码器译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。关于指令在单片机内部的执行过程,我们在后面将会以另一节课来进行详细的讲解。

 
4、指令译码器ID 
用于对送入指令寄存器中的指令进行译码,所谓译码就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信号,CPU控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。


5、地址寄存器AR(16位) 
AR的作用是用来存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器PC产生,而指令中操作数所在的存储单元地址码,由指令的操作数给定。从上图中我们可以看到,地址寄存器AR通过地址总线AB与外部存储器相连。 
6、数据寄存器DR 
用于存放写入外部存储器或I/O端口的数据信息。可见,数据寄存器对输出数据具有锁存功能。数据寄存器与外部数据总线DB直接相连。 
7、程序状态字PSW 
用于记录运算过程中的状态,如是否溢出、进位等。 
例如,累加器A的内容83H,执行: 
ADD A,#8AH ;累加器A与立即数8AH相加,并把结果存放在A中。 
指令后,将产生和的结果为[1]0DH,而累加器A只有8位,只能存放低8位,即0DH,元法存放结果中的最高位B8。为些,在CPU内设置一个进位标志位C,当执行加法运算出现进位时,进位标志位C为1。 
8、时序部件 
由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号

转载于:https://my.oschina.net/u/3626804/blog/1821621

你可能感兴趣的:(mcs-51单片机CPU的内部结构及工作原理)