查看: 1881|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
沙发
发表于 2016-5-31 19:00:46 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
#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;
   }  

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

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表