如何解決51單片機(jī)通用寄存器Rn不夠用的問題?
2020-05-19 12:01:49
625
51的工作寄存器一共有32個,為內(nèi)存中的00H--1FH單元,分為4組,分別是0組00H--07H單元、1組08H--0FH單元、2組10H--17H單元、3組18H--1FH單元,每組的8個單元分別對應(yīng)R0--R7。
這四組中只有一組是當(dāng)前工作寄存器,程序中使用的就是當(dāng)前工作寄存器中的8個單元。當(dāng)前工作寄存器是可以由我們編程序指定的,并且在程序中可以隨時變換。在PSW中,的PSW4、PSW3兩位組合的00、01、10、11四個狀態(tài),分別指定工作寄存器的0組、1組、2組、3組,只需要用指令改變PSW的這兩位狀態(tài),就可以改變當(dāng)前工作寄存器組。這樣,實際上就是有32個工作寄存器可以選用。就是這樣的了:
RS1 RS0 字節(jié)地址
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 位狀態(tài)可隨意切換4組寄存器。
標(biāo)簽:
pcba