|
將P1與0x01按位或之后,再賦給
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 單片機(jī)的的P1口的八個(gè)管腳,
| | | | | | | |
0 0 0 0 0 0 0 1 管腳低電平為0,高電平為1,
8 4 2 1 8 4 2 1 轉(zhuǎn)換成十六進(jìn)制,管腳對(duì)應(yīng)下邊的8421,所有
的高電平相加就是16進(jìn)制。比如最后一腳為高
電平 16進(jìn)制就是01,0x是16進(jìn)制數(shù)開頭。
那么與運(yùn)算就是兩個(gè)數(shù)運(yùn)算,有1就等1,三種情況1與1得1,1與0,還是得1,0與0,那就得0,所以叫有1得1,全0得0。
P1=0X01那也就是最上邊的情況,P1.0是高電平,其余的都是低電平。
接下來看你的程序
P1 = 0x01; 這個(gè)就好理解了吧,P1.7---P1.1都是低電平0,只有P1.0是高電平。
while(1) 整個(gè)紅字這一段是把高電平這個(gè)引腳的電平向左移8次。
{
for(i=0;i<8;i++) 就是這句,跟while和下邊P1<<=1;結(jié)合,運(yùn)行8次
{
delay(30000);
P1<<=1;
P1=P1|0x01; 然后再與上0X01;那就是每移一次最右邊的腳都是高電平,這樣一來,那就是一個(gè)接一個(gè)的高電平向左移到最高位P1.7了。
}
P1 = 0x01; 這最后一句是當(dāng)P1口全都是高電平了之后,再讓P1口只有P1.0為高電平。
}
}
這個(gè)這一段的意思就是如果P1口接的發(fā)光二極管(LED)的話,那就是依次從P1.0開始向最高位熄滅,然后再回到P1.0口熄滅狀態(tài),或者相反的狀態(tài)。
|這個(gè)符號(hào)在回車的上邊,在51C語言里讀作“或”,是一個(gè)運(yùn)算符,上邊講過他的運(yùn)算法則了。
即: 1|1=1 1|0=1 0|0=0 |
評(píng)分
-
查看全部評(píng)分
|