单片机开发从入门到精通(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.2 CPU

CPU(中央处理器)是单片机的核心,主要功能是产生各种控制信号,根据程序中每一条指令的具体功能,控制寄存器和I/O口的数据传送,进行数据的算术运算、逻辑运算以及位操作等处理。MCS-51系列单片机的CPU字长是8位,能处理8位二进制数,也可处理1位二进制数。单片机的CPU从功能上一般分为控制器和运算器两部分。

1.控制器

控制器由程序计数器(PC)、指令寄存器(IR)、指令译码器(ID)、定时控制与条件转移逻辑电路等组成,其功能是对来自ROM中的指令进行译码,通过定时电路,在规定的时刻发出各种操作所需的内部和外部控制信号,使各部分协调工作,完成指令所规定的功能。

(1)程序计数器

程序计数器(PC)是一个16位的专用寄存器,用来存放下一条指令的地址,具有自动加1的功能。CPU在取指令时,将PC中的地址信息送到地址总线上,从ROM中取出一个指令码后,PC内容自动加1,指向ROM的下一个单元,从而实现指令的顺序执行。

PC用来指示程序的执行位置。在顺序执行程序时,单片机每执行一条指令,PC自动加1,指向下一条待取指令的存储单元的16位地址,即CPU总是把PC的内容作为地址,根据该地址从ROM中取出指令码或包含在指令中的操作数。每取完一个字节后,PC的内容自动加1,为读取下一个字节做好准备。MCS-51系列单片机的寻址范围为64KB,对应于PC中的数据范围是0000H~FFFFH。单片机复位时,PC自动清0,即装入地址0000H,使单片机在复位后,程序从ROM的0000H单元开始执行。

(2)指令寄存器

指令寄存器(IR)是一个8位寄存器,用于暂存待执行的指令,等待译码。

(3)暂存器

暂存器(TMP)用来暂存由数据总线(DB)或通用寄存器送来的操作数,并把它作为另一个操作数。

(4)指令译码器

指令译码器(ID)是CPU的一部分,用于对指令寄存器中的指令进行译码,将存储在指令寄存器或微程序指令中的二进制代码转换为能控制CPU其他部分的控制信号。指令译码器的输出信号经定时电路产生完成该指令操作所需要的各种控制信号。

(5)数据指针

数据指针(DPTR)是一个16位的专用地址指针寄存器,主要用来存放16位地址,作为间址寄存器访问64KB的数据存储器和I/O口及程序存储器,由DPH(高8位)和DPL(低8位)两个独立的特殊功能寄存器组成,地址分别是83H和82H。

DPTR与PC不同,DPTR有自己的地址,可以进行读写操作,而PC没有地址,不能对它进行读写操作,但可以通过转移、调用、返回指令改变其内容,从而实现程序的转移。

2.运算器

运算器主要进行算术和逻辑运算。运算器由算术逻辑单元(ALU)、累加器(ACC)、程序状态字(PSW)、BCD码运算电路、通用B寄存器和一些专用寄存器及位处理逻辑电路等组成。

(1)算术逻辑单元

算术逻辑单元(ALU)由加法器和其他逻辑电路等组成,完成数据的算术逻辑运算、循环移位、位操作等,参加运算的两个操作数,一个由A通过暂存器2提供,另外一个由暂存器1提供,运算结果送回A,状态送PSW。

(2)累加器

累加器(ACC)是一个8位特殊功能寄存器,简称A,通过暂存器与ALU相互传送信息,运算前提供一个操作数,运算后存放运算结果。

(3)程序状态字

程序状态字(PSW)也是一个8位的特殊功能寄存器,用于存储指令执行后的相关状态信息,如进位、溢出等情况。

(4)其他部件

暂存器用来存放中间结果,B寄存器在乘法和除法指令中提供一个操作数,在其他指令中可用作通用寄存器。

(5)位处理器

位处理器是单片机的一个特殊组成部分,具有相应的指令系统,可提供17条位操作指令。硬件上有自己的“位累加器”和位寻址RAM、I/O口空间,方便了控制系统中开关量的处理。

单片机能处理布尔操作数,能对位地址空间中的位直接寻址,并进行清零、取反等操作。这种功能提供了把逻辑式(随机组合逻辑)直接变为软件的简单方法,不需要过多的数据传送、字节屏蔽和测试分支,就能实现复杂的组合逻辑功能。