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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

步進(jìn)電機(jī)控制實(shí)驗(yàn)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71259 發(fā)表于 2014-12-30 01:35 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include <reg52.h>       //51芯片管腳定義頭文件
  2. #include <intrins.h>  //內(nèi)部包含延時(shí)函數(shù) _nop_();
  3. unsigned char code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //正轉(zhuǎn)相序代碼
  4. unsigned char code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};       //反轉(zhuǎn)相序代碼
  5. sbit  K1   = P3^2;       //正轉(zhuǎn)
  6. sbit  K2   = P3^3;       //反轉(zhuǎn)
  7. sbit  K3   = P3^4;       //停止
  8. sbit  BEEP = P3^6;       //蜂鳴器


  9. /*********************************************************
  10. 1ms延時(shí)
  11. *********************************************************/
  12. void delay(unsigned int t)
  13. {                          
  14.    unsigned int k;
  15.    while(t--)
  16.      for(k=0; k<125; k++);
  17. }

  18. /**********************************************************
  19. 0.1ms延時(shí)
  20.   **********************************************************/
  21. void delayB(unsigned char n)   
  22. {
  23.    unsigned char i;
  24.    while(n--)
  25.      for (i=0; i<13; i++);
  26. }

  27. /**********************************************************/


  28. /*蜂鳴器*/
  29. void beep()
  30. {
  31.   unsigned char i;
  32.   for(i=0;i<100;i++){
  33.   BEEP=~BEEP;
  34.   delayB(4);
  35. }
  36. BEEP=1;
  37. }

  38. /********************************************************/
  39. /*
  40. /*步進(jìn)電機(jī)正轉(zhuǎn)
  41. /*
  42. /********************************************************/
  43. void  motor_ffw()
  44. {
  45.    unsigned char i;
  46.    unsigned int  j;
  47.    for (j=0; j<8; j++)         //轉(zhuǎn)1*n圈
  48.     {
  49.      if(K3==0){
  50.    delay(15); //消陡
  51.    if(K3==0)
  52.     break;
  53.   }                //退出此循環(huán)程序
  54.       for (i=0; i<8; i++)       //一個(gè)周期轉(zhuǎn)45度
  55.         {
  56.           P1 = FFW[i];          //取數(shù)據(jù)
  57.           delay(2);            //調(diào)節(jié)轉(zhuǎn)速
  58.         }
  59.     }
  60. }

  61. /********************************************************/
  62. /*
  63. /*步進(jìn)電機(jī)反轉(zhuǎn)
  64. /*
  65. /********************************************************/
  66. void  motor_rev()
  67. {
  68.      unsigned char i;
  69.   unsigned int  j;
  70.   for (j=0; j<8; j++)       //轉(zhuǎn)1×n圈
  71.       {
  72.       if(K3==0){
  73.    delay(15); //消陡
  74.    if(K3==0)
  75.     break;
  76.   }                //退出此循環(huán)程序
  77.         for (i=0; i<8; i++)     //一個(gè)周期轉(zhuǎn)45度
  78.         {
  79.           P1 = REV[i];          //取數(shù)據(jù)
  80.           delay(2);            //調(diào)節(jié)轉(zhuǎn)速
  81.         }
  82.       }
  83. }

  84. /********************************************************
  85. *                                                      
  86. *  主程序                                             
  87. *                                                     
  88. *********************************************************/

  89. void main()
  90. {

  91.    unsigned char r,N=64;             //N 步進(jìn)電機(jī)運(yùn)轉(zhuǎn)圈數(shù) 因?yàn)椴竭M(jìn)電機(jī)是減速步進(jìn)電機(jī) 減速比是1/64 所以這里N=64時(shí) 步進(jìn)電機(jī)外部的主軸轉(zhuǎn)1圈
  92.    while(1)
  93.     {
  94.       if(K1==0)
  95.    {
  96.     delay(10);
  97.   if(K1==0){
  98.    beep();
  99.       for(r=0;r<N;r++)
  100.             {
  101.          motor_ffw();       //電機(jī)正轉(zhuǎn)
  102.           if(K3==0){
  103.         delay(10);
  104.      if(K3==0){
  105.                beep();
  106.       break;
  107.      }
  108.       }    //退出此循環(huán)程序
  109.       }  
  110.      }
  111.       }
  112.    else if(K2==0)
  113.       {
  114.     delay(10);
  115.   if(K2==0){
  116.         beep();
  117.      for(r=0;r<N;r++)
  118.            {
  119.            motor_rev();       //電機(jī)反轉(zhuǎn)
  120.            if(K3==0){
  121.         delay(10);
  122.      if(K3==0){
  123.                beep();
  124.       break;
  125.      }
  126.          }    //退出此循環(huán)程序
  127.       }
  128.    }
  129.        }
  130.     else
  131.    P1 = 0xf0;    //關(guān)閉電機(jī)
  132. }


  133. }

  134. /********************************************************/

復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:74225 發(fā)表于 2015-3-25 22:53 | 只看該作者
請(qǐng)問能給我講解一下有些程序嗎
回復(fù)

使用道具 舉報(bào)

板凳
ID:79683 發(fā)表于 2015-5-11 21:11 | 只看該作者
樓主,有原理圖嗎
回復(fù)

使用道具 舉報(bào)

地板
ID:111294 發(fā)表于 2016-3-30 23:48 | 只看該作者
樓主,我用這個(gè)控制TB6560驅(qū)動(dòng)42步進(jìn),但是不能反轉(zhuǎn),請(qǐng)指點(diǎn),其他正常,K2按鍵依然正轉(zhuǎn),TB6560采用的是共陰極接法



回復(fù)

使用道具 舉報(bào)

5#
ID:159270 發(fā)表于 2017-2-23 22:39 | 只看該作者
不錯(cuò),學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

6#
ID:235962 發(fā)表于 2017-9-27 11:00 | 只看該作者
贊一個(gè)
回復(fù)

使用道具 舉報(bào)

7#
ID:255421 發(fā)表于 2017-12-2 11:09 | 只看該作者

51hei有你更精彩!
回復(fù)

使用道具 舉報(bào)

8#
ID:335251 發(fā)表于 2018-6-6 20:27 | 只看該作者
這個(gè)用的是哪種電機(jī)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 第一色在线 | 日韩欧美精品 | 欧美日韩在线观看一区 | 国产精品久久久久久久粉嫩 | 久久精品亚洲精品 | a级大片免费观看 | 龙珠z在线观看 | 7799精品视频天天看 | 久久在线| 亚洲黄色片免费观看 | a级片www | 亚洲视频欧美视频 | 欧美一区二区三区在线播放 | 国产精品国产成人国产三级 | 国产91视频免费 | 亚洲高清在线 | 国产精品久久久久久久久久久久久 | 成年男女免费视频网站 | 亚洲视频在线免费观看 | 丝袜久久| 国产一区二区精品在线观看 | 国产成人在线免费 | 国产一区二区在线免费观看 | 性高朝久久久久久久3小时 av一区二区三区四区 | 视频一区二区在线观看 | 日本在线视频一区二区 | 久久久综合网 | 日韩欧美三区 | 超碰3| 成在线人视频免费视频 | 日韩精品在线一区 | 国产精品福利在线 | 亚洲成人久久久 | 亚洲精品大全 | 好姑娘高清在线观看电影 | 亚洲成人免费视频在线 | 精品国产一区二区三区久久影院 | 久久一二区 | www日韩| 欧美v免费 | 国产精品久久久久一区二区三区 |