📄 步进电机.c
字号:
//------------------------------------------
//程序名称:步进电机.c
//功能描述:控制步进电机来回运转
//作者:Lee197
//公司:Uritest
//版本:V1.00
//编写日期:2008-07-17
//-------------------------------------------
#include<STC.h>
#include<STCCONFIG.h>
u16 i=0;
u8 turn=1; //控制步进电机的转向。turn=1,电机向外运行;turn=0,电机向内部运行;
u8 flag=0;
u8 step=0;
u8 motorctr[ ]={0x09,0x05,0x06,0x0A};
//----------------------------------------------------------------
//子程序名称: void int0() interrupt 0 using 0
//功能描述: 外部中断停止电机运行
//--------------------------------------------------------------
void int0() interrupt 0 using 0
{
turn=0;
flag=1;
}
//----------------------------------------------------------------
//子程序名称: void timer0(void) interrupt 1 using 1
//功能描述: 定时器控制步进电机每步耗时5ms
//--------------------------------------------------------------
void timer0(void) interrupt 1 using 1
{
TH0=0xDC; //定时5ms
TL0=0x00;
if(turn)
{
pprmotor=motorctr[step]; //步进电机向外部走
if(step==0)
step=3;
else
step--;
}
else
{
pprmotor=motorctr[step]; //步进电机向内部走
if(step==3)
step=0;
else
step++;
}
}
//----------------------------------------------------------------
//子程序名称: void timer0(void) interrupt 3 using 2
//功能描述: 控制电机向内部运行10s
//--------------------------------------------------------------
void timer1(void) interrupt 3 using 2
{
TH1=0xB8;
TL1=0x00;
if(flag)
{
i=i+1;
if(i==1000) //控制步进电机向内部运行10s
{
i=0;
turn=1;
flag=0;
}
}
}
//----------------------------------------------------------------
//子程序名称: intial( )
//功能描述: 初始化
//--------------------------------------------------------------
intial( )
{
EA=1;
ET0=1;
ET1=1;
EX0=1;
IT0=1;
TMOD=0x11;
TH0=0xB8;
TL0=0x00;
TH1=0xB8;
TL1=0x00;
}
/********************************/
/* " 主程序 " */
/********************************/
main( )
{
intial();
MOTOR_EN=1;
TR0=1;
TR1=1;
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -