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

2020-02-05 09:15发布

如题哈,谢谢各位大牛。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
dengnianlun
1楼-- · 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;
   }  

   }   
}
lyg407
2楼-- · 2020-02-05 13:10
可以看看我发表的帖子哦。。。里面有详细介绍

一周热门 更多>