1、如果是51C语言的话直接提供了关键字 sbit 来完成这个定义
sbit P1_3 = P1^3;
2、如果是标准C语言的话就需要通过 @ 关键字指定IO口的物理地址
例如:bit P1_3 @ 0x93
3、再高级一点,应该用这样的定义,参考一下AVR单片机的头文件看看就明白了
volatile unsigned char PORT1 @ 0x90;
volatile bit P1_0 @ ((unsigned)&PORT1*8)+0;
volatile bit P1_1 @ ((unsigned)&PORT1*8)+1;
volatile bit P1_2 @ ((unsigned)&PORT1*8)+2;
volatile bit P1_3 @ ((unsigned)&PORT1*8)+3;
volatile bit P1_4 @ ((unsigned)&PORT1*8)+4;
volatile bit P1_5 @ ((unsigned)&PORT1*8)+5;
格式是正确的, 但后面的字节与位定义转换忘记了,不确定是不是正确的,好久不碰51了
sbit a = P2^3;
#define P2_3 P2^3
这样定义哦
想给P1口整体赋值用sbit led=P1;(后面的P必须大些);单个位定义的话直接用sbit 123=P2^3;就好了
sbit a=P2^3