找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2768|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

求助,如何在原來基礎(chǔ)上調(diào)節(jié)步進(jìn)電機(jī)的速度�。�

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uint tt0;
uchar temp,i=0,shu,flag,keynum;
uchar code table1[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //zhen
uchar code table2[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //fang
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void init()
{
keynum=0;
EA=1;
TMOD=0X01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
ET0=1;
TR0=1;
}
void keyscan()
{
  P3=0xfe;
  temp=P3;
  temp=temp&0xf0;
  while(temp!=0xf0)
  {
   delay(1);
   temp=P3;
   temp=temp&0xf0;
    while(temp!=0xf0)
{
    temp=P3;
    switch(temp)
    {
     case 0xee:shu=1;
  break;
  case 0xde:shu=2;
  break;
  case 0xbe:shu=3;
  break;
  case 0x7e:shu=4;
  break;      
    }
   while(temp!=0xf0)
   {
    temp=P3;
    temp=temp&0xf0;
   }

}
  }
}
void main()
{
init();
while(1)
{
   keyscan();
if(shu==1&flag==1)
{
flag=0;
P0=table1[i];
i++;
if(i==8)
     i=0;
}
if(shu==2&flag==1)
{
flag=0;
P0=table2[i];
i++;
if(i==8)
     i=0;
}
if(shu==3&flag==1)
{
flag=0;
P0=0;
}
     
}
}
void timer0() interrupt 1
{
TH0=(65535-5000)/256;
TL0=(65535-5000)%256;
tt0++;
if(tt0==20)
{
flag=1;
tt0=0;
}
  
}


這個(gè)是最基本的控制步進(jìn)電機(jī)正反的程序,但是如何調(diào)節(jié)速度呢?求各位分享一下!

步進(jìn)電機(jī)原理圖.jpg (124.51 KB, 下載次數(shù): 185)

步進(jìn)電機(jī)原理圖.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:70751 發(fā)表于 2015-1-3 21:20 | 只看該作者
admin
求助ing��!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表