共享一个控制舵机左右摇摆的C程序
#include <reg52.h>#define uint unsigned int
#define uchar unsigned char
sbit c=P0^1;//白线控制线
uint pluse;
uchar flag=0;
volatile uchar count;
void begin()//初始化程序
{
c=1;
TMOD=0x11;//设置定时器0和定时器1的工作方式为方式1
TH0=(65536-1000)/256; //求模
TL0=(65536-1000)%256; //求余
TH1=(65536-20000)/256; //求模
TL1=(65536-20000)%256; //求余
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
ET1=1;
TR1=1;
}
void timer0() interrupt 1 //定时器0中断服务程序
{
TR0=0;//关闭定时器0
c=0;
TH0=(65536-pluse)/256; //求模
TL0=(65536-pluse)%256; //求余
}
void timer1() interrupt 3 //定时器1中断服务程序
{
c=1;
TH1=(65536-20000)/256; //求模
TL1=(65536-20000)%256; //求余
TR0=1;//启动定时器0
count++;
}
void main()
{
begin();
count=0;
pluse=1000;
while(1)
{
if(count==2)
{
if(pluse==2000){flag=1;}
if(pluse==1000){flag=0;}
if(flag==0){pluse=pluse+50;}
if(flag==1){pluse=pluse-50;}
count=0;
}
}
}
程序已经通过测试,想测试舵机好坏的可以拿去试试。 好的。。 好的。。 楼主给的程序是好的 {:biggrin:}学习了学习
额,频率太高怎么解决!{:cry:} {:smile:}{:smile:}{:smile:}{:smile:}{:smile:} {:smile:}{:smile:}{:smile:}{:smile:}{:smile:}谢谢分享 已验证字数补丁.exe
页:
[1]