欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 51單片機P2口賦值問題 [打印本頁]

作者: jhz931920    時間: 2020-4-21 11:09
標題: 51單片機P2口賦值問題
請教一個問題:

#define motor(x) {p2&=0xf0;p2|=x},這是怎么給P2口賦值的,謝謝!

作者: 一天會    時間: 2020-4-21 11:37
你確定是這個端口嗎
作者: 一天會    時間: 2020-4-21 11:37
我覺得這個端口不對吧
作者: jhz931920    時間: 2020-4-21 15:15
主函數(shù)中調(diào)用motor(x),x=0x01等,該程序是驅(qū)動步進電機的,分別給不同相供電
作者: gongnn    時間: 2020-4-21 20:39
這個得結合電路連接了,看似是P2低位四位驅(qū)動輸出,先清0,再賦值的,如果是那種玩具電機,就逐位為1.
作者: 權威人物    時間: 2020-4-22 11:58
在51中一般你這個是P2端口組,代表這P2^0到P2^7的8個端口,p2&=0xf0,把0xf0轉變?yōu)槎M制為11110000再與P2的8個IO口做位與運算,是把P2^0到P2^3四個IO口賦值為0,P2^4到P2^7端口不變,p2|=x就是將X的值賦值給P2的8個IO,x為1字節(jié)=8個比特,每個比特代表一個IO
作者: jhz931920    時間: 2020-4-22 17:21
十分感謝各位回復!謝謝!
作者: 紅塵有你    時間: 2020-4-22 19:22
#define motor(x) {p2&=0xf0;p2|=x},
等于
#define motor(x)  {p2=p2&0xf0;p2=p2|x},
p2&0xf0低4位 置0,
作者: 紅塵有你    時間: 2020-4-22 22:58
權威人物 發(fā)表于 2020-4-22 11:58
在51中一般你這個是P2端口組,代表這P2^0到P2^7的8個端口,p2&=0xf0,把0xf0轉變?yōu)槎M制為11110000再與P2 ...

p2|=x就是將X的值賦值給P2的8個IO,----這一句是有誤的。
p2|=x相當:p2=p2|x   p2與x進行或運算再賦值給p2.
作者: jhz931920    時間: 2020-4-23 07:52
@權威人物@紅塵有你,二位的解答讓我學習了,非常感謝!
作者: wo4fisher    時間: 2020-4-23 10:16
宏定義里前一句,與0xf0求&,是為了給低4位清零,高4位保持原來的值不變,這個是&的邏輯運算特性決定的。下一句是P2口在上一句結果上和輸入?yún)?shù)x求或操作。
其實這兩句最后的結果應該是在保持高4位不變的情況下,把x的值傳入P2口。從而也可以猜出來,x的值低4位有效(有效指的是有可能值是0,也可能非0),而高4位應該是0。如果不是0,會修改P2高4位值,與第一句操作不符。
作者: 銀河天地    時間: 2020-4-23 10:49
motor(x) 等效為 {p2=p2&0xf0;p2=p2|x}
作者: jhz931920    時間: 2020-4-23 13:11
銀河天地 發(fā)表于 2020-4-23 10:49
motor(x) 等效為 {p2=p2&0xf0;p2=p2|x}

假如x分別等于0x09和ox01,P2值各是多少?
作者: 593013535    時間: 2020-4-23 13:33
P2口高四位 為1,帶參數(shù)的宏定義的話,則P2|=x,即只會對低四位進行操作看具體賦值多少即可。
作者: 和i和i    時間: 2020-4-23 13:36
學習了
作者: 紅塵有你    時間: 2020-4-24 11:09
jhz931920 發(fā)表于 2020-4-23 13:11
假如x分別等于0x09和ox01,P2值各是多少?

p2=0x09&0xf0   =  0
p2= o|0x09 = 0x09
x=0x01時也是一樣。樓主要加強位運算的學習啊
作者: jhz931920    時間: 2020-4-24 16:46
紅塵有你 發(fā)表于 2020-4-24 11:09
p2=0x09&0xf0   =  0
p2= o|0x09 = 0x09
x=0x01時也是一樣。樓主要加強位運算的學習啊

收到!謝謝指導!




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1