单片机为普中51单核A2,不同单片机接口可能不同,所以接口要根据单片机原理图进行细微修改。电机使用的电机控制板。
#include
***it PWM=P2^1; //舵机控制脉冲信号输出口
***it led = P2^3 ; //信号灯输出口
***it wen=P3^1; //传感器或按键输入口
***it dianji = P0^1; //电机控制信号输出口
unsigned char angle;
unsigned char count;
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
} //创建延时函数
void Time0_Init()
{
TMOD=0x01;
IE=0x82;
TH0=0xfe;
TL0=0x33;
TR0=1;
} //确定时钟工作方式和初始值
void keyscan1()
{
if(wen==0)
{
delay(10);
angle=4;
} //定义转135度函数(改变数值可以改变角度,1为0度)
}
void keyscan2()
{
if(wen==1)
{
delay(10);
angle=5;
}
} //定义转180度函数
void main()
{ //主函数
wen=1;
count=0;
dianji = 1;
Time0_Init();
while(wen == 1)
{
dianji = 0; //电机控制
if(wen==1)
{
led = 1;
keyscan2();
delay(1000);
}
wen=~wen;
delay(1000);
if(wen==0)
{
led = 0;
keyscan1();
delay(1000);
}
wen=~wen;
delay(500);
}
}
void Time0_Int() interrupt 1 //中断函数,周期为20ms
{
TH0=0xfe;
TL0=0x33;
if(count
PWM=1;
else
PWM=0;
count=(count+1);
count=count%40; //循环40次,可以改为if (count = 40)
// count = 0;
}
单片机为普中51单核A2,不同单片机接口可能不同,所以接口要根据单片机原理图进行细微修改。电机使用的电机控制板。
#include
***it PWM=P2^1; //舵机控制脉冲信号输出口
***it led = P2^3 ; //信号灯输出口
***it wen=P3^1; //传感器或按键输入口
***it dianji = P0^1; //电机控制信号输出口
unsigned char angle;
unsigned char count;
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
} //创建延时函数
void Time0_Init()
{
TMOD=0x01;
IE=0x82;
TH0=0xfe;
TL0=0x33;
TR0=1;
} //确定时钟工作方式和初始值
void keyscan1()
{
if(wen==0)
{
delay(10);
angle=4;
} //定义转135度函数(改变数值可以改变角度,1为0度)
}
void keyscan2()
{
if(wen==1)
{
delay(10);
angle=5;
}
} //定义转180度函数
void main()
{ //主函数
wen=1;
count=0;
dianji = 1;
Time0_Init();
while(wen == 1)
{
dianji = 0; //电机控制
if(wen==1)
{
led = 1;
keyscan2();
delay(1000);
}
wen=~wen;
delay(1000);
if(wen==0)
{
led = 0;
keyscan1();
delay(1000);
}
wen=~wen;
delay(500);
}
}
void Time0_Int() interrupt 1 //中断函数,周期为20ms
{
TH0=0xfe;
TL0=0x33;
if(count
PWM=1;
else
PWM=0;
count=(count+1);
count=count%40; //循环40次,可以改为if (count = 40)
// count = 0;
}
举报