亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3644|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)管腳定義問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:143767 發(fā)表于 2020-6-5 16:39 | 只看該作者 回帖獎勵(lì) |倒序?yàn)g覽 |閱讀模式
請問下面程序怎樣知道它定義的是P1.1-P1.4呢,如果我想定義P2.0-P2.4或P3.0-P3.4怎樣去設(shè)置呢,謝謝!

/*
1、本程序用于測試4相步進(jìn)電機(jī)常規(guī)驅(qū)動
2、需要用跳帽或者杜邦線把信號輸出端和對應(yīng)的步進(jìn)電機(jī)信號輸入端連接起來
3、速度不可以調(diào)節(jié)的過快,不然就沒有力矩轉(zhuǎn)動了
可以按照給的原理圖接線
  接P1.1-P1.4
*/
#include <reg52.h>

unsigned char code F_Rotation[4]={0x02,0x04,0x08,0x10};//正轉(zhuǎn)表格
unsigned char code B_Rotation[4]={0x10,0x08,0x04,0x02};//反轉(zhuǎn)表格

void Delay(unsigned int i)//延時(shí)
{
        while(--i);
}

main()
{
        unsigned char i;

        while(1)
        {
                  for(i=0;i<4;i++)      //4相
             {
                     P1=B_Rotation[i];  //輸出對應(yīng)的相 可以自行換成反轉(zhuǎn)表格
                     Delay(500);        //改變這個(gè)參數(shù)可以調(diào)整電機(jī)轉(zhuǎn)速
                 }
          }
}


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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

板凳
ID:642838 發(fā)表于 2020-6-5 19:51 | 只看該作者
code F_Rotation數(shù)組02,04,08,10換成2進(jìn)制就是對應(yīng)的P1.1-P1.4。
定義P2.0-P2.4,把數(shù)組unsigned char code F_Rotation[5]={0x01,0x02,0x04,0x08,0x10}
再把 P1=B_Rotation[i]改成P2=B_Rotation[i]
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

5#
ID:295874 發(fā)表于 2020-6-5 20:32 | 只看該作者
P1=B_Rotation[i];  //輸出對應(yīng)的相 可以自行換成反轉(zhuǎn)表格
修改此處的P1就可以實(shí)現(xiàn)
回復(fù)

使用道具 舉報(bào)

6#
ID:591219 發(fā)表于 2020-6-5 21:53 | 只看該作者
首先,你要了解這段括號內(nèi)的二進(jìn)制
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,實(shí)現(xiàn)反轉(zhuǎn)
所以 想要修改到P2口,首先修改P2=B_Rotation[i];
之后,根據(jù)你想用的P2口,在修改   B_Rotation[4]={0x10,0x08,0x04,0x02}  中的值
例如 你想用的P2.0到P2.3(四相電機(jī),需要四個(gè)i/o口)
B_Rotation[4]={0x08,0x04,0x02,0x01}

評分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

8#
ID:143767 發(fā)表于 2020-6-6 17:20 | 只看該作者
謝謝各位指點(diǎn)的很細(xì),學(xué)到了很多,非常感謝!
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表