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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 18827|回復: 13
收起左側

51單片機控制42步進電機不知道接線,程序已經寫好!求救50黑幣

[復制鏈接]
ID:107207 發表于 2016-3-3 22:58 | 顯示全部樓層 |閱讀模式
50黑幣
本帖最后由 1492548699 于 2016-3-4 20:46 編輯

QQ圖片20160303225623.jpg QQ圖片20160303225637.jpg QQ圖片20160303225643.jpg QQ圖片20160303225649.jpg 51單片機控制42步進電機不知道接線,程序有!求救50黑幣。。,現在想要電機轉起來,希望有人能夠幫我,51芯片的腳怎么接我才可以控制電機。謝謝  qq1492548699










#include <AT89X52.h>       //調用51單片機的頭文件
//---------------------------------------
//定義一個數據表格
unsigned char code TAB[8]=
{                          //定義表格一定要使用code,這樣會做到程序存儲區中
    0x7F,                  //表格第1步數據0b01111111
    0x3F,                  //表格第2步數據0b00111111
    0xBF,                  //表格第3步數據0b10111111
    0x9F,                  //表格第4步數據0b10011111
    0xDF,                  //表格第5步數據0b11011111
    0xCF,                  //表格第6步數據0b11001111
    0xEF,                  //表格第7步數據0b11101111
    0x6F,                  //表格第8步數據0b01101111
};
//---------------------------------------
//8獨立按鍵相關I/O設置
sbit P1key=P2^0;           //按鍵P1接在P2.0口上
sbit P2key=P2^1;           //按鍵P2接在P2.1口上
sbit P3key=P2^2;           //按鍵P3接在P2.2口上
sbit P4key=P2^3;           //按鍵P4接在P2.3口上
sbit P5key=P2^4;           //按鍵P5接在P2.4口上
sbit P6key=P2^5;           //按鍵P6接在P2.5口上
sbit P7key=P2^6;           //按鍵P7接在P2.6口上
sbit P8key=P2^7;           //按鍵P8接在P2.7口上
//---------------------------------------
//---------------------------------------
//按鍵部分用寄存器設置
unsigned char KEYbuf;      //設置8位的寄存器用來暫存按鍵鍵值數據
unsigned char KEYcon;
bit KEYbit;
//---------------------------------------
unsigned char STEPspeed;
//---------------------------------------
//名稱: 主函數
//適用:給力者GL9單片機開發學習系統
//公司:寧波芯動電子有限公司
//網址:www.MovingChip.com
//日期:20120914
//---------------------------------------
void main(void)            //主函數,單片機開機后就是從這個函數開始運行
{
    unsigned int a=0;      //定義一個int型變量,做延時用
    unsigned char b=0;    //定義一個char型變量,顯示內容用
    while(1)               //死循環,單片機初始化后,將一直運行這個死循環
    {
  //***8獨立按鍵掃描部分***
    //按P1-P8鍵,KEYbuf賦值1-8
        if(P1key==0) KEYbuf=1;     //如果P1鍵按下,KEYbuf賦值寫1
        else if(P2key==0) KEYbuf=2; //如果P2鍵按下,KEYbuf賦值寫2
        else if(P3key==0) KEYbuf=3; //如果P3鍵按下,KEYbuf賦值寫3
        else if(P4key==0) KEYbuf=4; //如果P4鍵按下,KEYbuf賦值寫4
        else if(P5key==0) KEYbuf=5; //如果P5鍵按下,KEYbuf賦值寫5
        else if(P6key==0) KEYbuf=6; //如果P6鍵按下,KEYbuf賦值寫6
        else if(P7key==0) KEYbuf=7; //如果P7鍵按下,KEYbuf賦值寫7
        else if(P8key==0) KEYbuf=8; //如果P8鍵按下,KEYbuf賦值寫8
    else
    {
   KEYbuf=0;
     if(KEYbit==0)
   {
    if(++KEYcon>20)
    {
     KEYcon=0;
       KEYbit=1;              //無按鍵按下,KEYbit賦值為1
    }
   }
  }
    //*********************      
  if(KEYbuf==1)               //P1鍵控制步進電機方向
  {
   if(KEYbit==1)
   {
    KEYbit=0;
    if(++STEPspeed>3) STEPspeed=0;     //速度加1,并限制在0-3間         
   }
  }
  if(STEPspeed==0)
  {
   for(a=0;a<1700;a++);   //速度1延時
  }
  else if(STEPspeed==1)
  {
   for(a=0;a<1300;a++);   //速度2延時
  }
  else if(STEPspeed==2)
  {
   for(a=0;a<900;a++);    //速度3延時  
  }
  else  
  {
   for(a=0;a<500;a++);    //速度4延時
  }
  if(++b>7) b=0;         //b做+1操作,并限制在0-7以內      
  P1=TAB;      //將TAB的值送入P1口輸出
   }
}

 

回復

使用道具 舉報

ID:71508 發表于 2016-3-4 14:04 | 顯示全部樓層
估計樓主的程序也不行吧  
回復

使用道具 舉報

ID:104472 發表于 2016-3-4 15:40 | 顯示全部樓層
一般三根線,cp,drive,GND 端,
程序可能要用pwm,但是沒見你程序里面有,
回復

使用道具 舉報

ID:94991 發表于 2016-3-4 16:46 | 顯示全部樓層
樓主土豪,買一百多的驅動器,方向和脈沖只需要接在+上面就行了,然后就是四線結對,分為兩相,分不出來的話看括號(那一根線把四線其中的兩根短接,然后轉動電機軸,發現有種鎖死的感覺那就是一對的,然后就是使能端接。
回復

使用道具 舉報

ID:107207 發表于 2016-3-4 18:44 | 顯示全部樓層
俠歌無畏 發表于 2016-3-4 16:46
樓主土豪,買一百多的驅動器,方向和脈沖只需要接在+上面就行了,然后就是四線結對,分為兩相,分不出來的 ...

驅動28塊錢買的。我現在單片機的腳怎么接驅動上面來 就是搞不清楚,比如說P1.2接哪里 P1.3接哪里
回復

使用道具 舉報

ID:94991 發表于 2016-3-4 19:03 | 顯示全部樓層
1492548699 發表于 2016-3-4 18:44
驅動28塊錢買的。我現在單片機的腳怎么接驅動上面來 就是搞不清楚,比如說P1.2接哪里 P1.3接哪里

看完你的程序,突然發現你的程序是寫給直流電機的。
回復

使用道具 舉報

ID:94991 發表于 2016-3-4 19:06 | 顯示全部樓層
俠歌無畏 發表于 2016-3-4 19:03
看完你的程序,突然發現你的程序是寫給直流電機的。

這是兩相四線的驅動方式,就按照這寫程序就好了
QQ圖片20160304190530.png
回復

使用道具 舉報

ID:94991 發表于 2016-3-4 19:09 | 顯示全部樓層
俠歌無畏 發表于 2016-3-4 19:06
這是兩相四線的驅動方式,就按照這寫程序就好了

這是我寫的1相/兩相/1,2相勵磁的程序

/*
1相勵磁法延遲較2相勵磁法延遲時間長,一般來說,1相勵磁法延遲為5~10毫秒,2相勵磁法延遲時間為2毫秒左右,

但一般使用1-2相勵磁法
*/


#include<reg52.h>
sbit a1=P1^0;
sbit b1=P1^1;
sbit c1=P1^2;
sbit d1=P1^3;


bit flag;

unsigned char speed;

#define coil_ab1 {a1=1;b1=1;c1=0;d1=0;}

#define coil_bc1 {a1=0;b1=1;c1=1;d1=0;}

#define coil_cd1 {a1=0;b1=0;c1=1;d1=1;}

#define coil_da1 {a1=1;b1=0;c1=0;d1=1;}

#define coil_a1 {a1=1;b1=0;c1=0;d1=0;}

#define coil_b1 {a1=0;b1=1;c1=0;d1=0;}

#define coil_c1 {a1=0;b1=0;c1=1;d1=0;}

#define coil_d1 {a1=0;b1=0;c1=0;d1=1;}


#define coil_off {a1=0;b1=0;c1=0;d1=0;}

void delay(unsigned char t);




void main()
{
        EA=1;
        EX0=1;
        IT0=1;

        speed=1;
while(1)
{


        while(flag)
        {
                coil_off;
                delay(speed);
               
                coil_a1;
                delay(speed);               

                coil_ab1;
                delay(speed);

                coil_b1;
                delay(speed);               


                coil_bc1;
                delay(speed);

                coil_c1;
                delay(speed);               


                coil_cd1;
                delay(speed);

                coil_d1;
                delay(speed);               


                coil_da1;
                delay(speed);


        }





        while(!flag)
        {
                coil_off;
                delay(speed);

                coil_da1;
                delay(speed);               

                coil_d1;
                delay(speed);

                coil_cd1;
                delay(speed);               


                coil_c1;
                delay(speed);

                coil_bc1;
                delay(speed);               


                coil_b1;
                delay(speed);

                coil_ab1;
                delay(speed);               


                coil_a1;
                delay(speed);


        }
}
}


void delay(unsigned char t)
{
        unsigned int x,y;
        for(x=0;x<t;x++)
                for(y=0;y<123;y++);
}

void ISR_INT0(void) interrupt 0
{

if(!INT0)
   {
   delay(10);//在此處可以添加去抖動程序,防止按鍵抖動造成錯誤
   if(!INT0)
   //while(!INT1);//等待按鍵釋放
     {
     flag=!flag;   
     }
   }
}
回復

使用道具 舉報

ID:107207 發表于 2016-3-4 19:42 | 顯示全部樓層
俠歌無畏 發表于 2016-3-4 19:09
這是我寫的1相/兩相/1,2相勵磁的程序

/*

可以加我QQ1492548699嗎
回復

使用道具 舉報

ID:107207 發表于 2016-3-4 19:45 | 顯示全部樓層
俠歌無畏 發表于 2016-3-4 19:09
這是我寫的1相/兩相/1,2相勵磁的程序

/*

我現在不曉得接線 哎。我的控制線該接的單片機的哪幾腳
回復

使用道具 舉報

ID:96682 發表于 2016-3-5 01:38 | 顯示全部樓層
買這貨時沒有說明書之類附件的教你如何操作?
回復

使用道具 舉報

ID:107207 發表于 2016-3-8 21:11 | 顯示全部樓層
wc86110 發表于 2016-3-5 01:38
買這貨時沒有說明書之類附件的教你如何操作?

有關鍵是我接上線后電機一秒估計只轉了1毫米的距離。而且電機發熱嚴重
回復

使用道具 舉報

ID:79544 發表于 2016-3-8 21:44 | 顯示全部樓層
你這個驅動器好像還要設置吧。你這個程序不能用。
回復

使用道具 舉報

ID:296880 發表于 2018-3-25 19:27 | 顯示全部樓層
樓主整明白沒,我是新手,剛接觸單片機,同問
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 麻豆va| 久久精品国产一区二区三区不卡 | 看黄在线| 色伊人久久 | 国产精品毛片无码 | 国产精品18hdxxxⅹ在线 | 日韩一区二区三区四区五区 | 亚洲一区有码 | 欧美精品一区二区三区在线 | 最新国产在线 | 中文字幕av网站 | 狠狠操狠狠干 | 国产在线一区二区三区 | 欧美激情精品久久久久久变态 | 欧美一区二 | 一区二区视频在线 | 久久毛片 | 91看片网站 | 亚洲精品一区二区三区四区高清 | 三级成人在线 | 国产福利在线视频 | 久久久精品一区 | 久久九精品| 奇米在线| 日韩一区二区在线视频 | 国产精品永久久久久久久www | 国产伦精品一区二区三区四区视频 | 日本一区二区三区视频在线 | 国产乱精品一区二区三区 | 亚洲国产成人在线视频 | 亚洲三区视频 | 一区二区三区电影在线观看 | 久久av网| 伊人网综合在线 | 久久99网 | 欧美成视频 | 久久亚洲天堂 | 中文字幕亚洲在线 | 免费在线一区二区三区 | 免费黄色在线 | 亚洲av毛片 |