OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4359|回复: 1

51 单片机对 舵机 简单控制

[复制链接]

8

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-8-24
在线时间
1 小时
发表于 2014-5-2 21:44:20 | 显示全部楼层 |阅读模式

51 控制 很简单的舵机 ,我让他 一直正传,可以,一直 反转,可以 ,正传后 反转就不行,求大神,求原子哥救援啊!!!

#include "reg51.h"

#define uint unsigned int
#define uchar unsigned char

sbit LEFT= P1^1 ;
sbit RIGHT =P1^2 ;

uchar num0=0; //左PWM 标志
uchar num1=0; //右PWM 标志

uint start=0;
uint TIME=0;

uchar motor[2][2]={0};//motor[0][0] 左电机 方向  motor[0][1] 左电机 延迟

void delay_ms(uint x)
{
 start=1;
 TIME=0;
 
    while(1)
   {
  
      i f(TIME>x)
        {
        start=0;
        break;
        }
     }
}

void Time0_Init()
{
       TMOD|=0X01;  //方式一 16 位定时器
      TH0=(65536-45872)/256;  //50MS 自动重装值
      TL0=(65536-45872)%256;
      EA=1;
      ET0=1;
      TR0=1; //开定时器0 
}

//////************/////

//dir0/1  time  左/右电机方向(0/1 前进/后退)  延迟
void Motor(uchar dir0,uchar dir1,uchar time)
{
        motor[0][0]=dir0;
       motor[0][1]=time;
      motor[1][0]=dir1;
       motor[1][1]=time;
 
      delay_ms(time);
}
void main  ()
{
  Time0_Init();
 while(1)
 {
      Motor(1,0,5000);//l两个轮子 直走
    
      
      Motor(0,1,5000);//两个轮子后传  
 }
 
}
void T0_Time() interrupt 1
{
         TH0=(65536-1000)/256;//1ms 中断
         TL0=(65536-1000)%256;
 
         if(start)
        TIME++;
         else
             TIME=0;
 
                      if(num0<20)  num0++;  //pwm 周期 20ms
               else         num0=0;
 
            if(num1<20)  num1++;
           else         num1=0;
  
 
            if(motor[0][0] ==0) //左电机 前进  1/20 pwm 占空比
            {
                  if(num0<1)     LEFT=1;  
                    else          LEFT=0;  
           }
         else
         {
             if(num0<3)   LEFT=1;
           else        LEFT=0; 
        }
 
        if(motor[1][0] ==0) //右电机 前进  1/20 pwm 占空比
      {
          if(num1<1)   RIGHT=1; 
          else      RIGHT=0;   
      }
     else         //右电机 后退  3/20 pwm 占空比
    {
         if(num1<3)   RIGHT=1;  
        else    RIGHT=0; 
      }
 
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-5-3 00:10:05 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 22:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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