C程序怎么定义一个变量为单片机P*.*口

2024-12-26 02:55:45
推荐回答(4个)
回答1:

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了

回答2:

sbit a = P2^3;
#define P2_3 P2^3

这样定义哦

回答3:

想给P1口整体赋值用sbit led=P1;(后面的P必须大些);单个位定义的话直接用sbit 123=P2^3;就好了

回答4:

sbit a=P2^3