标题:
单片机控制舵机(0 45 90 135 180度旋转源程序)
[打印本页]
作者:
bigeyes
时间:
2018-5-3 22:42
标题:
单片机控制舵机(0 45 90 135 180度旋转源程序)
单片机源程序如下:
#include<reg52.h>
#define unit unsigned int
#define uchar unsigned char
sbit a5=P2^5; //黑白传感器
sbit a6=P2^6; //黑白传感器
sbit a1=P2^1; //电机
sbit a2=P2^2; //电机
sbit a3=P2^3; //电机
sbit a4=P2^4; //电机
sbit a7=P2^7; //黑白传感器 没用
sbit a8=P2^0; //黑白传感器 没用
int i;
sbit PWM3=P0^3;
sbit PWM2=P0^2;
sbit PWM1=P0^1;
sbit cgq=P0^0;
void delay(int t) //延时
{
int a,b;
for(a=0;a<t;a++)
for(b=0;b<120;b++);
}
void delayx1ms(int x)
{
unsigned char a,b;
for(x;x>0;x--)
for(b=102;b>0;b--)
for(a=3;a>0;a--);
}
void delay1ms()
{
unsigned char a,b;
for(b=102;b>0;b--)
for(a=3;a>0;a--);
}
void delay500us()
{
unsigned char a,b;
for(b=1;b>0;b--)
for(a=227;a>0;a--);
}
void qianjin()
{
a1=0;
a2=1;
a3=0;
a4=1;
delay(200);
}
void zuozhuan()
{
a1=0;
a2=1;
a3=1;
a4=0;
delay(100);
}
void youzhuan()
{
a1=1;
a2=0;
a3=0;
a4=1;
delay(100);
}
void stop()
{
a1=0;
a2=0;
a3=0;
a4=0;
}
void L2_0() //2_0
{
int i,j;
for(j=0;j<43;j++)
{
PWM2=1;
delay500us();
// delay1ms();
PWM2=0;
for(i=0;i<19;i++)
delay1ms();
delay500us();
PWM2=0;
for(i=0;i<20;i++)
delay1ms();
}
}
void L2_45() //2_45
{
int i,j;
for(j=0;j<43;j++)
{
PWM2=1;
// delay500us();
delay1ms();
PWM2=0;
for(i=0;i<19;i++)
delay1ms();
// delay500us();
PWM2=0;
for(i=0;i<20;i++)
delay1ms();
}
}
void L2_90() //2_90
{
int i,j;
for(j=0;j<43;j++)
{
PWM2=1;
delay1ms();
delay500us();
PWM2=0;
for(i=0;i<18;i++)
delay1ms();
delay500us();
PWM2=0;
for(i=0;i<20;i++)
delay1ms();
}
}
void L2_135() //2_135
{
int i,j;
for(j=0;j<43;j++)
{
PWM2=1;
delay1ms();
delay1ms();
// delay500us();
PWM2=0;
for(i=0;i<18;i++)
delay1ms();
// delay500us();
PWM2=0;
for(i=0;i<20;i++)
delay1ms();
}
}
void L2_180() //2_180
{
int i,j;
for(j=0;j<43;j++)
{
PWM2=1;
delay1ms();
delay1ms();
delay500us();
PWM2=0;
for(i=0;i<17;i++)
delay1ms();
delay500us();
PWM2=0;
for(i=0;i<20;i++)
delay1ms();
}
}
void L1_0() //1_0
{
int i,j;
for(j=0;j<43;j++)
{
PWM1=1;
delay500us();
// delay1ms();
PWM1=0;
for(i=0;i<19;i++)
delay1ms();
delay500us();
PWM1=0;
for(i=0;i<20;i++)
delay1ms();
}
}
void L1_45() //1_45
{
int i,j;
for(j=0;j<43;j++)
{
PWM1=1;
// delay500us();
delay1ms();
PWM1=0;
for(i=0;i<19;i++)
delay1ms();
// delay500us();
PWM1=0;
for(i=0;i<20;i++)
delay1ms();
}
}
void L1_90() //1_90
{
int i,j;
for(j=0;j<43;j++)
{
PWM1=1;
delay500us();
delay1ms();
PWM1=0;
for(i=0;i<18;i++)
delay1ms();
delay500us();
PWM1=0;
for(i=0;i<20;i++)
delay1ms();
}
}
void L1_135() //1_135
{
int i,j;
for(j=0;j<43;j++)
{
PWM1=1;
delay1ms();
delay1ms();
PWM1=0;
for(i=0;i<18;i++)
delay1ms();
// delay1ms();
PWM1=0;
for(i=0;i<20;i++)
delay1ms();
}
}
void L1_180() //1_180
{
int i,j;
for(j=0;j<43;j++)
{
PWM1=1;
delay1ms();
delay1ms();
delay500us();
PWM1=0;
for(i=0;i<17;i++)
delay1ms();
delay500us();
// delay1ms();
PWM1=0;
for(i=0;i<20;i++)
delay1ms();
}
}
void L3_0() //3_0
{
int i,j;
for(j=0;j<43;j++)
{
PWM3=1;
delay500us();
// delay1ms();
PWM3=0;
for(i=0;i<19;i++)
delay1ms();
delay500us();
}
}
void L3_45() //3_45
{
int i,j;
for(j=0;j<43;j++)
{
PWM3=1;
// delay500us();
delay1ms();
PWM3=0;
for(i=0;i<19;i++)
delay1ms();
// delay500us();
}
}
void L3_90() //3_90
{
int i,j;
for(j=0;j<43;j++)
{
PWM1=1;
delay500us();
delay1ms();
PWM1=0;
for(i=0;i<18;i++)
delay1ms();
delay500us();
}
}
void L3_135() //3_135
{
int i,j;
for(j=0;j<43;j++)
{
PWM3=1;
delay1ms();
delay1ms();
PWM3=0;
for(i=0;i<18;i++)
delay1ms();
// delay1ms();
}
}
void L3_180() //3_180
{
int i,j;
for(j=0;j<43;j++)
{
PWM3=1;
delay1ms();
delay1ms();
delay500us();
PWM3=0;
for(i=0;i<17;i++)
delay1ms();
delay500us();
// delay1ms();
}
}
void main()
{
while(1)
{
if(cgq==0)
{
stop();
L2_0();
delayx1ms(200); //4
L1_0();
delayx1ms(200); //1
L2_90();
delayx1ms(200); //2
L1_45();
delayx1ms(200); //3
}
if(a5==1&&a6==1)
{
qianjin();
for(i=300;i>0;i--);
}
if(a5==1&&a6==0)
{
youzhuan();
if(a5==0&&a6==0)
youzhuan();
}
if(a5==0&&a6==1)
{
zuozhuan();
if(a5==0&&a6==0)
zuozhuan();
}
if(a5==0&&a6==0)
{
stop();
}
if(a7==0&&a8==0)
{
stop();
}
}
}
复制代码
所有资料51hei提供下载:
舵机(0 45 90 135 180).docx
(13.52 KB, 下载次数: 53)
2018-5-3 22:41 上传
点击文件名下载附件
舵机
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1