CPU包括运算器和控制器两个部分
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CPU包括运算器和控制器两个部分。
MCS-51单片机的运算器可实现多种数据处理工作,具有二进制数据和BCD码数据的处理能力,其布尔运算能力尤其强大。运算器由算术逻辑单元ALU、累加器A、寄存器B和程序状态字PSW组成。
算术逻辑单元ALU(Arithmetic / Logic Unit)可实现8位二进制数据的加、减、乘、除等算术运算和逻辑与、或、异或、清零、取反等逻辑运算,并可实现数据传送、循环移位、测试跳转等功能。MCS-51单片机的算术逻辑单元还具有很强的位处理能力,可以对位变量(bit)进行数据传送、置位、清零、取反、测试跳转及逻辑与、或等运算。
累加器A是一个8位的寄存器,是CPU中使用最为频繁的寄存器。在算术运算和逻辑运算指令中一般用累加器A来存放参与运算的一个操作数和运算结果,一些特殊的运算如移位、取反等只能对累加器A中的数据进行。
寄存器B也是一个8位的寄存器,主要用于配合累加器A 实现乘法和除法运算。在乘法运算中,寄存器B存放一个乘数和乘积的高字节。
控制器由指令寄存器IR、指令译码器ID、程序计数器PC、堆栈指针SP、数据指针DPTR等组成。控制器本质上是复杂的时序控制电路,CPU从程序存储器取得指令后放入指令寄存器,然后用指令译码器对指令进行译码,并发出各种控制信号,从而使计算机的各硬件部分按照时钟信号的节拍协调一致、互相配合,最终实现各种功能。
程序计数器PC(Program Counter)是一个16位的寄存器,控制着程序的执行顺序。PC中始终存放着下一条将要执行的指令的存储首地址。一条指令执行完成后,CPU自动从PC指向的下一条指令的存储地址取出一个字节,然后PC的值自动加1,指向下一个存储位置。如果当前执行的指令改变了PC的值,程序运行的流向也就发生了变化,这就是程序跳转。单片机复位时,PC的值被清0,所以复位后执行的第一条指令总是存放在ROM中地址为0的存储单元。
数据指针DPTR(Data Pointer)是一个16位的寄存器。MCS-51单片机外部地址总线宽度是16位的,当访问外部数据存储器或程序存储器时,可以用DPTR来进行寻址。DPTR的高字节寄存器用DPH来表示,低字节寄存器用DPL来表示,DPTR即可以作为一个16位的寄存器进行存取,也可以作为两个独立的8位寄存器进行操作。复位后DPTR的值为0000H。在一些新型的单片机中,为了提高C语言
程序的执行效率,实现了双DPTR或多DPTR。