步进电机转动历程
单片机源程序如下:
- #include "reg52.h"
- //电机IO
- #define GPIO_MOTOR P1
- //sbit F1 = P1^0;
- //sbit F2 = P1^1;
- //sbit F3 = P1^2;
- //sbit F4 = P1^3;
- //按键IO
- sbit K1=P3^0; //接开关
- //sbit K2=P3^1;
- //sbit K3=P3^2;
- //sbit K4=P3^3;
- unsigned char code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //反转顺序
- unsigned char code FFW1[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//正转
- unsigned int k=0,j=0;
- void Delay(unsigned int t);
- void Motor();
- void Motor1();
- /*******************************************************************************
- * 函 数 名 : main
- * 函数功能 : 主函数
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void main(void)
- {
- while(1)
- {
- if(K1==0) //通电,正转25
- {
- for(k;k<28;k++)
- {Motor1(); }
- j=0;
- }
- else if(K1==1) //断电,倒转25
- {
- for(j;j<28;j++)
- {Motor(); }
- k=0;
- }
- }
- }
- /*******************************************************************************
- * 函 数 名 : Motor
- * 函数功能 : 电机旋转函数
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void Motor() //反转
- {
- unsigned char i;
- for(i=0;i<8;i++)
- {
- GPIO_MOTOR = FFW[i]&0x1f; //取数据
- Delay(13); //调节转速
- }
- }
- void Motor1() //正转
- {
- unsigned char i;
- for(i=0;i<8;i++)
- {
- GPIO_MOTOR = FFW1[i]&0x1f; //取数据
- Delay(13); //调节转速
- }
- }
- /*******************************************************************************
- * 函 数 名 : Delay
- * 函数功能 : 延时
- * 输 入 : t
- * 输 出 : 无
- *******************************************************************************/
- void Delay(unsigned int t)
- {
- unsigned int k;
- while(t--)
- {
- for(k=0; k<80; k++)
- { }
- }
- }
复制代码
所有资料51hei提供下载:
步进电机转动.rar
(24.38 KB, 下载次数: 22)
|