|
L298n驱动两相四线步进电机四拍、八拍程序
001、步进电机正转两相四拍程序\
002、步进电机正转两相八拍程序\
003、步进电机反转两相四拍程序\
004、步进电机反转两相八拍程序\
005、步进电机两相四拍调速程序\
006、步进电机两相八拍调速程序\
单片机源程序:
- ////////////////////////汇诚科技////////////////////
- ///////////////////步进电机调试程序/////////////
- #include<reg52.h>
- /*****P1.0=A ;P1.1=B ;P1.2=B' ; P1.3=A'****/
- //////////////////////////////////////////////////////////////////////////////////////////////
- /*******************************正转数组**************************************************/
- code unsigned char runz[8]={0x05,0x01,0x09,0x08,0x0a,0x02,0x06,0x04}; //两相四线八拍工作方式
- /*******************************反转数组**************************************************/
- code unsigned char runf[8]={0x04,0x06,0x02,0x0a,0x08,0x09,0x01,0x05}; //两相四线八拍工作方式
- 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<8;z++)
- {
- P1=runz[z];
- delay(y);
- }
- }
- void frun()// 反转运行
- {
- for(z=0;z<8;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 反转
- break;
- }
- if(P2_2==0) // 电机加速
- {
- y+=5;
- }
- if(P2_3==0)
- { // 电机减速
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
完整资料打包下载:
参考例程包.zip
(89.58 KB, 下载次数: 429)
|
评分
-
查看全部评分
|