controlmotor.c

来自「用C语言编写的步进电机的驱动程序」· C语言 代码 · 共 72 行

C
72
字号
# 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 + =
减小字号Ctrl + -
显示快捷键?