久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
求教單片機P1=P1|0x01的意思
[打印本頁]
作者:
kscheang
時間:
2021-2-19 22:31
標題:
求教單片機P1=P1|0x01的意思
求教一下各位
P1=P1|0x01 是什么意思?
我在百度只查到說是
(將P1與0x01按位或之后,再賦給P1)
可否請教詳細解釋
另外
P1=P1|0x01
這個 | 怎樣輸入
(我現在只用 Ctrl-C Ctrl-V 貼上)
我的程序如下:
#include<reg52.h>
unsigned int t;
unsigned char i;
void delay(int t)
{
while(t--);
}
void main ()
{
delay(30000);
P1 = 0x01;
while(1)
{
for(i=0;i<8;i++)
{
delay(30000);
P1<<=1;
P1=P1|0x01;
}
P1 = 0x01;
}
}
謝謝
作者:
aba_aba
時間:
2021-2-19 23:18
|:或操作,1|1=1、1|0=1、0|0=0
那個符號是shift+\,
‘\’在回車上方
0x01是32位16進制,但是內部仍然是2進制,
整體展開就是
0000 0000 0000 0000 0000 0000 0000 0001
所以P1<<=1就是
0000 0000 0000 0000 0000 0000 0000 0010
P1|0x01就是
0000 0000 0000 0000 0000 0000 0000 0010
0000 0000 0000 0000 0000 0000 0000 0001
這兩個按位|,結果就是
0000 0000 0000 0000 0000 0000 0000 0011
所以P1=P1|0x01
就是把0000 0000 0000 0000 0000 0000 0000 0011
賦值給P1,
最后for循環結束,
P1 = 0x01
將P1內的值重置
作者:
adject
時間:
2021-2-19 23:22
P1=P1|0x01 //P1 第0位置1 其他位不變
void main ()
{
delay(30000);
P1 = 0x01; //P1第0位置1 其他置0
while(1)
{
for(i=0;i<8;i++)
{
delay(30000);
P1<<=1; //P1等于P1左右一位
P1=P1|0x01; //P1 第0位置1 其他位不變
}
P1 = 0x01;
}
}
| shift+ \ 輸入
作者:
楊雪飛
時間:
2021-2-19 23:31
aba_aba 發表于 2021-2-19 23:18
|:或操作,1|1=1、1|0=1、0|0=0
那個符號是shift+\,
‘\’在回車上方
0x01是8位 16進制,
0 0 0 0 0 0 0 1 二進制的1
8 4 2 1 8 4 2 1
0x 0 1 十六進制的1
作者:
taotie
時間:
2021-2-19 23:55
咳咳咳~~~
有現成的程序員計算器不會用嗎
作者:
楊雪飛
時間:
2021-2-19 23:57
將P1與0x01按位或之后,再賦給
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 單片機的的P1口的八個管腳,
| | | | | | | |
0 0 0 0 0 0 0 1 管腳低電平為0,高電平為1,
8 4 2 1 8 4 2 1 轉換成十六進制,管腳對應下邊的8421,所有
的高電平相加就是16進制。比如最后一腳為高
電平 16進制就是01,0x是16進制數開頭。
那么與運算就是兩個數運算,有1就等1,三種情況1與1得1,1與0,還是得1,0與0,那就得0,所以叫有1得1,全0得0。
P1=0X01那也就是最上邊的情況,P1.0是高電平,其余的都是低電平。
接下來看你的程序
P1 = 0x01; 這個就好理解了吧,P1.7---P1.1都是低電平0,只有P1.0是高電平。
while(1) 整個紅字這一段是把高電平這個引腳的電平向左移8次。
{
for(i=0;i<8;i++) 就是這句,跟while和下邊P1<<=1;結合,運行8次
{
delay(30000);
P1<<=1;
P1=P1|0x01; 然后再與上0X01;那就是每移一次最右邊的腳都是高電平,這樣一來,那就是一個接一個的高電平向左移到最高位P1.7了。
}
P1 = 0x01; 這最后一句是當P1口全都是高電平了之后,再讓P1口只有P1.0為高電平。
}
}
這個這一段的意思就是如果P1口接的發光二極管(LED)的話,那就是依次從P1.0開始向最高位熄滅,然后再回到P1.0口熄滅狀態,或者相反的狀態。
|這個符號在回車的上邊,在51C語言里讀作“或”,是一個運算符,上邊講過他的運算法則了。
即: 1|1=1 1|0=1 0|0=0
作者:
kscheang
時間:
2021-2-20 01:11
謝謝各位
明白了, 是 新的賦值 和 舊的值 作 或 的相加 的意思
我的鍵盤 是兩個小的直豎, 不知道原來是 | shift+ \ 輸入
作者:
rayin
時間:
2021-2-20 08:16
P1=P1|0x01就是把P0的第1位(P1^0)置高電平
作者:
bsljling
時間:
2021-2-20 08:30
同為小白的初學者,謝謝各位的解答!
作者:
cn_zhx
時間:
2021-2-21 15:30
采用或的方式好處在于不會影響其他位的值,尤其是在多處需要對同一寄存器賦值時特別有用。
作者:
billaj
時間:
2021-2-21 16:33
我不是小白,也謝謝各大神的解答,每種答案都是一種思路,能分享真的是難能可貴,感謝
作者:
dddggg412
時間:
2021-2-21 19:46
樓主要看看C語言位運算相關,位運算是修改一個數的某些位而保留其他位。
作者:
zuiqf1978
時間:
2021-2-21 20:56
| 這個符號特別,在臺式鍵盤右手shift上邊
小臺機把這符號截成兩段
作者:
TTQ001
時間:
2021-2-22 06:06
這是邏輯位或運算,如果所有在或操作中的位均為0,則結果為0,如果或操作的位中至少一位為1,則結果為1。使用Shift +“ \”獲得| 標志。
作者:
紅葉夜夜笙歌
時間:
2021-3-2 15:57
P1|=(0x01<<N), 將P1第N位置1,其余位不變。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
成人高清在线
|
91中文字幕在线
|
免费日韩av网站
|
久久精品国产亚洲a
|
国外成人在线视频网站
|
久久成人一区
|
91麻豆产精品久久久久久
|
欧美日韩精品亚洲
|
麻豆视频在线免费看
|
手机看片1
|
伦理午夜电影免费观看
|
日韩视频a
|
欧美日韩高清
|
插插插干干干
|
一区二区三区精品视频
|
成人av高清
|
美女网站视频免费黄
|
国内激情av片
|
精品国产一区二区三区久久影院
|
亚洲 欧美 日韩在线
|
久久国产日韩
|
免费在线观看av片
|
国产1区
|
9久久婷婷国产综合精品性色
|
免费看爱爱视频
|
成人亚洲精品
|
日韩视频一区二区
|
亚洲成人av在线播放
|
一级aaaaaa毛片免费同男同女
|
99久久婷婷国产精品综合
|
av黄色在线
|
国产精品一区二区三区在线
|
性高朝久久久久久久3小时 av一区二区三区四区
|
国产精品福利网
|
亚洲视频一区
|
欧美专区在线
|
成人在线免费观看
|
精品入口麻豆88视频
|
97国产一区二区
|
久久夜夜
|
久草欧美
|