
51单片机控制步进电机正转5圈,反转5圈。
单片机源程序如下:
代码:
- //步进电机正反转
- //电机使用端口P1.0,P1.1,P1.2,P1.3
- //单双八拍工作方式:A-AB-B-BC-C-CD-D-DA
- //
- #include <reg51.h>
- #include <intrins.h>
- //**********************正向旋转相序表*****************************
- unsigned char code FFW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
- //**********************反向旋转相序表*****************************
- unsigned char code REV[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};
- //***********************延时子程序********************************
- void delay(unsigned int t)
- {
- unsigned int k;
- while(t--)
- {
- for(k=0; k<125; k++)
- {}
- }
- }
-
- //**********************步进电机正转******************************
- void motor_ffw(unsigned int n)
- {
- unsigned char i;
- unsigned int j;
- for (j=0; j<8*64*n; j++)
- {
- for (i=0; i<8; i++)
- {
- P1 = FFW[i];
- delay(1);
- }
- }
- }
- //*********************步进电机反转********************************
- void motor_rev(unsigned int n)
- {
- unsigned char i;
- unsigned int j;
- for (j=0; j<8*64*n; j++)
- {
- for (i=0; i<8; i++)
- {
- P1 = REV[i];
- delay(1);
- }
- }
- }
-
- //*************************主程序*********************************
- main()
- {
- while(1)
- {
- motor_ffw(5); //正转5圈
- delay(1000);
- motor_rev(5); //反转5圈
- delay(1000);
- }
- }
所有资料51hei提供下载:
28BYJ48.zip
(693 Bytes)
(下载次数: 44, 2017-12-25 23:12 上传)
下载积分: 黑币 -5