1.单片机的内部结构。 8051单片机的内部总体结构如图3所示。按其功能分,主要有运算器、控制器、存储器、专用寄存器、中断系统、I/O接口等几部分。
(1)运算器。
运算器由算术逻辑运算部件(ALU)、累加器(ACC)、暂存器、程序状态字寄存器(PSW)等组成。为了提高数据处理和位操作功能,片内增加了一个通用寄存器B和一些专用寄存器,还增加了位处理逻辑电路的功能。
算术逻辑运算部件(AIU)由加法器和其他逻辑电路组成,用于对数据进行算术四则运算和逻辑运算、移位操作、位操作等。两个操作数由ACC通过暂存器2输入,另一个由暂存器1输入,运算结果的状态送PSW。
累加器ACC是8位寄存器,简称为A,它通过暂存器与ALU相连,用来存一个操作数或中间结果。它是CPU工作中使用最频繁的寄存器。
程序状态字寄存器PW是8位专用寄存器,用于存程序运行中的各种状态信息,如溢出、进位、奇偶等。它可以按字节操作,也可进行位寻址。
通用寄存器B是8位的通用寄存器,主要用于乘除运算。
2)控制器。
控制器主要由指令寄存器(IP)、指令译码器(I)及定时逻辑控制电路等组成。
指令寄存器(IP)是8位寄存器,用于暂存待执行指令,等待译码。
指令译码器(ID)对指令寄存器中的操作码部分进行译码,并输出相应的操作信号。
定时逻辑控制电路即控制矩阵,在时钟电路OSC的配合下产生指令相对应的控制字控制脉冲),控制相应的部件工作。
(3)专用寄存器。
8051单片机中还设有一些专用寄存器,如程序计数器(PC)、地址指针寄存器(DPTR)、缓冲寄存器、程序地址寄存器等。
程序计数器PC是16位专用寄存器,用于提供指令存储单元的地址,它在CIK脉冲作用下,具有自动加1的功能,产生并存放下一条指令地址。在CPU取指时,PC内容送入地址总线,从存储器中取出指令后,PC内容自动加1,指向下一条指令,使程序按顺序执行。
地址指针寄存器(DPTR)也是一个16位专用寄存器,用来存放片外数据存储器的16位地址码。
缓冲器(缓冲寄存器)用于暂存指令或数据。
程序地址寄存器用于暂存待访问的程序存储器程序存储单元的地址。
8051单片机内部还包括两个16位定时/计数器、中断系统、串行口和4个并行口等这些功能器件与电路的结构与原理在后面专门予以介绍。
2.单片机的工作过程。
开机后,单片机时钟电路就产生时序信号脉冲(CIK),使机器按CIK脉冲的节拍有序地工作。单片机的工作过程大致如下:
1)取指过程。首先,程序存储器(PC)将首条指令存储单元的地址码传送给程序地址寄存器,然后从程序存储器(ROM)中取出首条指令代码,并将其送入指令寄存器(IP)。
此后,PC在CLK的作用下加1,产生下一条指令的地址。
2)产生控制字过程。送入IP中的指令代码由指令译码器(I)译成相应的指令动作(指令线高电平),并通过定时控制电路(控制矩阵)产生相应的控制字(控制脉冲),控制机器进行相应的操作。
3)运算与存取数据过程。运算器在控制脉冲的作用下进行相应的运算与存取操作。
4)数据的输入/输出过程。如果数据需要输出或输入,则控制器会根据控制指令产生相应的控制字控制相关的接口工作,将数据输出片外或将片外的数据传入片内总线。