MSP430的C语言简单编程问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 01:16:13
P0OUT = 4;
P0OUT |= 4;
P0OUT &= ~8;

这三个语句有什么区别啊,还请赐教,谢谢

别忽悠我哦~
那|和&是干嘛用的啊,还请赐教~

首先,msp430没有P0口的,按P1口来说明
P1OUT = 4; P1.2引脚输出高电平,P1其余引脚输出低电平;
P1OUT |= 4;P1.2置高电平,P1其余引脚不变;
P1OUT &= ~8;即P1OUT &= 0xf7,P1.3置低电平,P1其余引脚不变;

|是或运算符,&是与运算符,具体请参考C语言应用运算符部分!

没有P0口把就把P0当成P1讲解把
P1OUT=4=0100;所以P10,P11,P13输入P12输出
P1OUT |=4=0100 ;所以P12输出
P1OUT &-=~8=-(1000)=0111;P13输入
不一定对,我自己的理解,我也刚看书,还望高手指点

下边是 与 或 的详细说明,你仔细看看,这是我当时学习的时候整理的
(1)位于&经常用于测试某个位是1还是0,下面程序测试变量flag的第四位是1还是0.
#define TEST 8
main()
{
int flag;
...;
if ((flag&TEST)!=0)
{
printf("fourth bit is set");
}
}
注意逻辑运算符优先级比关系运算符优先级低,必须加括号。
位与还常用来对操作数的某些位清零,或者保留某些位: a=a&0xffff 高16位清零,保留低
16位.

(2)位或经常用于把标识符中某个位设置为1
#define SET 8
main()
{
int flag;
...;
flag=flag | SET; //与flag |=SET相同
if((flag & TEST)!=0)
{
printf("flag is set")
}
}

(3)求反运算符经常与位与运算一起使用,用于关闭某个位。