黄工无刷电机学习
直播中

靓仔峰

9年用户 1138经验值
擅长:可编程逻辑
私信 关注
[问答]

舵机转向如何自动控制程序单片机?

舵机转向如何自动控制程序单片机

回帖(1)

申根换

2021-10-19 14:46:32
单片机为普中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;
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分