标题: 单片机控制两个舵机 [打印本页]

作者: 哈哈苦    时间: 2018-5-7 11:11
标题: 单片机控制两个舵机
不能一起前进,要不一个转完另一个再转,要不只有一个转,程序如下:
#include "reg52.h"
#define uchar unsigned char  
        uchar count=15,LS=10,RS=10; //LS:  
       sbit pwm_L=P2^7;  //左舵机
       sbit pwm_R=P2^4;  //右
           sbit        k1=P3^6;
          
void delay(uchar x)
  {
  uchar i;
  while(x--){
      for (i=0;i<120;i++);
          }
  }
void init()                                           
{                   pwm_L=0;
                        pwm_R=0;   
                    TMOD=0x01; //模式1
                          TH0=(65535-100)/256;  //T0置初值
                    TL0=(65535-100)%256;
                        //IE0=0;         //INT0中断
                        EA=1;  //CPU开放总中断
                        ET0=1;  //允许T0中断
                        TR0=1; }  //允许T0计数

main()
{
  init();

   while(1)
    {  TR0=1;
        if(k1==1){LS=15;RS=10;delay(100);}
              else{LS=10;RS=15;delay(100);}
                  TR0=0;
            }

}  
void timer() interrupt  1 //定时器中断,T0
{            TR0=0;
                TH0=(65535-100)/256;         // T0置初值
                   TL0=(65535-100)%256;
                 TR0=1;
           count++;
           if(count<=LS) {pwm_L=1;}
            else {pwm_L=0;}
           if(count<=RS) {pwm_R=1;}
                else {pwm_R=0;}       
                 count=count%200; //定时20ms 频率50hz       
                 }
                                                         


作者: 哈哈苦    时间: 2018-5-7 11:36
有大神了解吗
作者: JIANG2    时间: 2018-5-7 13:00
很棒 !赞一个
作者: 鬼推磨    时间: 2019-11-24 12:42
k1=P3^6;是干嘛的?
作者: dyy011    时间: 2022-5-19 19:38
鬼推磨 发表于 2019-11-24 12:42
k1=P3^6;是干嘛的?

定义K1按键IO口

作者: yaoyao2022    时间: 2022-5-19 20:35
第一按键需要有去抖功能,delay的延时可以交给定时器去做没有必要用delay阻塞cpu
作者: 有点电    时间: 2022-5-19 22:54
用一个标志位分别控制两个舵机用if来选择




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1