步进电机驱动程序实例
#include <AT89X51.h>
static unsigned int count; //计数
static int step_index; //步进索引数,步进索引数,值为0-7
static bit turn; //步进电机转动方向
static bit stop_flag; //步进电机停止标志
static int speedlevel; //步进电机转速参数,步进电机转速参数,数值越大速度越慢,数值越大速度越慢,最小值为1,速度最快 static int spcount; //步进电机转速参数计数
void delay(unsigned int endcount); //延时函数,延时函数,延时为endcount*0.5毫秒
void gorun(); //步进电机控制步进函数
void main(void)
{
count = 0;
step_index = 0;
spcount = 0;
stop_flag = 0;
P2_4 = 0;
P2_5= 0;
P2_6 = 0;
P2_7 = 0;
EA = 1; //允许CPU中断
TMOD = 0x11; //设定时器0和1为16位模式1
ET0 = 1; //定时器0中断允许
TH0 = 0xFE;
TL0 = 0x0C; //设定时每隔0.5ms中断一次
TR0 = 1; //开始计数
turn = 0;
speedlevel = 2; //先以低速启动
delay(10000);
speedlevel = 1; //再回到正常速度。再回到正常速度。(根据步进电机特点)
do{
speedlevel = 2; //主程序测试循环:主程序测试循环:先低速启动->常速->停止
delay(10000);
speedlevel = 1;
delay(10000);
stop_flag=1;
delay(10000);
stop_flag=0;
}while(1);
}
//定时器0中断处理
void timeint(void) interrupt 1
{
TH0=0xFE;
TL0=0x0C; //设定时每隔0.5ms中断一次
count++;
spcount--;
if(spcount<=0) //驱动脉冲信号周期判断
{
你可能喜欢
- 直流无刷电机驱动
- 空压机系统
- 负反馈放大电路
- 串口通信
- 摩托车用直流无刷起动磁电机及驱动电路设计3页
- 无刷直流电机驱动控制电路6页
- 一种直流无刷电机驱动电路的设计与优化4页
- 毕业设计论文----单片机控制的无刷直流电机驱动系统设计34页
- 江苏大学现代驱动技术与智能化--单片机控制的无刷直流电机驱动论文17页
- ldbl302 高压无刷直流电机控制驱动器使用说明书4页
- 负反馈放大电路方框图及放大倍数估算16页
- 6.6 负反馈放大电路的稳定性16页
- 6.5 交流负反馈对放大电路性能的影响12页
- 6.3 负反馈放大电路方框图及放大倍数估算14页
- 第4章 负反馈放大电路54页
- 第七章 负反馈放大电路95页
- 基于MatlabGUI的串口通信编程实现4页
- VB串口通信程序设计典型实例37页
- verilog串口通信程序34页
- 串口通信 实验八 8251串行通信6页
- 串口通信2页
- 串口的多机通信15页