PIC ULN2003A控制步进电机正转 反转
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_642006XDWUIY.jpg(原文件名:未命名.jpg)
#include<pic.h>
#define uchar unsigned char
#define uintunsigned int
//四相步进电机的驱动脉冲分配方式有单四拍方式、
//双四拍方式以及单双八拍方式。本例我们将采用单双八拍方式,即A-AB-B-BC-C-CD-D-DA。
//所以其正转控制脉冲
//QQ9086074 PICULN2003A控制步进电机正转 反转
//http://v.ku6.com/show/9ITVNj7H7xjnOw_7.html
const uchar table[]={0x00,0x01,0x09,0x08,0x0c,0x04,0x06,0x02,0x03};//反转控制脉冲
const uchar table1[]={0x00,0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//正转
void delay(uint x)//1毫秒级
{
uint a,b;
for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
/*void main()
{
uchar i;
TRISD=0;
PORTD=0;
while(1)
{
for(i=8;i>0;i--)
{
PORTD=table;
delay(100);
}
}
} */
void main()
{
uchar i;
TRISD=0;
PORTD=0;
TRISB=0xff;//输入状态
while(1)
{
if(RB0==0)//按键按下
{
delay(10);//去斗
if(RB0==0)//按键释放
{
while(!RB0); //按下去是0 !取反为1当松开按键是0点亮LED
for(i=8;i>0;i--)
{
PORTD=table1;
delay(100);
}//正转
}
}
if(RB1==0)//按键按下
{
delay(10);//去斗
if(RB1==0)//按键释放
{
while(!RB1); //按下去是0 !取反为1当松开按键是0点亮LED
for(i=8;i>0;i--)
{
PORTD=table;
delay(100);
}//反转
}
}
}
}
点击此处下载 ourdev_642007I591D6.rar(文件大小:146K) (原文件名:1.rar) mark 下来看看,谢谢 mark 学习学习!
页:
[1]