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