单片机驱动步进电机C程序

/************************************************************* 程序说明:通过4个按键、2个外部中断和一个定时器控制步进电机的启动/停止/正转/反转/加速/减速

程序设计者:莫剑辉

程序测试时间:2011-4-1

测试电机驱动器:YT-H200B半/整步型驱动器

**************************************************************/ #include

#define Keyen P1 //4个按键位

sbit CP=P0^1; //步进电机驱动器的脉冲输入端

sbit DIR=P0^2; //步进电机驱动器的正反转控制端

sbit OPT=P0^0; //步进电机驱动器的脱机控制端

sbit ENA=P0^3; //步进电机驱动器的驱动器使能端

unsigned int i,j,k=2500;

/**************************************************************

定时器/中断子程序

**************************************************************/ void discontinue()

{

IE=0x87; //开启中断总开关,启动INT0/INT1/TF0中断功能TCON=0x15; //2个外部中断采用负边缘触发,启动Timer 0

TMOD=0x01; //选定定时器1,Mode 1

TH0=(65535-k)/256;

TL0=(65535-k)%256;

}

/************************************************************** 4个按键控制步进电机的启动/停止/正转/反转

**************************************************************/ void key()

{

switch(Keyen) //判断按键

{

case 0xfe: ENA=1; break; //当接P1_0的按键被按下,电机启动

case 0xfd: ENA=0; break; //当接P1_1的按键被按下,电机停止

case 0xfb: DIR=1; break; //当接P1_2的按键被按下,电机正转

case 0xf7: DIR=0; break; //当接P1_3的按键被按下,电机反转

default:break;

}

}

/**************************************************************

主程序main()

**************************************************************/ void main()

{

相关文档