专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

51单片机2路舵机驱动(定时器法)

作者:huqin   来源:本站原创   点击数:  更新时间:2014年04月13日   【字体:

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit PWM1=P3^6;
sbit PWM2=P3^7;

uint aa;

void tuoji_init()
{
 TMOD=0x01;
 TH0=(65536-38)/256;//定时50us 
 TL0=(65536-38)%6;
 EA=1;
 ET0=1;
 TR0=1;
 PWM1=1;
 PWM2=1;
}

void chudong_pwm(uchar temp1,uchar temp2)
{

 if(aa==temp1) // 取值13-28-45(右转90度,正中间,左转90度);
  PWM1=0;
 if(aa==temp2) // 取值13-21-25(根据机械人性化要求,确定下面控制角度);
  PWM2=0; //(仰视最大14,人性化俯视16,平视19,人性化俯视21,俯视最低25);
}
    
void main()   
{
 tuoji_init();
 while(1)  
  chudong_pwm(18,25); 
}
 
void dingshi0() interrupt 1
{
 TH0=(65536-38)/256;//定时50us 计算初值46
 TL0=(65536-38)%6;
 aa++;
 if(aa==460)
 {
  aa=0;
  PWM1=1;
  PWM2=1; 
 }
}

关闭窗口

相关文章