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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3410|回復: 8
打印 上一主題 下一主題
收起左側

單片機管腳定義問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:143767 發表于 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);        //改變這個參數可以調整電機轉速
                 }
          }
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:94031 發表于 2020-6-5 18:58 | 只看該作者
這句話 P1=B_Rotation[i]; 說明驅動在P1口,根據數組定義知道在低4位。
回復

使用道具 舉報

板凳
ID:642838 發表于 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]
回復

使用道具 舉報

地板
ID:538157 發表于 2020-6-5 19:55 | 只看該作者
“0x”代表十六進制數,4位二進制可以表示一個十六進制數,0x02對應的二進制數是“0000 0010”,正好對應51單片機的一個P端口。這樣應該就理解了。
實際上上面的程序操作的整個P1端的8位都被操作了。想要只操作其中某一位,看看C語言的位操作語句,百度一些例子,你就知道了。
當然,“sbit”關鍵字也可以。
回復

使用道具 舉報

5#
ID:295874 發表于 2020-6-5 20:32 | 只看該作者
P1=B_Rotation[i];  //輸出對應的相 可以自行換成反轉表格
修改此處的P1就可以實現
回復

使用道具 舉報

6#
ID:591219 發表于 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}

評分

參與人數 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

7#
ID:348250 發表于 2020-6-5 22:19 | 只看該作者
P1=B_Rotation[i]; 這句話是用的總線知識,P1口連接的是電機的相即(B_Rotation[i]),通過上面的數組將16進制賦值給P1口(P1口的8個引腳構成 16進制),從而驅動電機
回復

使用道具 舉報

8#
ID:143767 發表于 2020-6-6 17:20 | 只看該作者
謝謝各位指點的很細,學到了很多,非常感謝!
回復

使用道具 舉報

9#
ID:420836 發表于 2020-6-7 08:44 | 只看該作者
數組定義用于P1端口,0x02表示引腳1或P1.1,0x04表示P1.2,0x08表示P1.3,0x10表示P1.4。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表