#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
bit flag=0;
sbit p10=P1^0;
sbit p11=P1^1;
sbit p12=P1^2;
uchar a,b,c,d;
void main (void)
{
TMOD=0x1;
EA=1;
ET0=1;
TR0=1;//定时器中断设置
while(1)
{
while(p11==0)
{
p12=1;
a=65036/256; //舵机20ms周期; 高电平加低电平65536
b=65036%256; //500 ms
c=46036/256;//19400ms
d=46036%256;
}
while(p11)
{
p12=0;
a=63236/256;// 2300ms
b=63236%256;
c=47836/256;// 17700ms
d=47836%256;
}
}
}
//中断程序/
void timer0(void) interrupt 1 //产生舵机脉冲的中断
{
flag=!flag;
if(flag==0)
{
p10=1;
TH0=a;
TL0=b;
}
else
{
p10=0;
TH0=c;
TL0=d;
}
}
以前用来控制舵机的,希望对你用用。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。