标题: 四轮寻迹小车 PWM调速程序 [打印本页]

作者: 纷纷为丰富    时间: 2017-10-28 22:11
标题: 四轮寻迹小车 PWM调速程序
#include <stc12c5a.H>
void PWM_init();
void ys (uint x);

sbit q1=P0^0;      
sbit q2=P0^1;

sbit z2=P2^0;
sbit z1=P2^1;                 
sbit y1=P2^2;                 
sbit y2=P2^3;
sbit zj=P2^4;

void qian()
{
q1=1;q2=1;
CCAP0H = 70;
}

void zuo()
{
q1=1;q2=0;
CCAP0H = 130;

}

void you()
{
q1=0;q2=1;
CCAP0H = 130;

}


void main ()
{
PWM_init();
  while(1)
  {
  qian();

  if(z1==1&&y1==0)
    {
     zuo();
     while(zj==0);
         qian();
    }

  if(z2==1&&y1==0)
    {
     zuo();
     while(zj==0);
         qian();
    }
  if(y1==1&&z1==0)
    {
     you();
     while(zj==0);
         qian();
    }
  if(y2==1&&z1==0)
    {
     you();
     while(zj==0);
         qian();
    }
  if(z1==1&&zj==1&&y1==1)
    {
     qian();
    }
  }
}

void ys (uint x)   
{
    uint a,b,c;
    for(c=x;c>0;c--)
        for(b=142;b>0;b--)
            for(a=2;a>0;a--);
}


void PWM_init()
{
        CCON=0X00;                //CF中断标志位为0 CR运行控制位清零 CCF1 CCF2模块中断标志位为0
        CMOD=0x02;                //CIDL在空闲状态下继续工作  时钟源选择系统时钟/2  ECF计数器中断溢出使能位 0
        CCAPM0=0X42;                //模式选择位0
        CCAPM1=0X42;            //模式选择位1
        CL=CH=0;                //PWM内的计数器高低位TH0 TL0
        CR=1;                        //运行控制位 打开PWM
}


作者: 万文BB    时间: 2017-10-30 13:02
来看看,学习学习




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