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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6791|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

單片機減速步進電機正反轉(zhuǎn)窗簾開關(guān)設(shè)計

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:217754 發(fā)表于 2017-7-17 22:51 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
新手,剛收到的單片機。第一個作品減速步進電機正反轉(zhuǎn)窗簾開關(guān)分享。。。
代碼簡單,勿噴。。。

代碼內(nèi)有注明圈數(shù)調(diào)整,需要幾圈自己改圈數(shù)的數(shù)值即可。

實物圖:


按實驗板上的K1按鍵步進電機正轉(zhuǎn)
按實驗板上的K2按鍵步進電機反轉(zhuǎn)
按實驗板上的K3按鍵步進電機停止

仿真原理圖:



單片機源程序如下:
  1. #include <reg51.h>       //51芯片管腳定義頭文件
  2. #include <intrins.h>         //內(nèi)部包含延時函數(shù) _nop_();
  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5. uchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};  //四相八拍正轉(zhuǎn)編碼
  6. uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};  ////四相八拍反轉(zhuǎn)編碼
  7. sbit  K1   = P3^0;       //正轉(zhuǎn)
  8. sbit  K2   = P3^1;       //反轉(zhuǎn)
  9. sbit  K3   = P3^2;       //停止
  10. sbit  BEEP = P3^3;       //蜂鳴器
  11. /********************************************************/
  12. /*                                                  
  13. /* 延時t毫秒
  14. /* 11.0592MHz時鐘,延時約1ms                                    
  15. /*                                                      
  16. /********************************************************/
  17. void delay(uint t)

  18. {                           
  19.    uint k;
  20.    while(t--)
  21.    {
  22.      for(k=0; k<125; k++)
  23.      { }
  24.    }
  25. }

  26. /**********************************************************/
  27. void delayB(uchar x)    //x*0.14MS
  28. {
  29.    uchar i;
  30.    while(x--)
  31.    {
  32.      for (i=0; i<2; i++)
  33.      { }
  34.    }
  35. }

  36. /**********************************************************/
  37. void beep()
  38. {
  39.    uchar i;
  40.    for (i=0;i<100;i++)
  41.     {
  42.      delayB(4);
  43.      BEEP=!BEEP;                 //BEEP取反
  44.     }
  45.      BEEP=1;                    //關(guān)閉蜂鳴器
  46. }

  47. /********************************************************/
  48. /*
  49. /*步進電機正轉(zhuǎn)
  50. /*
  51. /********************************************************/
  52. void  motor_ffw()
  53. {
  54.    uchar i;
  55.    uint  j;
  56.    uint  a;                                                  //轉(zhuǎn)n圈
  57.    a=2;
  58.    for (j=0; j<8*a; j++)         //轉(zhuǎn)1*n圈
  59.     {
  60.             if(K3==0)
  61.         {break;}                //退出此循環(huán)程序
  62.       for (i=0; i<8; i++)       //一個周期轉(zhuǎn)45度
  63.         {
  64.           P1 = FFW[i];          //取數(shù)據(jù)
  65.           delay(1);            //調(diào)節(jié)轉(zhuǎn)速
  66.         }
  67.     }
  68. }

  69. /********************************************************/
  70. /*
  71. /*步進電機反轉(zhuǎn)
  72. /*
  73. /********************************************************/
  74. void  motor_rev()
  75. {
  76.      uchar i;
  77.          uint  j;
  78.          uint  a;
  79.          a=2;                                                  //轉(zhuǎn)n圈
  80.          for (j=0; j<8*a; j++)       //轉(zhuǎn)1×n圈
  81.       {
  82.             if(K3==0)
  83.          {break;}               //退出此循環(huán)程序
  84.         for (i=0; i<8; i++)     //一個周期轉(zhuǎn)45度
  85.         {
  86.           P1 = REV[i];          //取數(shù)據(jù)
  87.           delay(1);            //調(diào)節(jié)轉(zhuǎn)速
  88.         }
  89.       }
  90. }

  91. /********************************************************
  92. *                                                      
  93. *  主程序                                               
  94. *                                                      
  95. *********************************************************/

  96. main()
  97. {
  98.       uchar r,N=64;             //N 步進電機運轉(zhuǎn)圈數(shù)
  99.    while(1)
  100.     {  
  101.       if(K1==0)
  102.           {
  103.         beep();
  104.                 for(r=0;r<N;r++)
  105.          {
  106.                    motor_ffw();       //電機正轉(zhuǎn)
  107.                    if(K3==0)
  108.                   {beep();break;}    //退出此循環(huán)程序
  109.              }
  110.       }
  111.           else if(K2==0)
  112. ……………………

  113. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
減速步進電機正反轉(zhuǎn)窗簾開關(guān).zip (14.12 KB, 下載次數(shù): 80)



評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:208108 發(fā)表于 2017-7-20 10:54 | 只看該作者
電機得用多大功率?這款5V步進電機好像力度不夠吧?
回復(fù)

使用道具 舉報

板凳
ID:156580 發(fā)表于 2017-7-27 08:38 | 只看該作者
duranhuang 發(fā)表于 2017-7-20 10:54
電機得用多大功率?這款5V步進電機好像力度不夠吧?

同求,原理簡單,參數(shù)才是重點
回復(fù)

使用道具 舉報

地板
ID:249545 發(fā)表于 2017-11-24 17:02 | 只看該作者
經(jīng)典!作者彭偉原著.
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久久综合 | 国产精品久久久久久久久久免费看 | 日韩一区二区三区在线 | 亚洲精品视频在线观看视频 | 91精品国产91久久综合桃花 | 日本在线观看视频 | 久久久精品高清 | 久久免费精品视频 | 老熟女毛片 | 国产精品精品视频一区二区三区 | 日韩精品一区二区在线观看 | 黄色免费观看 | 国产美女在线播放 | 日韩一区二区不卡 | 亚洲视频免费观看 | 红桃视频一区二区三区免费 | 999热精品| 91色视频在线观看 | 青青久在线视频 | 精品国产91乱码一区二区三区 | 亚洲国产精品久久 | 超碰综合| 中文字幕一区二区三区在线观看 | 中文字幕在线精品 | 二区在线视频 | 日日操夜夜操天天操 | 在线观看日本高清二区 | 一区二区精品在线 | 在线成人www免费观看视频 | 亚洲美女视频 | 99亚洲精品 | 欧美一卡二卡在线 | 无码日韩精品一区二区免费 | 久久小视频| 91久久北条麻妃一区二区三区 | 亚洲欧美中文日韩在线 | 91免费在线看 | 狠狠爱免费视频 | 精品日韩 | 一区二区久久电影 | 亚洲国产精品成人无久久精品 |