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

標題: A4988步進電機單片機驅動程序 [打印本頁]

作者: 或許可以    時間: 2017-6-22 20:47
標題: A4988步進電機單片機驅動程序
這是自己用4988步進電機驅動芯片做的,4988芯片一般用在3D打印機上,具有體積小等優點。下面有我的測試程序,希望可以給需要的人提供參考。

單片機源程序如下:
  1. /***************************************************************
  2. * 實 驗 名 :步進電機實驗
  3. * 實驗說明 :電機啟動、停止、正轉、反轉
  4. * 實驗平臺 :51單片機開發板
  5. * 連接方式 :pulse接P10  DIR接P11 KYE1接P20 KYE2接P21 KYE3接P22 KYE4接P23 ENABLE接P12 MS1-3接P13-P14
  6. * 注    意 :本例程使用了中斷定時器,中斷介紹會在下一實驗中說明
  7. ****************************************************************************/

  8. #include <reg52.h>
  9. #include <intrins.h>

  10. #define FOSC 11059200L //晶振設置,默認使用11.0592M Hz
  11. //#define FOSC 12000000L //晶振設置,使用12M Hz
  12. //#define FOSC 24000000L //晶振設置,使用24M Hz

  13. #define TIME_MS 1 //設定定時時間 ms ,在11.0592M晶振下,不易超過60ms





  14. //IO接口定義
  15. sbit pulse = P1^0;//脈沖信號
  16. sbit Dir   = P1^1; //正反轉

  17. sbit EN    = P1^2;
  18. sbit MS1   = P1^3;
  19. sbit MS2   = P1^4;
  20. sbit MS3   = P1^5;



  21. sbit KEY1 = P2^0;  //啟動
  22. sbit KEY2 = P2^1;  //停止
  23. sbit KEY3 = P2^2;  //正轉
  24. sbit KEY4 = P2^3;  //反轉


  25. //全局變量定義
  26. unsigned char count=0;

  27. /*******************************************************************************
  28. * 函 數 名 :Delayms
  29. * 函數功能 :實現 ms級的延時
  30. * 輸    入 :ms
  31. * 輸    出 :無
  32. *******************************************************************************/
  33. void Delayms(unsigned int ms)
  34. {
  35.         unsigned int i,j;
  36.         for(i=0;i<ms;i++)
  37.         #if FOSC == 11059200L
  38.                 for(j=0;j<114;j++);
  39.         #elif FOSC == 12000000L
  40.           for(j=0;j<123;j++);
  41.         #elif FOSC == 24000000L
  42.                 for(j=0;j<249;j++);
  43.         #else
  44.                 for(j=0;j<114;j++);
  45.         #endif
  46. }

  47. /*******************************************************************************
  48. * 函 數 名 :Timer0Init
  49. * 函數功能 :定時器0初始化
  50. * 輸    入 :無
  51. * 輸    出 :無
  52. *******************************************************************************/
  53. void Timer0Init()
  54. {
  55.         TMOD=0x01; //設置定時器0工作方式為1
  56.         TH0=(65536-FOSC/12/1000*TIME_MS)/256;
  57.         TL0=(65536-FOSC/12/1000*TIME_MS)%256;
  58.         ET0=1; //開啟定時器0中斷
  59. //        TR0=1;        //開啟定時器       
  60.         EA=1;  //打開總中斷
  61. }


  62. /*******************************************************************************
  63. * 函 數 名 :main
  64. * 函數功能 :主函數
  65. * 輸    入 :無
  66. * 輸    出 :無
  67. *******************************************************************************/
  68. void main()
  69. {
  70.         Timer0Init();
  71.         EN=0;
  72.         MS1=0;
  73.         MS2=0;
  74.         MS3=0;
  75.         while(1)
  76.         {
  77.   if(KEY1==0)  //判斷是否按下鍵盤
  78.         {
  79.                 Delayms(10); //延時,軟件去干擾
  80.                 if(KEY1==0)   //確認按鍵按下
  81.                 {
  82.       TR0=1;
  83.                 }
  84.                 while(KEY1==0);//按鍵鎖定,每按一次count只加1.
  85.         }
  86.         if(KEY2==0)  //判斷是否按下鍵盤
  87.         {
  88.                 Delayms(10); //延時,軟件去干擾
  89.                 if(KEY2==0)   //確認按鍵按下
  90.                 {
  91.       TR0=0;
  92.                 }
  93.                 while(KEY2==0);//按鍵鎖定,每按一次count只加1.
  94.         }       
  95.        
  96.         if(KEY3==0)  //判斷是否按下鍵盤
  97.         {
  98.                 Delayms(10); //延時,軟件去干擾
  99.                 if(KEY3==0)   //確認按鍵按下
  100.                 {
  101.       Dir=0;
  102.                 }
  103.                 while(KEY3==0);//按鍵鎖定,每按一次count只加1.
  104.         }       
  105.        
  106.                 if(KEY4==0)  //判斷是否按下鍵盤
  107.         {
  108.                 Delayms(10); //延時,軟件去干擾
  109.                 if(KEY4==0)   //確認按鍵按下
  110.                 {
  111.       Dir=1;
  112.                 }
  113.                 while(KEY4==0);//按鍵鎖定,每按一次count只加1.
  114.         }       
  115.        
  116.        
  117.         }
  118. }

  119. /*******************************************************************************
  120. ……………………

  121. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
A4988步進電機實驗.rar (23.64 KB, 下載次數: 811)



作者: admin    時間: 2017-6-24 21:47
好資料,51黑有你更精彩!!!
作者: yuanri    時間: 2017-6-25 20:31
必須頂啊!終于有51單片機控制4988了
作者: shtsw    時間: 2017-10-11 21:04
有51單片機控制4988了    參觀看看代碼 學習一下
作者: 風與丹青    時間: 2017-10-26 23:42
樓主,用A4988驅動電機時還有四拍八拍的整步、半步這個說法嗎?
作者: 風與丹青    時間: 2017-10-26 23:44
假如我要實現每秒鐘發5個脈沖,程序里定時器要怎么設置(計算)呢?小白一個,樓主不要嫌棄。感謝…
作者: 風與丹青    時間: 2017-10-26 23:46
假如我要實現每秒鐘發5個脈沖,程序怎么修改呢?小白一個,樓主不要嫌棄,感謝!
作者: 拾掇憂傷z    時間: 2018-2-10 15:45
學習學習
作者: 拾掇憂傷z    時間: 2018-2-10 15:47

有51單片機控制4988了    參觀看看代碼 學習一下
作者: chwhlj    時間: 2018-3-4 13:53
學習一下,留個記號
作者: chwhlj    時間: 2018-3-4 13:53
學習一下,留個記號~~!
作者: jach09    時間: 2018-3-11 11:38
必須頂啊!終于有51單片機控制4988了
作者: wuxishun    時間: 2018-4-6 12:29
?學習了
作者: chenq1q1    時間: 2018-6-5 18:34
必須頂啊!終于有51單片機控制4988了
作者: 雪中飄    時間: 2018-6-7 16:37
這個必須頂頂
作者: gongyi22    時間: 2018-6-12 17:32
666666666666666666
作者: chenq1q1    時間: 2018-7-19 18:59
好資料,51黑有你更精彩!!!
作者: 憤怒的蝸牛    時間: 2018-8-4 20:14
我想知道脈沖引腳要連在那里
作者: 誠思晨    時間: 2018-8-9 10:26
厲害了,終于找到了
作者: lwenf    時間: 2018-8-9 20:30
終于有51單片機控終于有51單片機控制4988了制4988了
作者: oao1oo2    時間: 2018-8-13 10:16
假的 沒什么用
作者: GUOXUAN    時間: 2018-8-24 12:03
很好的步進電機MCU驅動資料,適合我們初學者學習制做和實驗~
作者: 34523eqweqwe    時間: 2018-9-5 10:15
點贊。。。。。。。。。。。。。。。。等積分夠了再來下載
作者: AJUN111    時間: 2018-10-7 11:17
下載來學習下


作者: 252622979    時間: 2018-11-1 11:16
可以驅動48步進電機嗎
作者: 浩少成    時間: 2018-11-11 23:05
為什么不行

作者: 煩煩煩22212    時間: 2018-11-12 19:25
哈哈哈,謝謝分享
作者: weiwei0213    時間: 2018-11-17 20:03
非常感謝找了好久
作者: nj720417    時間: 2018-11-26 11:56

必須頂啊!終于有51單片機控制4988了
作者: 六五五五    時間: 2018-11-28 10:09
想學習
作者: bxqsadi    時間: 2018-12-28 14:35
這個是用51單片機驅動的嗎
作者: qzyhlf    時間: 2019-1-8 16:09
好資料,51黑有你更精彩!!!
作者: 陳陳陳陳跡    時間: 2019-4-6 11:31
太棒了,終于可以驅動42了
作者: 2412254155    時間: 2019-4-14 10:30
為啥我下載后電機只顫抖,而不轉了?
作者: hchh20082008    時間: 2019-6-4 14:30
好資料,51黑有你更精彩
作者: 陌沫秣    時間: 2019-6-13 22:23
感謝,寫的很棒,
作者: 孫策    時間: 2019-6-29 09:31
學習了
作者: llm268    時間: 2019-6-29 14:08
這個必須頂頂
作者: ryoostar    時間: 2019-7-8 19:39
感謝樓主分享,學習學習。
作者: 1191994113    時間: 2019-9-8 16:34
還是不會連線  

作者: w875046037    時間: 2019-9-17 21:30
感謝分享
作者: wuxishun    時間: 2019-9-19 18:05
加上調速的功能就完美了
作者: zhang189    時間: 2019-9-19 23:27
謝謝分享 很有用!!
作者: feng360603504    時間: 2019-10-12 22:18
里面根本就沒有完整的驅動
作者: FSL201910    時間: 2019-11-5 15:38
shtsw 發表于 2017-10-11 21:04
有51單片機控制4988了    參觀看看代碼 學習一下

TMC2208  靜音效果更好  
作者: FSL201910    時間: 2019-11-5 15:39
樓主  有使用過TMC2208嗎?

作者: 撒大蘇打安德森    時間: 2019-12-10 14:51
很有幫助,謝啦。
作者: kill_ha_ha    時間: 2020-1-3 03:17
謝謝分享,準備倒騰個電控滑軌
作者: @哈哈    時間: 2020-2-20 09:54
能給一個A4988的接線圖嗎?
作者: @哈哈    時間: 2020-2-20 09:56
能給一個A4988的接線圖嗎?
作者: wuxishun    時間: 2020-3-8 00:49
要是加個調個加減速就完美了
作者: yahuhei    時間: 2020-4-20 15:16

感謝樓主分享,學習學習
作者: dongleWan126    時間: 2020-5-2 02:48
我想知道怎么在proteus里添加A4988元件仿真
作者: wangxuguang    時間: 2020-10-23 16:16
完美!!!!!!
作者: NEVERNEVER    時間: 2021-4-2 17:54
2412254155 發表于 2019-4-14 10:30
為啥我下載后電機只顫抖,而不轉了?

我用了一下,卡死了,這個問題是不是和細分數要對應某個初值才可以





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