你的推测是正确的,因为MSP430不能对位操作,所以要这样子定义。但是我觉得像他这样子写不大明了,如果是我,我会这么写:
#include
#define RS (1<<5)
#define RS_CLR P5OUT &= ~RS //RS置低
#define RS_SET P5OUT |= RS //RS置高
MSP430F149的官方例程有很多,我这里有LT-1B开发板的配套程序,在此先感谢力天电子分享给我们的资料。已发送到你的邮箱,请注意查收
P55 只是个宏定义,只是数字"5" 的一个替代符号,建议你巩固下C语言吧.
将P55宏展开上面的代码就是:
#define RS_CLR P5OUT &= ~(1 << 5) //将 P5OUT 的第5位清0
#define RS_SET P5OUT |= (1 << 5) //将 P5OUT 的第5位置1
P5OUT是定义在msp430x14x.h文件中的,表示了一个寄存器,其值决定了管脚的输出电平
上面的代码主要是定义了RS_CLR和RS_SET ;
RS_CLR 是将P5口的第5位清零,RS_SET 是将第5位置1;
也就是说,执行"RS_CLR;"相当于C51里的"P55 = 0;"执行"RS_SET;"相当于C51里的"P55 = 1;"
例如:
#include
#define P55 5
#define RS_CLR P5OUT &= ~(1 << P55) //RS置低
#define RS_SET P5OUT |= (1 << P55) //RS置高
main(){
...;//初始化的代码
P5DIR |= (1<
RS_SET ; //P55 = 1;
...;
}