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

標題: 51單片機驅動伺服電機我這個程序思路可行嗎? [打印本頁]

作者: 芝士平天下    時間: 2020-4-5 23:06
標題: 51單片機驅動伺服電機我這個程序思路可行嗎?
用51單片機來驅動伺服電機,電機連接絲杠,帶動絲杠轉動。
驅動伺服電機,跟步進電機差不多,都是輸出脈沖。

我想用一個程序同時實現幾個功能。

功能:點動(點一下,動一下)、正反轉改變、加減速、停止
我是這樣想:
簡單的話,就多設幾個按鍵,通過按鍵,按哪個就實現哪個功能。

復雜的話,就設置3個模式,模式1,模式2,模式3。這樣就能少用些按鍵。
我想弄復雜點的。

模式1:準備模式,led燈閃爍。
模式2:自由模式,按鍵2——點動,按鍵3——只發送4000個脈沖,按鍵4——正反轉改變
模式3:往復循環模式(用限位開關改變方向),按鍵2——加速,按鍵3——減速,按鍵4——停止/啟動

通過按鍵1切換模式

想法是:
1、用外部中斷來做按鍵1設置,按一下按鍵1,就進行外部中斷,外部中斷程序里,標志mode++,回到程序,判斷標志mode是否改變,改變了就跳出程序,回到主函數,找到相應的模式,進入相應的程序。
2、模式3,用內部中斷,來不斷發出脈沖,通過按鍵2、3改變頻率,實現加減速。

程序:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char

//先省略內外部中斷程序
void main()
{
   while(1)
  {
     while(1)
        {
               if(key1 == 0)  //這個就是按鍵1,切換模式。用1根杜邦線把P32和P37相接,每按下按鍵1就會進入一次中斷。
                        {
                                delay(20);//按鍵消抖
                                if(key1 == 0)
                                {
                                        flag = 0;
                                        flag = 0;//產生低電平
                                        flag = 1;//結束低電平
                                        while(!key1);//松手檢測
                                }        
                        }

                if(1 == mode)
                        mode_1();  //檢測到mode等于1,就進入mode_1函數里面
                if(2 == mode)
                        mode_2();  //檢測到mode等于2,就進入mode_2函數里面
                if3 == mode)
                        mode_3();  //檢測到mode等于3,就進入mode_3函數里面
                                
        }

  }  
}

mode_1()  模式1
{
    led燈閃爍;
    判斷標志mode是否改;(若改變,return跳出mode_1函數,回到主函數,根據標志mode進入子函數)
}

mode_2() 模式2
{
    按鍵2,就實現點動;
    按鍵3,發送4000個脈沖;
    按鍵4,正反轉改變;
    判斷標志mode是否改;(若改變,return跳出mode_2函數,回到主函數,根據標志mode進入子函數)
}

mode_3() 模式3
{
    內部中斷函數;
    按鍵2,加速;
    按鍵3,減速;
    按鍵4,停止發送脈沖/啟動發送脈沖;
    判斷標志mode是否改;(若改變,return跳出mode_2函數,回到主函數,根據標志mode進入子函數)
}

想問問各位大佬,這樣寫,思路有沒有問題,能不能實現,是否有更好的思路來寫,求解啊!!!不知道行不行才是可怕

作者: man1234567    時間: 2020-4-15 15:18
是想聽夸獎么 ? 你真是天下第一的棒棒棒耶
自己不寫出來不試,你當別人都是你雇來的伙計
作者: mamba啊    時間: 2020-5-10 18:00
沒有問題直接仿真運行
作者: heijin2020    時間: 2020-5-11 09:40
應該沒問題的,關鍵是控制發脈沖的個數。現實中用到很多的
作者: EDGClearlove7    時間: 2020-5-11 10:06
思路應該沒問題,寫出來程序仿真一下




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