dengnianlun 发表于 2011-11-5 09:13:29

共享一个控制舵机左右摇摆的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;
   }

   }   
}
程序已经通过测试,想测试舵机好坏的可以拿去试试。

lllyanllll 发表于 2011-11-18 14:29:49

好的。。

lllyanllll 发表于 2011-11-18 14:30:02

好的。。

myem007 发表于 2012-6-13 17:54:05

楼主给的程序是好的

zhanyicai000 发表于 2012-8-13 12:40:52

{:biggrin:}学习了学习

似水、流年 发表于 2012-8-31 10:57:04

额,频率太高怎么解决!{:cry:}

司马朝阳007 发表于 2012-9-3 17:25:27

{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}

司马朝阳007 发表于 2012-9-3 17:25:51

{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}谢谢分享

xckhmf 发表于 2012-10-28 02:08:57

已验证字数补丁.exe
页: [1]
查看完整版本: 共享一个控制舵机左右摇摆的C程序