欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機管腳定義問題
[打印本頁]
作者:
dj3365191
時間:
2020-6-5 16:39
標題:
單片機管腳定義問題
請問下面程序怎樣知道它定義的是P1.1-P1.4呢,如果我想定義P2.0-P2.4或P3.0-P3.4怎樣去設置呢,謝謝!
/*
1、本程序用于測試4相步進電機常規驅動
2、需要用跳帽或者杜邦線把信號輸出端和對應的步進電機信號輸入端連接起來
3、速度不可以調節的過快,不然就沒有力矩轉動了
可以按照給的原理圖接線
接P1.1-P1.4
*/
#include <reg52.h>
unsigned char code F_Rotation[4]={0x02,0x04,0x08,0x10};//正轉表格
unsigned char code B_Rotation[4]={0x10,0x08,0x04,0x02};//反轉表格
void Delay(unsigned int i)//延時
{
while(--i);
}
main()
{
unsigned char i;
while(1)
{
for(i=0;i<4;i++) //4相
{
P1=B_Rotation[i]; //輸出對應的相 可以自行換成反轉表格
Delay(500); //改變這個參數可以調整電機轉速
}
}
}
作者:
xuyaqi
時間:
2020-6-5 18:58
這句話 P1=B_Rotation[i]; 說明驅動在P1口,根據數組定義知道在低4位。
作者:
odfggf
時間:
2020-6-5 19:51
code F_Rotation數組02,04,08,10換成2進制就是對應的P1.1-P1.4。
定義P2.0-P2.4,把數組unsigned char code F_Rotation[5]={0x01,0x02,0x04,0x08,0x10}
再把 P1=B_Rotation[i]改成P2=B_Rotation[i]
作者:
xu2509674896
時間:
2020-6-5 19:55
“0x”代表十六進制數,4位二進制可以表示一個十六進制數,0x02對應的二進制數是“0000 0010”,正好對應51單片機的一個P端口。這樣應該就理解了。
實際上上面的程序操作的整個P1端的8位都被操作了。想要只操作其中某一位,看看C語言的位操作語句,百度一些例子,你就知道了。
當然,“sbit”關鍵字也可以。
作者:
liyongan_1985
時間:
2020-6-5 20:32
P1=B_Rotation[i]; //輸出對應的相 可以自行換成反轉表格
修改此處的P1就可以實現
作者:
LUQIMAI
時間:
2020-6-5 21:53
首先,你要了解這段括號內的二進制
B_Rotation[4]={0x10,0x08,0x04,0x02}
0x10:0001 0000
0x08:0000 1000
0x04:0000 0100
0x02:0000 0010
之后,理解這段
P1=B_Rotation[i];
i從0開始,就是把 0x10(0001 0000)賦值給 P1,即P1.4 = 1;
i遞增,把剩下的全都賦值給P1,使得P1.4到P1.1逐漸置1,實現反轉
所以 想要修改到P2口,首先修改P2=B_Rotation[i];
之后,根據你想用的P2口,在修改 B_Rotation[4]={0x10,0x08,0x04,0x02} 中的值
例如 你想用的P2.0到P2.3(四相電機,需要四個i/o口)
B_Rotation[4]={0x08,0x04,0x02,0x01}
作者:
紅領巾
時間:
2020-6-5 22:19
P1=B_Rotation[i]; 這句話是用的總線知識,P1口連接的是電機的相即(B_Rotation[i]),通過上面的數組將16進制賦值給P1口(P1口的8個引腳構成 16進制),從而驅動電機
作者:
dj3365191
時間:
2020-6-6 17:20
謝謝各位指點的很細,學到了很多,非常感謝!
作者:
TTQ001
時間:
2020-6-7 08:44
數組定義用于P1端口,0x02表示引腳1或P1.1,0x04表示P1.2,0x08表示P1.3,0x10表示P1.4。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1