共享一个控制舵机左右摇摆的C程序

2020-02-02 09:37发布

#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;
   }  

   }   
}  
程序已经通过测试,想测试舵机好坏的可以拿去试试。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
lllyanllll
1楼-- · 2020-02-02 15:34
好的。。
lllyanllll
2楼-- · 2020-02-02 20:03
好的。。
myem007
3楼-- · 2020-02-02 20:28
楼主给的程序是好的
zhanyicai000
4楼-- · 2020-02-02 23:20
 精彩回答 2  元偷偷看……
似水、流年
5楼-- · 2020-02-03 00:42
额,频率太高怎么解决!
司马朝阳007
6楼-- · 2020-02-03 03:29

一周热门 更多>