一、运算器
运算器以完结二进制的算术/逻辑运算部件ALU为中心,再加上暂存器TMP、累加器ACC、寄存器B、程序状况标志寄存器PSW及布尔处理器。累加器ACC是一个八位寄存器,它是CPU中作业最频频的寄存器。在进行算术、逻辑运算时,累加器ACC往往在运算前暂存一个操作数(如被加数),而运算后又保存其成果(如代数和)。寄存器B首要用于乘法和除法操作。标志寄存器PSW也是一个八位寄存器,用来寄存运算成果的一些特征,如有无进位、借位等。其每位的详细含义如下所示。PSW CY AC FO RS1 RS0 OV - P对用户来讲,最关怀的是以下四位。
1?进位标志CY(PSW?7)。它表明了运算是否有进位(或借位)。假如操作成果在最高位有进位(加法)或许借位(减法),则该位为1,不然为0。
2?辅佐进位标志AC。又称半进位标志,它反映了两个八位数运算低四位是否有半进位,即低四位相加(或减)有否进位(或借位),如有则AC为1状况,不然为0。
3?溢出标志位OV。MCS-51反映带符号数的运算成果是否有溢出,有溢出时,此位为1,不然为0。
4?奇偶标志P。反映累加器ACC内容的奇偶性,假如ACC中的运算成果有偶数个1(如11001100B,其间有4个1),则P为0,不然,P=1。
PSW的其它位,将在今后再介绍。由于PSW寄存程序履行中的状况,故又名程序状况字?运算器中还有一个按位(bit)进行逻辑运算的逻辑处理机(又称布尔处理机)。其功用在介绍位指令时再阐明。
二、操控器
操控器是CPU的神经中枢,它包含守时操控逻辑电路、指令寄存器、译码器、地址指针DPTR及程序计数器PC、仓库指针SP等。这儿程序计数器PC是由16位寄存器构成的计数器。要单片机履行一个程序,就有必要把该程序按次序预先装入存储器ROM的某个区域。单片机动作时应按次序一条条取出指令来加以履行。因而,有必要有一个电路能找出指令地点的单元地址,该电路便是程序计数器PC。当单片机开端履行程序时,给PC装入第一条指令地点地址,它每取出一条指令(如为多字节指令,则每取出一个指令字节),PC的内容就主动加1,以指向下一条指令的地址,使指令能次序履行。只有当程序遇到搬运指令、子程序调用指令,或遇到中止时(后边将介绍),PC才转到所需求的当地去。8051 CPU碢C指定的地址,从ROM相应单元中取出指令字节放在指令寄存器中寄存,然后,指令寄存器中的指令代码被译码器译成各种形式的操控信号,这些信号与单片机时钟振荡器发生的时钟脉冲在守时与操控电路中相结合,构成按一守时刻节拍改变的电平缓时钟,即所谓操控信息,在CPU内部和谐寄存器之间的数据传输、运算等操作。
三、存储器
存储器是单片机的又一个重要组成部分,图6给出了一种存储容量为256个单元的存储器结构示意图。其间每个存储单元对应一个地址,256个单元共有256个地址,用两位16进制数表明,即存储器的地址(00H~FFH)。存储器中每个存储单元可寄存一个八位二进制信息,通常用两位16进制数来表明,这便是存储器的内容。存储器的存储单元地址和存储单元的内容是不同的两个概念,不能混杂。
一、程序存储器
程序是操控计算机动作的一系列指令,单片机只知道由“0”和“1”代码构成的机器指令。如前述用助记符编写的指令MOV A,#20H,换成机器知道的代码74H、20H:(写成二进制便是01110100B和00100000B)。在单片机处理问题之前有必要事先将编好的程序、表格、常数汇编成机器代码后存入单片机的存储器中,该存储器称为程序存储器。程序存储器能够放在片内或片外,亦可片内片外一起设置。由于PC程序计数器为16位,使得程序存储器可用16位二进制地址,因而,表里存储器的地址最大可从0000H到FFFFH。8051内部有4k字节的ROM,就占用了由0000H~0FFFH的最低4k个字节,这时片外扩大的程序存储器地址编号应由1000H开端,假如将8051作为8031运用,不想运用片内4kROM,全用片外存储器,则地址编号仍可由0000H开端。不过,这时应使8051的第{31}脚(即EA脚)坚持低电平。当EA为高电平时,用户在0000H至0FFFH范围内运用内部ROM,大于0FFFH后,单片机CPU主动拜访外部程序存储器。
二、数据存储器
单片机的数据存储器由读写存储器RAM组成。其最大容量可扩展到64k,用于存储实时输入的数据。8051内部有256个单元的内部数据存储器,其间00H~7FH为内部随机存储器RAM,80H~FFH为专用寄存器区。实际运用时应首要充分运用内部存储器,从运用视点讲,搞清内部数据存储器的结构和地址分配是十分重要的。由于将来在学习指令系统和程序设计时会常常用到它们。8051内部数据存储器地址由00H至FFH共有256个字节的地址空间,该空间被分为两部分,其间内部数据RAM的地址为00H~7FH(即0~127)。而用做特别功用寄存器的地址为80H~FFH。在此256个字节中,还拓荒有一个所谓“位地址”区,该区域内不光可按字节寻址,还可按“位(bit)”寻址。关于那些需求进行位操作的数据,能够寄存到这个区域。从00H到1FH组织了四组作业寄存器,每组占用8个RAM字节,记为R0~R7。终究选用那一组寄存器,由前述标志寄存器中的RS1和RS0来选用。在这两位上放入不同的二进制数,即可选用不同的寄存器组。
三、特别功用寄存器