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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8916|回復: 2
收起左側

51單片機四線雙極性+五線四相步進電機案例程序(細分+半步八拍方式+雙四拍+單四拍)

[復制鏈接]
ID:365378 發表于 2018-11-11 21:28 | 顯示全部樓層 |閱讀模式
1、現發布只配有4線雙極性步進電機

2、四線雙極性步進電機與五線四相步進電機程序不通用

3、五線四相步進電機若只是震動,可適當增大延時即可

0.png

電路原理圖如下:
0.png

細分單片機源程序如下:
  1. /*************************************************************************************
  2. *  標題:  步進電機試驗四(采用2細分)                                                                                         *
  3. *                                                                                                                                                                          *
  4. *    通過本例程了解步進馬達使用及驅動程序編寫                                                                                 *
  5. *;   單相四拍通電驅動時序:                                                          *
  6. *;   正轉: A/  B  A  B/                                                                                                                         *
  7. *    反轉: B/  A  B  A/                                                                                              *
  8. *                                                                                                                                                                     *
  9. *    UDN2916電流控制真值表:                                                                                                                 *
  10. *          I0    I1        輸出電流                                                                                                                 *
  11. *          L            L                  最大                                                                                                                         *
  12. *          H                L                  最大*2/3                                                                                                                 *
  13. *          L                H                  最大*1/3                                                                                                                 *
  14. *     H     H         0                                                                     *
  15. *   請學員一定要消化掉本例程                                                                    *
  16. *   注意:J14短路冒需斷開                                                                                    *
  17. **************************************************************************************/  
  18. #include "reg52.h"

  19. #define speed 38
  20. //Motor
  21. sbit PH1 = P1^0;          //定義管腳
  22. sbit PH2 = P1^1;
  23. sbit I01 = P1^2;
  24. sbit I11 = P1^3;
  25. sbit I02 = P1^4;
  26. sbit I12 = P1^5;
  27.                                     
  28. unsigned char TableA[] = { 0XF7,0XFB,0XF3};         //A線圈細分表
  29. unsigned char TableB[] = { 0XeF,0XdF,0XcF};         //B線圈細分表

  30. void delay(int time);

  31. /***************************************
  32. 函數功能:產生單相四拍脈沖控制步進機 2細分
  33. **************************************/
  34. void Go()
  35. {        char i ,temp;
  36.      //A
  37.     PH1 = 0;  //PH1為0 則A線圈為反向電流
  38.         for(i = 0; i<3; i++)
  39.         {  temp = P1;
  40.            P1 = TableA[i];
  41.            P1 = P1&temp;
  42.            delay(1);
  43.          }
  44.         

  45.         PH2 = 0;  //PH2為0 則B線圈為反向電流
  46.         I02 = 1;
  47.         I12 = 1;   //輸出0

  48.         delay(speed);
  49.         //0
  50.         PH1 = 0;  //PH1為0 則A線圈為反向電流
  51.     I01 = 1;  //輸出0
  52.         I11 = 1;
  53.         

  54.         PH2 = 1;  //PH2為1 則B線圈為正電流
  55.         for(i = 0; i<3; i++)
  56.         {  temp = P1;
  57.            P1 = TableB[i];
  58.            P1 = P1&temp;
  59.            delay(1);
  60.          }

  61.         delay(speed);
  62.         //B
  63.         PH1 = 1;   //PH1為1 則A線圈為正向電流
  64.         for(i = 0; i<3; i++)
  65.         {  temp = P1;
  66.            P1 = TableA[i];
  67.            P1 = P1&temp;
  68.            delay(1);
  69.          }

  70.         PH2 = 1;  //PH2為1 則B線圈為正向電流
  71.         I02 = 1;  //輸出0
  72.         I12 = 1;
  73.                    ////
  74.         delay(speed);
  75.         //0
  76.         PH1 = 1;   //PH1為1 則A線圈為正向電流
  77.         I01 = 1;
  78.         I11 = 1;
  79.         

  80.         PH2 = 0;   //PH2為0 則B線圈為反向電流
  81.         for(i = 0; i<3; i++)
  82.         {  temp = P1;
  83.            P1 = TableB[i];
  84.            P1 = P1&temp;
  85.            delay(1);
  86.          }
  87.         delay(speed);
  88.                

  89.         
  90. }
  91. /*******************延時函數****************************/
  92. void delay(int time)
  93. {
  94.   int i,j;
  95.   
  96.   for(j=0; j <= time; j++)
  97.    for(i =0 ; i <= 120; i++);
  98. }


  99. void main()
  100. {

  101.   while(1)
  102.   {
  103.    
  104.     Go();  //步進電機運行
  105.         
  106.   }

  107. }
復制代碼
  1. /*************************************************************************************
  2. *  標題:  步進電機試驗二(雙四拍方式)                                                                                                                         *
  3. *                                                                                                                                                                          *
  4. *    通過本例程了解步進馬達使用及驅動程序編寫                                                                                 *
  5. *;   雙四拍工作方式:                                                                    *
  6. *;   正轉:A/B   AB   AB/  A/B/                                                                                       *
  7. *         反轉:A/B/  AB/  AB   A/B
  8. *   
  9. *    UDN2916電流控制真值表:
  10. *         I0    I1       輸出電流
  11. *          L            L                  最大
  12. *          H                L                  最大*2/3
  13. *          L                H                  最大*1/3
  14. *     H     H         0                                                                     *
  15. *  請學員一定要消化掉本例程                                                                    *
  16.    J14短路冒需斷開                                                                                                   *
  17. **************************************************************************************/  
  18. #include "reg52.h"

  19. #define speed 2
  20. //Motor
  21. sbit PH1 = P1^0;          //定義管腳
  22. sbit PH2 = P1^1;
  23. sbit I01 = P1^2;
  24. sbit I11 = P1^3;
  25. sbit I02 = P1^4;
  26. sbit I12 = P1^5;



  27. void delay(int time);

  28. /***************************************
  29. 函數功能:產生脈沖控制步進機
  30. 正轉:A/B   AB   AB/  A/B/
  31. I0 I1 為低電平時,均以最大電流輸出
  32. **************************************/
  33. void Go()
  34. {         //A
  35.     PH1 = 0;  //PH1為0 則A線圈為反向電流
  36.     I01 = 0;
  37.         I11 = 0;
  38.         

  39.         PH2 = 1;   //PH2為1 則B線圈為正向電流
  40.         I02 = 0;
  41.         I12 = 0;

  42.         delay(speed);
  43.         //0
  44.         PH1 = 1;  //PH1為1 則A線圈為正向電流
  45.     I01 = 0;
  46.         I11 = 0;
  47.         

  48.         PH2 = 1;
  49.         I02 = 0;
  50.         I12 = 0;

  51.         delay(speed);
  52.         //B
  53.         PH1 = 1;  //PH1為1 則A線圈為正向電流
  54.     I01 = 0;
  55.         I11 = 0;
  56.         

  57.         PH2 = 0;   //PH2為0 則B線圈為反向電流
  58.         I02 = 0;
  59.         I12 = 0;
  60.                    ////
  61.         delay(speed);
  62.         //0
  63.         PH1 = 0;
  64.         I01 = 0;
  65.         I11 = 0;
  66.         

  67.         PH2 = 0;  
  68.         I02 = 0;
  69.         I12 = 0;
  70.             
  71.         delay(speed);
  72.         
  73.         
  74. }
  75. /*******************延時函數****************************/
  76. void delay(int time)
  77. {
  78.   int i,j;
  79.   
  80.   for(j=0; j <= time; j++)
  81.    for(i =0 ; i <= 120; i++);
  82. }

  83. void main()
  84. {

  85.   while(1)
  86.   {
  87.    
  88.     Go();  //步進電機運行
  89.         
  90.   }

  91. }
復制代碼


所有資料51hei提供下載:
51單片機步進馬達案例.rar (3.78 MB, 下載次數: 118)
回復

使用道具 舉報

ID:1 發表于 2018-11-15 17:02 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

ID:652775 發表于 2019-12-13 08:58 | 顯示全部樓層
資料很好,收下了。謝謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品毛片一区二区三区 | 8x国产精品视频一区二区 | 久久精品16 | 国产日韩精品视频 | 亚洲国产成人久久综合一区,久久久国产99 | 激情免费视频 | 日韩欧美三区 | 亚洲久久久 | 成人教育av | 免费色网址 | 国产精品一区三区 | 操操操av | 日韩综合在线 | 国产精品高潮呻吟 | 欧美午夜在线 | 欧美a区 | 欧美在线一区二区三区 | 久久久蜜桃 | 精品国产一区二区国模嫣然 | 久久精品久久久 | 九色 在线| 亚洲一区二区三区免费在线观看 | 亚洲免费一区 | 欧美精品一区二区三区蜜臀 | 国产精品一二区 | 午夜资源| 羞羞视频在线观看 | 黄色毛片网站在线观看 | 久在线观看 | 亚洲天堂久久 | 精品久久久久久久久久久久 | 日干夜操| 午夜影院在线视频 | 狠狠艹 | 在线观看中文字幕一区二区 | www.黄色网 | 欧美激情国产日韩精品一区18 | 怡红院怡春院一级毛片 | 97视频网站| 91精品国产综合久久久动漫日韩 | 欧美区在线|