||
51单片机舵机程序不用定时器:自己整理的不用定时器调舵机向左,中,右三个方向摆动的51单片机程序
#include<reg52.h>
sbit a=P0^0;
#define uchar unsigned char
#define uint unsigned int
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delayus2x(unsigned char t)
{
while(--t);
}
void delay750us()
{
delayus2x(245);
delayus2x(122);
}
void delay1500us()
{
delayus2x(245);
delayus2x(245);
delayus2x(245);
}
void delay2300us()
{
delayus2x(245);
delayus2x(245);
delayus2x(245);
delayus2x(245);
delayus2x(147);
}
void main() //a=~a和delay顺序不能反
{
while(1)
{
uint i=50;
while(--i) //中
{
a=1;
delay1500us();
a=0;
delay(20);
}
i=50;
while(--i) //左
{
a=1;
delay2300us();
a=0;
delay(20);
}
i=50;
while(--i) //右
{
a=1;
delay750us();
a=0;
delay(20);
}
}
}