#include
signed long beats = 0; //电机转动节拍总数
void KeyDriver();
void main()
{
EA = 1; //使能总中断
TMOD = 0x01; //设置T0为模式1
TH0 = 0xFC; //为T0赋初值0xFC67,定时1ms
TL0 = 0x67;
ET0 = 1; //使能T0中断
TR0 = 1; //启动T0
while (1)
{
KeyDriver(); //调用按键驱动函数
}
}
/* 步进电机启动函数,angle-需转过的角度 */
void StartMotor(signed long angle)
{
//在计算前关闭中断,完成后再打开,以避免中断打断计算过程而造成错误
EA = 0;
beats = (angle * 4076) / 360; //实测为4076拍转动一圈
EA = 1;
}
/* 步进电机停止函数 */
void StopMotor()
{
EA = 0;
beats = 0;
EA = 1;
}
/* 按键动作函数,根据键码执行相应的操作,keycode-按键键码 */
void KeyAction(unsigned char