包含以下51单片机程序:
001、步进电机正转两相四拍程序\
002、步进电机正转两相八拍程序\
003、步进电机反转两相四拍程序\
004、步进电机反转两相八拍程序\
005、步进电机两相四拍调速程序\
006、步进电机两相八拍调速程序\
单片机源码:
- #include<reg52.h>
- /*****P1.0=A ;P1.1=B ;P1.2=A' ; P1.3=B'****/
- code unsigned char run[4]={0x01,0x08,0x02,0x04}; //四相四拍工作方式
- unsigned char s,i,j,k;
- void delay(i)//延时函数
- {
- for(j=0;j<i;j++)
- for(k=0;k<250;k++);
- }
- main()
- {
- unsigned char z,y;
- y=30; //定义延时时间,时间越长电机转速越慢反之则快
- while(1)
- {
- for(z=0;z<4;z++)
- {
- P1=run[z];
- delay(y);
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码- ///////////////////步进电机调试程序/////////////
- #include<reg52.h>
- /*****P1.0=A ;P1.1=B ;P1.2=A' ; P1.3=B'****/
- //////////////////////////////////////////////////////////////////////////////////////////////
- /*******************************正转数组**************************************************/
- code unsigned char runz[4]={0x01,0x08,0x02,0x04}; //两相四线四拍工作方式
- /*******************************反转数组**************************************************/
- code unsigned char runf[4]={0x04,0x02b,0x08,0x01}; //两相四线四拍工作方式
- unsigned char keycan=0; //键值
- unsigned char s,i,j,k,z;
- int y=30;//定义转动速度,数值越大电机转速越慢反之则快
- sbit P2_0=P2^0;//正转按键
- sbit P2_1=P2^1;//反转按键
- sbit P2_2=P2^2;//电机加速
- sbit P2_3=P2^3;//电机减速
- void delay(i)//延时函数
- {
- for(j=0;j<i;j++)
- for(k=0;k<250;k++);
- }
- void zrun()// 正转运行
- {
- for(z=0;z<4;z++)
- {
- P1=runz[z];
- delay(y);
- }
- }
- void frun()// 反转运行
- {
- for(z=0;z<4;z++)
- {
- P1=runf[z];
- delay(y);
- }
- }
- main()
- {
- while(1)
- {
- if(P2_0==0) //如果电机正转按键按下
- {
- keycan=1; //键值等于1
- }
- if(P2_1==0) //如果电机反转按键按下
- {
- keycan=2; //键值等于2
- }
- switch (keycan)
- {
- case 1: zrun(); //键值等于1 正转
- break;
- case 2: frun(); //键值等于2 反转
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
全部资料下载地址:
两相步进电机正反转_参考例程包.rar
(86.73 KB, 下载次数: 69)
|