51单片机C语言工作寄存器问题
在C语言里如何调用R0--R7,我看了头文件里面没有定义,是得自己定义吗?如何使用第二组寄存器?...
在C语言里如何调用R0--R7,我看了头文件里面没有定义,是得自己定义吗?如何使用第二组寄存器?
展开
1个回答
展开全部
头文件里定义了PSW
当PSW中的RS1、RS0发生变化时对应的工作区发生相应的变化,对应关系为:
00:工作区0,R0~R7对应地址00H~07H
01:工作区1,R0~R7对应地址08H~0FH
10:工作区2,R0~R7对应地址10H~17H
11:工作区3,R0~R7对应地址18H~1FH
RS1/RS0是靠软件来设置的,你可以根据不同情况自由设置,一般中断时用得较多,避免影响正常流程下的工作寄存器值。
当PSW中的RS1、RS0发生变化时对应的工作区发生相应的变化,对应关系为:
00:工作区0,R0~R7对应地址00H~07H
01:工作区1,R0~R7对应地址08H~0FH
10:工作区2,R0~R7对应地址10H~17H
11:工作区3,R0~R7对应地址18H~1FH
RS1/RS0是靠软件来设置的,你可以根据不同情况自由设置,一般中断时用得较多,避免影响正常流程下的工作寄存器值。
追问
那如何使用R0--R7呢?我直接写
R0=0xff;
KEIL提示没有定义
追答
C语言下,主要在中断服务子函数用到这个寄存器,定义子函数时用using x语句,剩下的编译器为你处理。
不知你赋值要干啥
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询