您好,欢迎访问一九零五行业门户网

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、控制器等部件组成。
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、时序部件
由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号。
其它类似信息

推荐信息