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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2980|回復: 8
收起左側

如何用51單片機控制步進電機,各位大佬,求完整正確的程序

[復制鏈接]
ID:267591 發表于 2017-12-27 11:21 | 顯示全部樓層 |閱讀模式
如何用51單片機控制步進電機,各位大佬,求完整正確的程序
回復

使用道具 舉報

ID:84283 發表于 2017-12-27 13:04 | 顯示全部樓層
#include <reg51.h>       //51芯片管腳定義頭文件
#include <intrins.h>//內部包含延時函數 _nop_();

#define uchar unsigned char
#define uint  unsigned int

uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};
uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};

/********************************************************/
/*                                                  
/* 延時t毫秒
/* 11.0592MHz時鐘,延時約1ms                                    
/*                                                      
/********************************************************/
void delay(uint t)
{                           
   uint k;
   while(t--)
   {
     for(k=0; k<125; k++)
     { }
   }
}
/********************************************************/
/*
/*步進電機正轉
/*
/********************************************************/
void  motor_ffw(uint n)
{
   uchar i;
   uint  j;
   for (j=0; j<12*n; j++)    //轉1×n圈
    {
      for (i=0; i<8; i++)     //一個周期轉30度
        {
          P1 = FFW[i];          //取數據
          delay(15);             //調節轉速
        }
    }
}
/********************************************************/
/*
/*步進電機反轉
/*
/********************************************************/
void  motor_rev(uint n)
{
     uchar i;
uint  j;
for (j=0; j<12*n; j++)    //轉1×n圈
      {
        for (i=0; i<8; i++)     //一個周期轉30度
        {
          P1 = REV[i];          //取數據
          delay(15);             //調節轉速
        }
      }
}
/********************************************************
*                                                      
*  主程序                                               
*                                                      
*********************************************************/

main()
{   
   while(1)                     
    {  
       motor_ffw(5);          //電機正轉
       delay(5000);           //換向延時
       //motor_rev(5);          //電機反轉
       //delay(1000);           //換向延時
    }
}

/********************************************************/

自己改吧, 這是正反轉5S
回復

使用道具 舉報

ID:267208 發表于 2017-12-27 14:12 | 顯示全部樓層
這是帶著作業本過來的嗎
回復

使用道具 舉報

ID:267713 發表于 2017-12-27 14:36 | 顯示全部樓層
這個應該有pcb圖吧,估計配合一起使用
回復

使用道具 舉報

ID:78322 發表于 2017-12-27 14:52 | 顯示全部樓層
安裝個PROTUES,里面有例程。
回復

使用道具 舉報

ID:267701 發表于 2017-12-27 15:56 | 顯示全部樓層
#include <reg51.h>       //51芯片管腳定義頭文件 #include <intrins.h>//內部包含延時函數 _nop_();  #define uchar unsigned char #define uint  unsigned int  uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};  /********************************************************/ /*                                                   /* 延時t毫秒  /* 11.0592MHz時鐘,延時約1ms                                      /*                                                       /********************************************************/ void delay(uint t) {                               uint k;    while(t--)    {      for(k=0; k<125; k++)      { }    } } /********************************************************/ /* /*步進電機正轉 /* /********************************************************/ void  motor_ffw(uint n) {     uchar i;    uint  j;    for (j=0; j<12*n; j++)    //轉1×n圈     {       for (i=0; i<8; i++)     //一個周期轉30度         {           P1 = FFW[i];          //取數據           delay(15);             //調節轉速         }     } } /********************************************************/ /* /*步進電機反轉 /* /********************************************************/ void  motor_rev(uint n) {      uchar i; uint  j; for (j=0; j<12*n; j++)    //轉1×n圈       {         for (i=0; i<8; i++)     //一個周期轉30度         {           P1 = REV[i];          //取數據           delay(15);             //調節轉速         }       } } /******************************************************** *                                                        *  主程序                                                *                                                       *********************************************************/  main() {       while(1)                          {          motor_ffw(5);          //電機正轉        delay(5000);           //換向延時        //motor_rev(5);          //電機反轉        //delay(1000);           //換向延時     } }  /********************************************************/  自己改吧, 這是正反轉5S
回復

使用道具 舉報

ID:267701 發表于 2017-12-27 15:58 | 顯示全部樓層
你可以看一下你配套光盤中,單片機教程—配套程序
回復

使用道具 舉報

ID:493642 發表于 2019-4-3 10:16 | 顯示全部樓層
qq1105424012 發表于 2017-12-27 13:04
#include        //51芯片管腳定義頭文件
#include //內部包含延時函數 _nop_();

請問一下該怎么連線呢
回復

使用道具 舉報

ID:504144 發表于 2019-4-3 15:49 | 顯示全部樓層
去某寶搜索L298N電機驅動模塊,下載程序就可以了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表