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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9283|回復: 8
打印 上一主題 下一主題
收起左側

a4988驅動二相四線電機,用51怎么控制step和dir來使電機運動

[復制鏈接]
跳轉到指定樓層
樓主
ID:94832 發表于 2015-11-6 00:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
rt,求各位幫一下,最近在用51做雕刻機。。沒想到一上來就被a4988給弄的。。。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:231918 發表于 2017-10-11 21:05 | 只看該作者
居然就是個沒有后續節目的帖子
回復

使用道具 舉報

板凳
ID:229992 發表于 2018-1-22 10:06 | 只看該作者
/***************************************************************
* 實 驗 名 :步進電機實驗
* 實驗說明 :電機啟動、停止、正轉、反轉
* 實驗平臺 :51單片機開發板
* 連接方式 :pulse接P10  DIR接P11 KYE1接P20 KYE2接P21 KYE3接P22 KYE4接P23 ENABLE接P12 MS1-3接P13-P14
* 注    意 :本例程使用了中斷定時器,中斷介紹會在下一實驗中說明
****************************************************************************/

#include <reg52.h>
#include <intrins.h>

#define FOSC 11059200L //晶振設置,默認使用11.0592M Hz
//#define FOSC 12000000L //晶振設置,使用12M Hz
//#define FOSC 24000000L //晶振設置,使用24M Hz

#define TIME_MS 1 //設定定時時間 ms ,在11.0592M晶振下,不易超過60ms





//IO接口定義
sbit pulse = P1^0;//脈沖信號
sbit Dir   = P1^1; //正反轉

sbit EN    = P1^2;
sbit MS1   = P1^3;
sbit MS2   = P1^4;
sbit MS3   = P1^5;



sbit KEY1 = P2^0;  //啟動
sbit KEY2 = P2^1;  //停止
sbit KEY3 = P2^2;  //正轉
sbit KEY4 = P2^3;  //反轉


//全局變量定義
unsigned char count=0;

/*******************************************************************************
* 函 數 名 :Delayms
* 函數功能 :實現 ms級的延時
* 輸    入 :ms
* 輸    出 :無
*******************************************************************************/
void Delayms(unsigned int ms)
{
        unsigned int i,j;
        for(i=0;i<ms;i++)
        #if FOSC == 11059200L
                for(j=0;j<114;j++);
        #elif FOSC == 12000000L
          for(j=0;j<123;j++);
        #elif FOSC == 24000000L
                for(j=0;j<249;j++);
        #else
                for(j=0;j<114;j++);
        #endif
}

/*******************************************************************************
* 函 數 名 :Timer0Init
* 函數功能 :定時器0初始化
* 輸    入 :無
* 輸    出 :無
*******************************************************************************/
void Timer0Init()
{
        TMOD=0x01; //設置定時器0工作方式為1
        TH0=(65536-FOSC/12/1000*TIME_MS)/256;
        TL0=(65536-FOSC/12/1000*TIME_MS)%256;
        ET0=1; //開啟定時器0中斷
//        TR0=1;        //開啟定時器       
        EA=1;  //打開總中斷
}


/*******************************************************************************
* 函 數 名 :main
* 函數功能 :主函數
* 輸    入 :無
* 輸    出 :無
*******************************************************************************/
void main()
{
        Timer0Init();
        EN=0;
        MS1=0;
        MS2=0;
        MS3=0;
        while(1)
        {
  if(KEY1==0)  //判斷是否按下鍵盤
        {
                Delayms(10); //延時,軟件去干擾
                if(KEY1==0)   //確認按鍵按下
                {
      TR0=1;
                }
                while(KEY1==0);//按鍵鎖定,每按一次count只加1.
        }
        if(KEY2==0)  //判斷是否按下鍵盤
        {
                Delayms(10); //延時,軟件去干擾
                if(KEY2==0)   //確認按鍵按下
                {
      TR0=0;
                }
                while(KEY2==0);//按鍵鎖定,每按一次count只加1.
        }       
       
        if(KEY3==0)  //判斷是否按下鍵盤
        {
                Delayms(10); //延時,軟件去干擾
                if(KEY3==0)   //確認按鍵按下
                {
      Dir=0;
                }
                while(KEY3==0);//按鍵鎖定,每按一次count只加1.
        }       
       
                if(KEY4==0)  //判斷是否按下鍵盤
        {
                Delayms(10); //延時,軟件去干擾
                if(KEY4==0)   //確認按鍵按下
                {
      Dir=1;
                }
                while(KEY4==0);//按鍵鎖定,每按一次count只加1.
        }       
       
       
        }
}

/*******************************************************************************
* 函 數 名 :Timer0Int
* 函數功能 :定時器0中斷函數 , 每隔TIME_MS ms進入
* 輸    入 :無
* 輸    出 :無
*******************************************************************************/
void Timer0Int() interrupt 1
{
        TH0=(65536-FOSC/12/1000*TIME_MS)/256;
        TL0=(65536-FOSC/12/1000*TIME_MS)%256;
        count++;
        if(count == 2)//1s
        {
                pulse = !pulse;//LED燈閃爍
                count = 0;
        }
}

回復

使用道具 舉報

地板
ID:229992 發表于 2018-1-22 10:07 | 只看該作者
這個是一個大神的測試程序,你可以參照一下
回復

使用道具 舉報

5#
ID:321799 發表于 2018-5-10 11:22 | 只看該作者
你行你叫滿昊啊 發表于 2018-1-22 10:06
/***************************************************************
* 實 驗 名 :步進電機實驗
* 實驗 ...

你好,你有電路圖嗎
回復

使用道具 舉報

6#
ID:469480 發表于 2019-1-17 08:55 | 只看該作者
百度找的
/*-----------------------------------------------  
  名稱:步進電機  
------------------------------------------------*/   
   
#include <reg52.h>   
   
sbit step=P1^0;        //步進脈沖,一個正脈沖就轉一個步距角   
sbit dir=P1^1;        //1為正轉,0為反轉。   
sbit sleep=P1^2;   
sbit res=P1^3;   
unsigned char sum=0;   
   
/********************毫秒延時函數***************************/   
void Delay(unsigned int xms)   
{   
    unsigned int i,j;   
    for(i=xms;i>0;i--)   
        for(j=110;j>0;j--);   
}   
   
void ISR_Key(void) interrupt 2  //外部中斷1   
{   
  Delay(20);   
  sum++;   
  if(sum==1)   
  {   
    dir=~dir;   
   }   
  if(sum==1) sum=0;   
   
}   
/******************************************************************/   
/*                   主函數                                       */   
/******************************************************************/   
main()   
{   
   
  dir=1;         //正轉   
  sleep=1;       //休眠無效   
  res=1;         //復位無效   
  step=1;           
   
  EX1=1;         //外部中斷1開   
  IT1=1;         //邊沿觸發   
  EA=1;          //全局中斷開   
   
while(1)               
{   
     step=~step;     //輸出脈沖   
     Delay(2);       //需要延時,不延時電機不動,延時太久也不動。改變這個參數可以調整電機轉速 ,數字越小,轉速越大。   
      
}   
}   
   
回復

使用道具 舉報

7#
ID:469525 發表于 2019-1-17 19:55 | 只看該作者
正常歩進電機的頻率為500HZ,每8步為1循環,具體請看附件(附件為四相八拍的歩進電機)

28BYJ-48步進電機.doc

271.5 KB, 下載次數: 47

回復

使用道具 舉報

8#
ID:288090 發表于 2019-1-17 20:49 | 只看該作者
dir用高低電平表示方向,step用PWM輸出控制,可控制轉速
回復

使用道具 舉報

9#
ID:501098 發表于 2019-6-19 17:01 | 只看該作者
你行你叫滿昊啊 發表于 2018-1-22 10:07
這個是一個大神的測試程序,你可以參照一下

這也不好用啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产精品久久久久秋霞不卡 | 国产成人精品在线 | 久久久久久综合 | 91视频.| 亚洲美女天堂网 | 亚洲美女网站 | 中文字幕一区在线 | 久久久精品视频免费 | 国产色婷婷久久99精品91 | 国产精品日韩高清伦字幕搜索 | 久久亚洲春色中文字幕久久久 | 国产精品视频500部 a久久 | 精品欧美乱码久久久久久1区2区 | 日韩三级电影一区二区 | 九九热精品在线视频 | 超碰97在线免费 | 久久av一区二区三区 | 成人日韩 | 亚洲天堂成人在线视频 | 免费观看成人av | 日韩有码在线播放 | 国产欧美精品一区二区三区 | 亚洲视频欧美视频 | 欧美日韩久久久 | 97caoporn国产免费人人 | 日韩成人在线网站 | 国产精品视频一区二区三区不卡 | 欧美一区二区三区久久精品 | 黑人精品xxx一区一二区 | 久久精品在线免费视频 | 色黄网站 | 91一区二区三区 | 天天干天天干 | 美女网站视频免费黄 | 国产美女特级嫩嫩嫩bbb片 | 欧美性视频在线播放 | 国产人免费人成免费视频 | 97国产一区二区精品久久呦 | 激情欧美一区二区三区中文字幕 | 亚洲日韩中文字幕一区 | 麻豆国产一区二区三区四区 |