📄 controlmotor.c
字号:
# include"at89x52.h"
# include"intrins.h"
# include"StepperMotorlib.h"
State state=STILL;
uint speed=10;
Direction dir=CLOCKWISE;
uchar step[8]={0x08,0x0a,0x02,0x06,0x04,0x05,0x01,0x09};
void MyStepSequence(uchar x);
void main(void)
{
T2CON=0x38;
TL2=0xd9;
TH2=0xff;
RCAP2L=0xd9;
RCAP2H=0xff;
TR2=1;
SCON=0x50;
IE=0x90;
StepperMotorInit(MyStepSequence,state,speed,dir);
while(1)
{
RotateThread();
}
}
void MyStepSequence(uchar x)
{
P2=(P2&0xf0)|(step[x]&0x0f);
}
void UARTInt() interrupt 4 using 1
{
if(TI==1)
{
TI=0;
return;
}
else
{
uchar rcv;
while(RI!=1);
{
RI=0;
rcv=SBUF;
switch(rcv)
{
case 49:RotateControl(START,speed,dir);
break;
case 50:RotateControl(STOP,speed,dir);
break;
case 51:RotateControl(SETPARA,speed,CLOCKWISE);
dir=CLOCKWISE;
break;
case 52:RotateControl(SETPARA,speed,COUNTERCLOCKWISE);
dir=COUNTERCLOCKWISE;
break;
case 53:if(speed<=MAX_SPEED){
speed++;
}
RotateControl(SETPARA,speed,dir);
break;
case 54:if(speed>1){
speed--;
}
RotateControl(SETPARA,speed,dir);
break;
default:break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -