首先,msp430沒(méi)有P0口的,按P1口來(lái)說(shuō)明 P1OUT = 4; P1.2引腳輸出高電平,P1其余引腳輸出低電平; P1OUT |= 4;P1.2置高電平,P1其余引腳不變; P1OUT &= ~8;即P1OUT &= 0xf7,P1.3置低電平,P1其余引腳不變; |是或運(yùn)算符,&是與運(yùn)算符,具體請(qǐng)參考C語(yǔ)言應(yīng)用運(yùn)算符部分!
沒(méi)有P0口把就把P0當(dāng)成P1講解把 P1OUT=4=0100;所以P1.0,P1.1,P1.3輸入P1.2輸出 P1OUT |=4=0100 ;所以P1.2輸出 P1OUT &-=~8=-(1000)=0111;P1.3輸入 不一定對(duì),我自己的理解,我也剛看書,還望高手指點(diǎn) 下邊是 與 或 的詳細(xì)說(shuō)明,你仔細(xì)看看,這是我當(dāng)時(shí)學(xué)習(xí)的時(shí)候整理的 (1)位于&經(jīng)常用于測(cè)試某個(gè)位是1還是0,下面程序測(cè)試變量flag的第四位是1還是0. #define TEST 8 main() { int flag; ...; if ((flag&TEST)!=0) { printf("fourth bit is set"); } } 注意邏輯運(yùn)算符優(yōu)先級(jí)比關(guān)系運(yùn)算符優(yōu)先級(jí)低,必須加括號(hào)。 位與還常用來(lái)對(duì)操作數(shù)的某些位清零,或者保留某些位: a=a&0xffff 高16位清零,保留低 16位. (2)位或經(jīng)常用于把標(biāo)識(shí)符中某個(gè)位設(shè)置為1 #define SET 8 main() { int flag; ...; flag=flag | SET; //與flag |=SET相同 if((flag & TEST)!=0) { printf("flag is set") } } (3)求反運(yùn)算符經(jīng)常與位與運(yùn)算一起使用,用于關(guān)閉某個(gè)位。 x=8; flag=flag &~x; //flag &=~x 將把flag的第四位關(guān)閉。 (4)位移運(yùn)算符 << , >> 位移運(yùn)算經(jīng)常用于乘以或除以2的冪。 x=y<<1; 該語(yǔ)句把y左移一位,然后賦值給x,x的十進(jìn)制值等于y乘以2的值。 同理,右移一位等于y除以2的值
評(píng)論