实现现象:下载程序后,按照光盘内操作视频接线,步进电机旋转
注意事项:无
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
#include<intrins.h> //因为要用到左右移函数,所以加入这个头文件
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
sbit MOTOA = P1^0;
sbit MOTOB = P1^1;
sbit MOTOC = P1^2;
sbit MOTOD = P1^3;
#define SPEED 200
/*******************************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
while(i--);
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
P1=0X00;
while(1)
{
MOTOA = 1;
MOTOB = 0;
MOTOC = 1;
MOTOD = 1;
delay(SPEED);
MOTOA = 1;
MOTOB = 1;
MOTOC = 1;
MOTOD = 0;
delay(SPEED);
MOTOA = 0;
MOTOB = 1;
MOTOC = 1;
MOTOD = 1;
delay(SPEED);
MOTOA = 1;
MOTOB = 1;
MOTOC = 0;
MOTOD = 1;
delay(SPEED);
}
}
这段代码是让这四个电机按照一定的顺序和速度进行开启和关闭,形成一种特定的运动模式。
sbit MOTOA = P1^0;
、sbit MOTOB = P1^1;
、sbit MOTOC = P1^2;
、sbit MOTOD = P1^3;
是定义四个位变量,它们对应单片机的P1口的第0、1、2、3位,分别控制四个电机。#define SPEED 200
是定义一个宏,表示电机的运行速度。void delay(u16 i)
是一个延时函数,参数i决定了延时的时间。这个函数通过一个while循环实现延时。void main()
是主函数,程序的执行从这里开始。在主函数中,首先将P1口的所有引脚设置为低电平,然后进入一个无限循环,在循环中,按照一定的顺序和速度控制四个电机的开启和关闭。