中央处理器(CPU)是单片机的核心,其主要功能是产生各种控制信号,根据程序中每一条指令的具体功能,控制寄存器和输入/输出接口的数据传送,进行数据的算术运算、逻辑运算以及位操作等。MCS-51系列单片机的CPU字长是8位,能处理8位二进制数,也可处理一位二进制数。单片机的CPU从功能上一般分为运算器和控制器两部分。
1.控制器
控制器由程序计数器PC、指令寄存器IR、暂存器TMP、指令译码器ID、数据指针DPTR,以及定时与逻辑控制电路等组成,其功能是对来自ROM的指令进行译码,通过定时电路,在规定的时刻发出各种操作所需的内部和外部控制信号,使各部分协调工作,完成指令所规定的功能。
(1)程序计数器
程序计数器PC(Program Counter)是一个16位的专用寄存器,用来存放下一条指令的地址,具有自动加1的功能。CPU在取指令时,将PC中的地址信息送到地址总线上,从ROM中取出一个指令码后,PC内容自动加1,指向ROM的下一个单元,从而实现指令的顺序执行。
图1-9 MCS-51单片机结构框图
PC用来指示程序的执行位置。在顺序执行程序时,单片机每执行一条指令,PC自动加1,指向下一条待取指令的存储单元的16位地址,即CPU总是把PC的内容作为地址,根据该地址从ROM中取出指令码或包含在指令中的操作数。每取出1B后,PC的内容自动加1,为读取下1B做好准备。MCS-51系列单片机的寻址范围为64KB,对应于PC中的数据范围0000H~FFFFH。单片机复位时,PC自动清零,即装入地址0000H,使单片机在复位后,程序从ROM的0000H单元开始执行。
(2)指令寄存器
指令寄存器IR(Instruction Register)是一个8位寄存器,用于暂存待执行的指令,等待译码。
(3)暂存器
暂存器TMP用来暂存由数据总线DB(Data Bus)或通用寄存器送来的操作数,并把它作为另一个操作数。
(4)指令译码器
指令译码器ID(Instruction Decoder)是CPU的一部分,用于对指令寄存器中的指令进行译码,将存储在指令寄存器或微程序指令中的二进制代码转换为能控制CPU其他部分的控制信号。译码器的输出信号经定时电路定时产生完成该指令操作所需要的各种控制信号。
(5)数据指针
数据指针DPTR(Data Pointer)是一个16位的专用地址指针寄存器,主要用来存放16位地址,作为间址寄存器访问64KB的数据存储器和I/O接口及程序存储器,由DPH(高8位)和DPL(低8位)两个独立的特殊功能寄存器组成,地址分别是83H和82H。(www.xing528.com)
DPTR与PC不同,DPTR有自己的地址,可以进行读写操作,而PC没有地址,不能对其进行读写操作,但可以通过转移、调用、返回指令改变其内容,从而实现程序的转移。
2.运算器
运算器包括算术逻辑单元ALU、累加器ACC、程序状态字PSW、BCD码运算电路、通用寄存器B和一些专用寄存器及位处理逻辑电路等组成。运算器以ALU为中心,主要进行算术和逻辑运算,如对数据进行加、减、乘、除等算术运算及“与”、“或”、“异或”等逻辑运算。
(1)算术逻辑单元
算术逻辑单元ALU(Arithmetic Logic Unit)由加法器和其他逻辑电路等组成,完成数据的算术逻辑运算、循环移位、位操作等。参加运算的两个操作数,一个由A通过暂存器2提供,另外一个由暂存器1提供,运算结果送回A,状态送至PSW。
(2)累加器
累加器ACC(Accumulator)是一个8位特殊功能寄存器,通过暂存器与ALU相互传送信息,运算前提供一个操作数,运算后存放运算结果。
(3)程序状态字
程序状态字PSW(Program Status Word)也是一个8位的特殊功能寄存器,用于存储指令执行后的相关状态信息,如进位、溢出等情况。
(4)通用寄存器和专用寄存器
暂存器用来存放中间结果,通用寄存器B在乘法和除法指令中提供一个操作数,其他指令中可用作通用寄存器。
(5)位处理逻辑电路
位处理逻辑电路是单片机的一个特殊组成部分,具有相应的指令系统,可提供17条位操作指令。硬件上有自己的“位累加器”和位寻址RAM、I/O接口空间,方便了控制系统中开关量的处理。
单片机能处理布尔操作数,能对位地址空间中的位直接进行清零、取反等操作。这种功能提供了把逻辑式(随机组合逻辑)直接变为软件的简单方法,不需要过多的数据传送、字节屏蔽和测试分支,就能实现复杂的组合逻辑功能。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。