#include "stepper_motor.h" uchar loop; //步进电机转动变量 uchar Flag_static = 2; uchar code fz[]= //正转数据 {0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; uchar code zz[]= //反转数据 {0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; void proc() //正反转函数 { if(Flag_static == 1) //关 { P2=(P2&0xf0)|zz[loop]; //将正转数据赋值给P2端口,P2接的是步进电机 loop=(loop+1)%8; //循环加,Loop变化范围是 0 - 7,这样结合上一句话就可循环将转动数据送给P2 } } 对这段程序进行逐条注释
时间: 2023-12-10 07:38:22 浏览: 72
```
#include "stepper_motor.h" //引入头文件
uchar loop; //步进电机转动变量
uchar Flag_static = 2; //控制电机正反转的标志位,初始值为2,即不转动
uchar code fz[]= //正转数据 {0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //保存步进电机正转时每一步的数据
uchar code zz[]= //反转数据 {0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //保存步进电机反转时每一步的数据
void proc() //函数名称为proc,用于控制步进电机正反转
{
if(Flag_static == 1) //如果Flag_static等于1,即电机正转
{
P2=(P2&0xf0)|zz[loop]; //将反转数据赋值给P2端口,P2接的是步进电机,保持其他数据不变
loop=(loop+1)%8; //循环加,loop变化范围是0-7,这样结合上一句话就可以循环将转动数据送给P2
}
}
```
这段代码是用来控制步进电机正反转的,主要包含以下几个部分:
1. 引入头文件 "stepper_motor.h"
2. 定义变量 `loop`,用于保存步进电机转动的步数
3. 定义变量 `Flag_static`,用于控制电机正反转的标志位,初始值为2,即不转动
4. 定义常量数组 `fz[]` 和 `zz[]`,用于保存步进电机正转和反转时每一步的数据
5. 定义函数 `proc()`,用于控制步进电机正反转。如果 `Flag_static` 等于1,即电机正转,则将反转数据赋值给 `P2` 端口,保持其他数据不变,通过 `loop` 变量实现循环将转动数据送给 `P2` 端口。
阅读全文