由图2-1可见,AT89S51的CPU是由运算器和控制器构成的。
运算器
运算器主要用来对操作数进行算术、逻辑和位操作运算。主要包括算术逻辑运算单元ALU、累加器A、程序状态字寄存器PSW、位处理器及两个暂存器等。
1.算术逻辑运算单元ALU
ALU的功能十分强大,它不仅可对8位变量进行逻辑与、逻辑或、逻辑异或、循环、求补和清0等基本操作,还可以进行加、减、乘、除等基本算术运算。AT89S51的ALU还具有位操作功能,它可对位(bit)变量进行位处理,如置1、清0、求补、测试转移及逻辑与、或等操作。
2.累加器A累加器A是CPU中使用最频繁的一个8位寄存器,有些场合下必须写为ACC。“A”与“Acc”在书写上的差别,将在第3章介绍。
累加器的作用如下:
(1)累加器A是ALU单元的输人数据源之一,它又是ALU运算结果的存放单元。
(2) CPU中的数据传送大多都通过累加器A,故累加器A又相当于数据的中转站。为解决累加器结构所带来的“瓶颈堵塞”问题,AT89S51增加了一部分可以不经过累加器的传送指令。
累加器A的进位标志Cy是特殊的,因为它同时又是位处理机的位累加器。
3.程序状态字寄存器PSW
AT89S51的程序状态字寄存器PSW(Program Status Word)位于单片机片内的特殊功能寄存器区,字节地址为DOH。PSW的不同位包含了程序运行状态的不同信息,其中4位保存当前指令执行后的状态,以供程序查询和判断。PSW的格式如图2-3所示。
PSW中各个位的功能如下:
(1) Cy(PSW.7)进位标志位:Cy也可写为C。在执行算术运算和逻辑运算指令时,若有进位/借位,Cy=l;否则,Cy=0。在位处理器中,它是位累加器。
(2) Ac(PSW.6)辅助进位标志位:Ac标志位在BCD码运算时,用作十进位调整。即当D3位向D4位产生进位或借位时,Ac=l;否则,Ac=0。
(3) FO(PSW.5)用户设定标志位:由用户使用的一个状态标志位,可用指令来使它置1或清0,也可由指令来测试该标志位,根据测试结果控制程序的流向。编程时,用户应充分地利用该标志位。
(4) RS1、RSO (PSW.4、PSW. 3)4组工作寄存器区选择控制位1和位O:这两位用来选择片内RAM区的4组工作寄存器区中的某一组为当前工作寄存区,RS1、RSO与所选择的4组工作寄存器区的对应关系见表2-2。
表2-2 RSI、RSO与4组工作寄存器区的对应关系
(5) OV(PSW.2)溢出标志位:当执行算术指令时,用来指示运算结果是否产生溢出。如果结果产生溢出,OV=1;否则,OV=0。
(6) PSW.1位:保留位,未用。
(7) P(PSW.0)奇偶标志位:该标志位表示指令执行完时,累加器A中1的个数是奇数还是偶数。
P=1,表示A中1的个数为奇数。
P=0,表示A中1的个数为偶数。
此标志位对串行通信中的串行数据传输有重要的意义。在串行通信中,常用奇偶检验的方法来检验数据串行传输的可靠性。
控制器
控制器的主要任务是识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动协调地工作。
控制器主要包括程序计数器、指令寄存器、指令译码器、定时及控制逻辑电路等。其功能是控制指令的读入、译码和执行,从而对单片机的各功能部件进行定时和逻辑控制。
程序计数器PC是控制器中最基本的寄存器,它是一个独立的16位计数器,是不可访问的,即用户不能直接使用指令对PC进行读/写。当单片机复位时,PC中的内容为OOOOH,即CPU从程序存储器0000H单元取指令,开始执行程序。
PC的基本工作过程是:CPU读指令时,PC的内容作为所取指令的地址发送给程序存储器,然后程序存储器按此地址输出指令字节,同时PC自动加1,这也就是为什么PC被称为程序计数器的原因。
PC中内容的变化轨迹决定了程序的流程。由于PC是不可访问的,当顺序执行程序时自动加1;执行转移程序或子程序、中断子程序调用时,由运行的指令自动将其内容更改成所要转移的目的地址。
程序计数器的计数宽度决定了程序存储器的地址范围。AT89S51中的PC位数为16位,故可对64 KB(=2的16次方B)的程序存储器进行寻址。
本文关键字:暂无联系方式51单片机,单片机-工控设备 - 51单片机
上一篇:AT89S51存储器的结构