#定義uchar無符號字符
#定義uint無符號整數
sbit key 1 = p3^2;//步進電機逆時針旋轉。
sbit key 2 = p3^3;//步進電機順時針旋轉。
sbit key 3 = p3^4;//步進電機速度調節
uchar步長= 0;
位AB _ flag = 0;
無符號char碼A_Rotation[8]={0x08,0x18,0x10,0x30,0x20,0x60,0x40,0x 48 };//順時針轉動桌子
無符號char碼B_Rotation[8]={0x48,0x40,0x60,0x20,0x30,0x10,0x18,0x 08 };//逆時針轉動桌子
/********************************************************************
*名稱:Delay_1ms()
*函數:延時子程序,延時時間為1 ms * x。
*輸入:X(壹毫秒延遲的次數)
*輸出:無
***********************************************************************/
無效延遲
{
uchar x,j;
for(j = 0;j & lt我;j++)
for(x = 0;x & lt=148;x++);
}
空鍵(void)
{
If(KEY1 == 0) //按P3.2實現步進電機逆時針旋轉。
{
延時(15);
if(KEY1 == 0)
{
while(1)
{
if(KEY1 == 1)
{
延時(15);
if(KEY1 == 1)
{
AB _ flag = 0;
打破;
}
}
}
}
}
If(KEY2 == 0) //按P3.3實現步進電機順時針旋轉。
{
延時(15);
if(KEY2 == 0)
{
while(1)
{
if(KEY2 == 1)
{
延時(15);
if(KEY2 == 1)
{
AB _ flag = 1;
打破;
}
}
}
}
}
If(KEY3 == 0) //按P3.4實現步進電機的調速。
{
延時(15);
if(KEY3 == 0)
{
while(1)
{
if(KEY3 == 1)
{
延時(15);
if(KEY3 == 1)
{
step++;
如果(步長== 3)
{
步長= 0;
}
打破;
}
}
}
}
}
}
主()
{
烏恰爾壹世;
while(1)
{
KEY();//按鍵處理功能
for(I = 0;我& lt8;I++) //因為有8個控制序列。
{
if(AB_flag == 0)
{
p 1 = A _ Rotation[I];//逆時針旋轉
}
其他
{
p 1 = B _ Rotation[I];//順時針旋轉
}
延時(2+步);//改變該參數來調整電機速度。
}
}
}