51单片机的工作寄存器R0……R7在单片机实际工作中,是不是最多有7个可 ...
发布网友
发布时间:2024-03-16 03:14
我来回答
共3个回答
热心网友
时间:2024-03-19 00:06
通用寄存器
R0---R7
共4组,每组8个
地址从RAM00H---1FH
可以由PSW设置 见下
PSW是一个八位标志寄存器,用来存放指令执行后的有关状态。
由高位到低位
7.进位标志位Cy(Carry):用于表示加减运算过程中最高位A7(累加器最高位)有无进位或借位。
6.辅助进位位AC(Auxiliary Carry):用于表示加减运算时低4位(即A3)有无向高4位(即A4进位或借位。
5.用户标志位F0(Flag zero)
4&3.寄存器选择位RS1和RS0。用户通过改变RS1和RS0的状态可以方便地决定工作寄存器R0—R7的实际物理地址
2.溢出标志位OV(Overflow):
可以指示运算过程中是否发生了溢出,由机器执行指令过程中自动形成。
1.不使用
0.奇偶标志位P(Parity)
热心网友
时间:2024-03-19 00:12
51的工作寄存器一共有32个,为内存中的00H--1FH单元,分为4组,分别是0组00H--07H单元、1组08H--0FH单元、2组10H--17H单元、3组18H--1FH单元、,每组的8个单元分别对应R0--R7。
俚这四组中只有一组是当前工作寄存器,程序中使用的就是当前工作寄存器中的8个单元。当前工作寄存器是可以由我们编程序指定的,并且在程序中可以随时变换。在PSW中,的PSW4、PSW3两位组合的00、01、10、11四个状态,分别指定工作寄存器的0组、1组、2组、3组,只需要用指令改变PSW的这两位状态,就可以改变当前工作寄存器组。这样,实际上就是有32个工作寄存器可以选用。
热心网友
时间:2024-03-19 00:07
RS1 RS0 字节地址
0 0 0组寄存器 00H~07H
0 1 1组寄存器 08H~0FH
1 0 2组寄存器 10H~17H
1 1 3组寄存器 18H~1FH
RS1=PSW.4 RS0=PSW.3
通过更改RS0 RS1 位状态可随意切换4组寄存器