#include ""
//包含头文件
sbit S_A=P2A0;
sbit S_B=P2A1;
sbit S_C=P2A2;
sbit S_D=P2A3;
〃定义步进电机A相
〃定义步进电机B相
〃定义步进
//清除P1 口数据,以免造重影
}
//*****************************************************************************
“““““““““““““““““““““
个个个个个个个个个个个个个个个个个个个个个
//1*5按键扫描函数
/3 ““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““ //*****************************************************************************
“““““““““““““““““““““
个个个个个个个个个个个个个个个个个个个个个
keyScan()
//P3高5位置1,设置为输入
//判断是否有按键按下
{
P3=P3|0xf8;
if((P3&0xf8)!=0xf8)
{
〃延时肖抖
〃再次判断是否有按键按下
〃读取扫描结果
delay(20);
if((P3&0xf8)!=0xf8)
keyValue=(P3&0xf8);
while((P3&0xf8)!=0xf8);
}
}
//*****************************************************************************
“““““““““““““““““““““ 个个个个个个个个个个个个个个个个个个个个个
//1*5按键扫描结果处理函数 //*****************************************************************************
“““““““““““““““““““““ 个个个个个个个个个个个个个个个个个个个个个
keyHandle()
{
switch(keyValue)
{
case 0x78: //如果S17按键按下
{
zf=1; 〃正反标志置1,正向
break;
}
case 0xb8: //如果S18按键按下
{
if(speed>15)speed--;//M速 else speed=30;
break;
}
case 0xd8: //如果S19按键按下
{ stop=〜stop; 〃启动/暂停
break;
}
case 0xe8: 〃如果S20按键按下
{ if(speed<45)speed++;//M速 else speed=30; break; }
case 0xf0: 〃如果S21按键按下
{
zf=0; 〃正反标志置0,反向
break;
}
default:
break;
}
}
//************************************************************
步进电机驱动程序 来自淘豆网m.daumloan.com转载请标明出处.