求51单片机控制舵机正反转的程序

2020-02-05 09:15发布

如题哈,谢谢各位大牛。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
dengnianlun
2020-02-05 11:08
#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;
   }  

   }   
}

一周热门 更多>