成就更好的自己
AT89S51的CPU由运算器和控制器构成;
一.运算器
算数逻辑运算单元ALU
ALU功能强大,可以进行各种数学运算和逻辑运算,此外还具有位操作功能;
累加器A
累加器A在特殊功能寄存器区,但是却是CPU使用最频繁的一个8位寄存器
(1).累加器A是ALU单元的输入数据源之一,也是ALU运算后结果的存放单元;
(2).累加器A的进位标志位Cy(位于程序状态字寄存器PSW中)非常特殊,因为它同时又是位处理器的位累加器;
程序状态字寄存器PSW
程序状态字寄存器PSW位于特殊功能寄存器区,地址字节D0H;其中存储了包含程序运行过程的各种信息,如图:
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Cy | Ac | F0 | RS1 | RS0 | OV | --- | P |
(1)Cy(PSW.7)PSW.7是Cy即C,来源于最近一次算术指令或逻辑指令执行时软硬件的改写。
(2)Ac(PSW.6) 辅助进位标志位,用于BCD码的十进制调整运算。当低四位向高四位借进位时Ac被置1,否则清0。此位也可和DA指令结合起来用。
(3)F0(PSW.5)用户使用的状态标志位。这个你可以任意使用。
(4)RS1、RS0(PSW.4、PSW.3):4组工作寄存器区选择控制位1和位0。
RS1 | RS0 | 所选的4组工作寄存器 |
0 | 0 | 0区;地址00H~07H |
0 | 1 | 1区;地址08H~0FH |
1 | 0 | 2区;地址10H~17H |
1 | 1 | 3区;地址18H~1FH |
(5)OV(PSW.2)溢出标志位 在执行算术指令时,指示运算是否产生溢出。
溢出OV=1,否则OV=0;
(6)PSW.1位: 保留位,未用。
(7)P(PSW.0)奇偶标志位
P=1,A中“1”的个数为奇数
P=0,A中“1”的个数为偶数
二.控制器
控制器主要包括程序计数器PC,指令寄存器,指令译码器,定时及控制电路;
其中最主要的是程序计数器PC;
当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。
程序计数器的宽度决定了程序寄存器的地址范围,AT89S51的PC位数为16位;
故可以对64KB的程序进行寻址。