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

標題: CC2530控制步進電機正反轉的源碼,調試通過 [打印本頁]

作者: zymmyz    時間: 2018-3-17 15:58
標題: CC2530控制步進電機正反轉的源碼,調試通過
CC2530控制步進電機正反轉,調試通過。

分別下載程序到任意一節點連接電機如圖所示,觀察電機運行情況,可以修改
ucSpeed 調整速度哦,代碼分析請看程序中的注釋。

單片機源程序如下:
  1. /****************************************************************************
  2. * 文 件 名: main.c
  3. * 作    者: Andy
  4. * 修    訂: 2016-03-27
  5. * 版    本: 2.0
  6. * 描    述: 用P04 05 06 07控制步進電機
  7. ****************************************************************************/
  8. #include <ioCC2530.h>

  9. typedef unsigned char uchar;
  10. typedef unsigned int  uint;


  11. #define A1 P0_4 //定義步進電機連接端口
  12. #define B1 P0_5
  13. #define C1 P0_6
  14. #define D1 P0_7

  15. //改變這個參數可以調整電機轉速,數字越小,轉速越快,力矩越小
  16. uchar ucSpeed = 2; //調整速度 建議在1-10范圍內
  17. uchar FFW[8]={0x90,0x10,0x30,0x20,0x60,0x40,0xc0,0x80};//正轉旋轉相序表
  18. uchar REV[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90};//反向旋轉相序表

  19. void MotorData(uchar data)
  20. {
  21.   A1 = 1&(data>>4);
  22.   B1 = 1&(data>>5);
  23.   C1 = 1&(data>>6);
  24.   D1 = 1&(data>>7);
  25. }

  26. //ms延時函數
  27. void Delay_ms(uint x)
  28. {
  29.   uint i,j;
  30.   for(i=0;i<x;i++)
  31.     for(j=0;j<535;j++);
  32. }

  33. //順時針轉動
  34. void MotorFFW(float n)
  35. {
  36.   unsigned char i;
  37.   unsigned int j;
  38.   int movie_count=(int)(8*64*n);
  39.   for (j=0; j<movie_count; j++)
  40.   {
  41.     for (i=0; i<8; i++)
  42.     {
  43.       MotorData( FFW[i]);//P0 = FFW[i];
  44.       Delay_ms(ucSpeed);
  45.     }
  46.   }
  47. }

  48. //逆時針轉動
  49. void MotorREV(float n)
  50. {
  51.   unsigned char i;
  52.   unsigned int j;
  53.   
  54.   int movie_count=(int)(8*64*n);
  55.   for (j=0; j<movie_count; j++)
  56.   {
  57.     for (i=0; i<8; i++)
  58.     {
  59.       MotorData(REV[i]);
  60.       Delay_ms(ucSpeed);
  61.     }
  62.   }
  63. }

  64. /****************************************************************************
  65. * 名    稱: InitIO()
  66. * 功    能: 初始化IO口程序
  67. * 入口參數: state=0正轉    1反轉
  68. ****************************************************************************/
  69. void ContrlStepMotor(int state, float count)
  70. {
  71.   if(state == 0)
  72.   {
  73.     MotorFFW(count);
  74.   }
  75.   else
  76.   {
  77.     MotorREV(count);
  78.   }
  79. }

  80. /****************************************************************************
  81. * 名    稱: InitIO()
  82. * 功    能: 初始化IO口程序
  83. * 入口參數: 無
  84. * 出口參數: 無
  85. ****************************************************************************/
  86. void InitIO(void)
  87. {
  88.   P0SEL &= 0x0F;  //P04 05 06 07定義為普通IO
  89.   P0DIR |= 0xF0;  //P04 05 06 07定義為輸出
  90. }

  91. /****************************************************************************
  92. * 程序入口函數
  93. ****************************************************************************/
  94. void main(void)
  95. {
  96.   InitIO();
  97.   
  98.   //改變這個參數可以調整電機轉速,數字越小,轉速越快,力矩越小
  99.   ucSpeed = 1;    //調整速度建議在1-10范圍內,數字越小轉速越快力矩越小
  100.   
  101.   while(1)
  102.   {
  103.     ContrlStepMotor(0, 1);//正轉1圈
  104.     Delay_ms(3000);
  105.    
  106.     ContrlStepMotor(1, 1);//反轉1圈
  107.     Delay_ms(3000);  
  108.   }
  109.   
  110. }
復制代碼

所有資料51hei提供下載:
30.控制步進電機正反轉.rar (577.05 KB, 下載次數: 51)



作者: zymmyz    時間: 2018-3-17 15:58
該例程調試覺得通過可用。
作者: fuhaibo    時間: 2021-7-19 16:09
想問下樓主,步進電機和驅動在哪里獲取的?還有鏈接嗎?




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 99久久精品国产一区二区成人 | a天堂在线视频 | 精品国产一区二区三 | 一区二区欧美日韩 | 免费一区二区三区 | 亚洲综合免费 | 日韩精品视频在线免费观看 | 亚洲国产成人91精品 | 日韩欧美视频 | 黄色伊人 | 女同一区二区三区 | 国产三级成人 | 一区二区精品 | 亚洲三区在线 | 亚洲免费黄色 | 亚洲另类视频 | 一区二区三区在线观看视频 | 美女国产精品 | 欧美一区二区免费 | 中文字幕免费高清 | 午夜性影院 | 中文字幕一区二区三区在线观看 | 国产一区二区精品在线 | 玖玖在线观看 | 特级丰满少妇一级aaaa爱毛片 | 三级黄色网址 | 亚洲综合三区 | 国产精品一区二区三区四区五区 | 嫩草嫩草嫩草嫩草 | 亚洲第一黄色 | 欧美日韩国产二区 | 日本黄色免费看 | 精品欧美一区二区三区久久久 | 在线理论片 | 国产三级在线看 | 日韩影音 | 亚洲美女一区 | 夜夜嗷 | 激情综合五月婷婷 | 在线观看小视频 | 午夜av网站 |