N76E003控制双路步进电机(开环)

0、引言

实验材料

类目 型号
MCU N76E003
步进电机 42步进
步进电机驱动器 设置800细分
电源 24V
TTL CH340

代码工程可在此下载

1、程序逻辑

1.1、程序采用PWM中断,实现对PWM脉冲计数,由此实现开环控制步进电机,设定为下降沿触发。
1.2、步进电机驱动器提供EN、Pulse、DIR、COM四个接口,其中COM接单片机的VCC,EN用于控制电机使能,DIR用于电机换向,Pulse为输入脉冲。
1.3、根据上述说明,单片机PWM持续产生脉冲,通过EN控制步进电机是否使能
1.4、流程图如下

在这里插入图片描述

2、程序代码

#include "N76E003.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_define.h"

#define uint unsigned int
#define uchar unsigned char 

uint time;//频率
uint temp[10];//存放输入捕获值
int i=0;

uint PWM_Value;//需要改变的占空比值

uchar UART0_RX_BUF[11];//串口0,串口1数据接收缓冲区
uchar UART0_RX_STA=0;//串口0,串口1接收计数器
uchar uFlag=0;//串口中断指令接收完成标志



char start=0;

//用于数据记录
uint ct1,ct2;
//脉冲期望值(0-6700)
uint evt1,evt2;
//状态机:
//0——初始状态
//1——串口
//2——运行到了指定距离。
uchar Flag1=0,Flag2=0;

//PWM中断计数器控制器
//0:关闭
//1:开启
char CEP1=0,CEP2=0;


//用于回到零点
sbit KEY1=P0^4;
sbit KEY2=P1^4;
//使能
sbit EN1=P1^0;
sbit EN2=P1^1;
//换向
sbit DIR1=P1^2;
sbit DIR2=P1^3;
//指示灯
sbit LED1=P0^5;
sbit LED2=P3^0;



void delay1(uint ms);
void PWM_DEAD_TIME_VALUE(UINT16	DeadTimeData);


/*
程序说明:
1、PWM一直保持输出,使用EN来控制步进电机输出
2、使用PWM中断,实现脉冲计数,设置为全局变量
3、串口接收数据,数据包见下'A1234B1234E'其中A为第一个步进电机、B为第二个
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值