久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 17650|回復(fù): 24
收起左側(cè)

一個(gè)單片機(jī)控制兩個(gè)步進(jìn)電機(jī)同時(shí)轉(zhuǎn),主函數(shù)怎么寫?

  [復(fù)制鏈接]
ID:86913 發(fā)表于 2017-2-13 11:23 | 顯示全部樓層 |閱讀模式
兩個(gè)電機(jī)分別由P0、P1口控制,并且兩個(gè)電機(jī)的運(yùn)行狀態(tài)如轉(zhuǎn)數(shù)、速度和
方向都不一樣,現(xiàn)在要求兩個(gè)電機(jī)同時(shí)開始轉(zhuǎn)動(dòng)(但不同時(shí)停止),要求
動(dòng)作不循環(huán),只運(yùn)轉(zhuǎn)一次。這個(gè)主函數(shù)怎么寫?請(qǐng)指導(dǎo)!
(下面的主函數(shù),一個(gè)電機(jī)轉(zhuǎn)完了,才轉(zhuǎn)另一個(gè)電機(jī) ,沒有用)

/********主函數(shù)********/
main()       
    {
          P0=0xff;P1=0xff;       //兩個(gè)端口同時(shí)工作   
        motor1();              //電機(jī)1轉(zhuǎn)動(dòng),它由P0口控制
        P0=0x00;               //電機(jī)1停轉(zhuǎn)
        motor2();              //電機(jī)2轉(zhuǎn)動(dòng),它由P1口控制
        P1=0x00;               //電機(jī)2停轉(zhuǎn)
    }


相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:227622 發(fā)表于 2018-8-8 17:39 | 顯示全部樓層
其實(shí)這個(gè)問題我也遇到過,后來查了好多資料有點(diǎn)頭緒了,因?yàn)槲蚁胱?自由度機(jī)械臂,也是要控制2個(gè)步進(jìn)電機(jī)同時(shí)運(yùn)轉(zhuǎn),后來發(fā)現(xiàn)51單片機(jī)因?yàn)橹挥卸〞r(shí)器這種資源,而沒有分時(shí)操作系統(tǒng)的概念,所以我打算模仿方式操作系統(tǒng)理論,將時(shí)間分成許多小區(qū)間,然后每隔一個(gè)區(qū)間就控制一個(gè)步進(jìn)電機(jī),因?yàn)闀r(shí)間區(qū)間非常小,所以從宏觀上看兩個(gè)步進(jìn)電機(jī)是同時(shí)運(yùn)轉(zhuǎn)的,其實(shí)他們?cè)诨ハ鄵寠Zcpu的資源,所以也是要付出驅(qū)動(dòng)能力比正常驅(qū)動(dòng)弱一點(diǎn)的代價(jià),好了說一下程序的實(shí)現(xiàn),其實(shí)無(wú)非可以用定時(shí)器來實(shí)現(xiàn)每次中斷驅(qū)動(dòng)步進(jìn)電機(jī)2,主函數(shù)驅(qū)動(dòng)步進(jìn)電機(jī)1,要注意的是實(shí)現(xiàn)好2個(gè)步進(jìn)電機(jī)運(yùn)動(dòng)的時(shí)間間隔,這又有點(diǎn)類似于動(dòng)態(tài)掃描數(shù)碼管一樣了,需要一個(gè)定時(shí)器中斷來不斷掃描數(shù)碼管更新的信息,嗯,其實(shí)樓主可以自己試一下,不懂再問我。謝謝~

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:164496 發(fā)表于 2017-2-13 21:09 | 顯示全部樓層
看不到你的函數(shù)內(nèi)容,給步進(jìn)電機(jī)發(fā)脈沖應(yīng)該是用定時(shí)器去發(fā),用延時(shí)的方法讓程序發(fā)就是很不好的,用兩個(gè)定時(shí)器分別給兩個(gè)步進(jìn)電機(jī)發(fā)脈沖,什么時(shí)候發(fā)用條件,發(fā)多少用兩個(gè)不同的變量控制定時(shí)器,發(fā)的頻率用定時(shí)器的初始值

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:153041 發(fā)表于 2017-2-13 22:04 | 顯示全部樓層
按樓上說的沒錯(cuò),如果樓主非要用空循環(huán)延時(shí),可以把moto1和moto2打散到一起,moto1走一步,然后moto2走一步,再moto1走一步.... 這樣穿插起來。。  如果要程序模塊化可讀,就采用操作系統(tǒng),建立兩個(gè)并發(fā)的任務(wù),分別控制兩個(gè)電機(jī)。。。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:86913 發(fā)表于 2017-2-14 10:27 | 顯示全部樓層
謝謝樓上兩位提醒和指導(dǎo),我是新手,剛開始是學(xué)延時(shí)函數(shù)的,定時(shí)器還不會(huì),如果有定時(shí)器控制兩個(gè)電機(jī)同時(shí)轉(zhuǎn)動(dòng)的這種例子,請(qǐng)發(fā)一個(gè)給我,非常感謝!
“把moto1和moto2打散到一起,moto1走一步,然后moto2走一步,再moto1走一步.... 這樣穿插起來。”我以前試過的就是這種方式的,這不是我想學(xué)的。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:164429 發(fā)表于 2017-2-14 14:42 | 顯示全部樓層
把引腳狀態(tài)改變?nèi)诺蕉〞r(shí)器中,時(shí)間到了改變一個(gè),不管有多少到了改變就好了加油

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2017-2-14 19:27 | 顯示全部樓層
兩個(gè)、十個(gè)一樣做,看你如何構(gòu)思。
基本上會(huì)做一個(gè)就能做十個(gè)。
電機(jī)的響應(yīng)速度遠(yuǎn)小于單片機(jī)。各電機(jī)的驅(qū)動(dòng)錯(cuò)開,盡可能將相同或類似的程序部分做成子程序調(diào)用。多用中斷,合理分配各電機(jī)的驅(qū)動(dòng)控制時(shí)間。千萬(wàn)不可讓程序死在一個(gè)電機(jī)上運(yùn)行,即不允許有死待某個(gè)條件變量的函數(shù)。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:164687 發(fā)表于 2017-2-15 03:43 | 顯示全部樓層
電機(jī)的響應(yīng)速度遠(yuǎn)小于單片機(jī)。各電機(jī)的驅(qū)動(dòng)錯(cuò)開,盡可能將相同或類似的程序部分做成子程序調(diào)用。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:105206 發(fā)表于 2017-2-15 10:33 | 顯示全部樓層
51單片機(jī)最多只能實(shí)現(xiàn)兩個(gè)步近電機(jī)同時(shí)運(yùn)轉(zhuǎn)。我用的是驅(qū)動(dòng)器。
回復(fù)

使用道具 舉報(bào)

ID:86913 發(fā)表于 2017-2-16 21:08 | 顯示全部樓層
這樣的要求能編出程序員嗎?請(qǐng)看圖上要求。哪位高手幫幫我編制個(gè)C語(yǔ)言程序-----  一個(gè)單片機(jī)控制兩個(gè)步進(jìn)電機(jī)同時(shí)啟動(dòng)。單片機(jī)為STC89C52,驅(qū)動(dòng)器L298N。先謝謝了! 2017-02-16 11 26 55.png

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:7485 發(fā)表于 2017-2-17 08:59 | 顯示全部樓層
首先,51單片機(jī)是簡(jiǎn)單的處理器,單線程,不可能真正意義上的“同時(shí)”運(yùn)行兩個(gè)子程序(函數(shù))。

51單片機(jī)相對(duì)高級(jí)的處理器來說,雖說運(yùn)行的速度不高,可也是us級(jí)的速度,相比步進(jìn)電機(jī)的運(yùn)行波形來說,差著幾個(gè)數(shù)量級(jí)的。所以用“分時(shí)段”來控制2臺(tái)步進(jìn)電機(jī)是一點(diǎn)問題都沒有。因?yàn)榭刂瞥绦蛑袉纹瑱C(jī)將絕大部分時(shí)間用來延時(shí)。
如果使用程序循環(huán)來延時(shí),單片機(jī)將時(shí)鐘沒有空閑時(shí)間。
但是如果用定時(shí)器來延時(shí),在延時(shí)過程中,單片機(jī)就可以騰出手來做其他事情。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:105206 發(fā)表于 2017-2-17 10:34 | 顯示全部樓層
我覺得51只能做兩個(gè),不知各位攢不攢同。


我是同時(shí)按不同的驅(qū)動(dòng),相互不干擾,等待。我用的是驅(qū)動(dòng)器驅(qū)動(dòng)步進(jìn)馬達(dá)。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 2017-2-17 21:59 | 顯示全部樓層
jubaolun 發(fā)表于 2017-2-17 10:34
我覺得51只能做兩個(gè),不知各位攢不攢同。

同時(shí)驅(qū)動(dòng)10臺(tái)步進(jìn)電機(jī)都沒問題。
回復(fù)

使用道具 舉報(bào)

ID:86913 發(fā)表于 2017-2-18 16:08 | 顯示全部樓層
各位高手,能否提供一個(gè)采用定時(shí)器的,控制兩個(gè)電機(jī) 的C語(yǔ)言程序,非常感謝!
回復(fù)

使用道具 舉報(bào)

ID:105206 發(fā)表于 2017-2-18 20:09 | 顯示全部樓層
如果51能做10個(gè),3軸打印不就可以用51單片機(jī)了。您覺得勒。
回復(fù)

使用道具 舉報(bào)

ID:86913 發(fā)表于 2017-3-20 09:15 | 顯示全部樓層
MAIKER 發(fā)表于 2017-2-13 21:09
看不到你的函數(shù)內(nèi)容,給步進(jìn)電機(jī)發(fā)脈沖應(yīng)該是用定時(shí)器去發(fā),用延時(shí)的方法讓程序發(fā)就是很不好的,用兩個(gè)定時(shí) ...

謝謝您,您好的意思我大致懂了,就是編程序太難了,沒有一個(gè)示例比較難!
回復(fù)

使用道具 舉報(bào)

ID:86913 發(fā)表于 2017-3-20 09:18 | 顯示全部樓層
utzuzu 發(fā)表于 2017-2-13 22:04
按樓上說的沒錯(cuò),如果樓主非要用空循環(huán)延時(shí),可以把moto1和moto2打散到一起,moto1走一步,然后moto2走一步 ...

謝謝您!對(duì)我這個(gè)新手來說有點(diǎn)太深?yuàn)W了。
回復(fù)

使用道具 舉報(bào)

ID:86913 發(fā)表于 2017-3-20 09:18 | 顯示全部樓層
1053356130 發(fā)表于 2017-2-14 14:42
把引腳狀態(tài)改變?nèi)诺蕉〞r(shí)器中,時(shí)間到了改變一個(gè),不管有多少到了改變就好了加油

謝謝您的指導(dǎo)!
回復(fù)

使用道具 舉報(bào)

ID:86913 發(fā)表于 2017-3-20 09:21 | 顯示全部樓層
ahshmj 發(fā)表于 2017-2-17 08:59
首先,51單片機(jī)是簡(jiǎn)單的處理器,單線程,不可能真正意義上的“同時(shí)”運(yùn)行兩個(gè)子程序(函數(shù))。

51單片機(jī) ...

謝謝您的指導(dǎo)!
回復(fù)

使用道具 舉報(bào)

ID:227622 發(fā)表于 2018-3-22 19:06 | 顯示全部樓層
如果要實(shí)現(xiàn)精確的控制,最好給步進(jìn)電機(jī)發(fā)脈沖用定時(shí)器去計(jì)數(shù),用延時(shí)的方法讓程序發(fā)就是很不好的,用兩個(gè)定時(shí)器分別給兩個(gè)步進(jìn)電機(jī)發(fā)脈沖,此外,還可以通過各電機(jī)的驅(qū)動(dòng)錯(cuò)開,盡可能將相同或類似的程序部分做成子程序調(diào)用,也可以實(shí)現(xiàn)這功能

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:379643 發(fā)表于 2018-8-8 18:03 | 顯示全部樓層
學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:600893 發(fā)表于 2019-9-9 16:28 | 顯示全部樓層
可以  可以 打開了我的思路
回復(fù)

使用道具 舉報(bào)

ID:468238 發(fā)表于 2019-9-10 15:13 | 顯示全部樓層
你可以通過時(shí)間片來進(jìn)行操作   每一毫秒進(jìn)行一個(gè)任務(wù)    這樣解決電機(jī)問題
回復(fù)

使用道具 舉報(bào)

ID:315853 發(fā)表于 2019-9-10 15:58 | 顯示全部樓層
將P0=0x00、P1=0x00抽出,寫個(gè)while,while里面寫個(gè)if判斷左右輪在什么情況下分別執(zhí)行P0=0x00、P1=0x00,同時(shí)避免無(wú)效if重復(fù)執(zhí)行,都停止結(jié)束就執(zhí)行while空語(yǔ)句
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精彩视频在线观看 | 亚洲一区二区三区在线免费观看 | 91九色在线观看 | 久久99精品久久久久久国产越南 | 久久国产电影 | 日韩欧美国产一区二区三区 | 婷婷福利视频导航 | 国产精品一区一区三区 | 日本一区二区影视 | 精品在线观看入口 | 夜夜艹天天干 | 亚洲播放一区 | 久久精品亚洲成在人线av网址 | 欧美不卡一区 | 国产在线播 | 91看片在线观看 | 日本久久精品视频 | 国产成在线观看免费视频 | av片免费 | 欧美久久影院 | 在线观看中文字幕一区二区 | 亚洲精品九九 | av黄色在线播放 | 日本亚洲一区 | 成人免费视频网址 | 颜色网站在线观看 | 伊人狠狠 | 亚洲人人 | 欧美中文字幕一区二区三区亚洲 | 激情五月激情综合网 | 久久精品国产精品青草 | 国产激情视频在线免费观看 | 国产视频二区 | 懂色一区二区三区免费观看 | 欧美伊人久久久久久久久影院 | 黄视频免费观看 | 真人一级毛片 | 精品无码久久久久久久动漫 | 国产精品毛片久久久久久 | 亚洲精品乱码久久久久久久久久 | 成人免费看黄网站在线观看 |