找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1054|回复: 0
打印 上一主题 下一主题
收起左侧

PWM控制小车

[复制链接]
跳转到指定楼层
楼主
ID:972193 发表于 2021-10-24 14:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
sbitrs=P0^0;
sbitrw=P0^1;
sbiten=P0^2;
sbitsensera=P1^0;
sbitsenserb=P1^1;
sbitsenserc=P1^2;
sbitsenserd=P1^3;
sbitin1=P1^4;
sbitin2=P1^5;
sbitin3=P1^6;
sbitin4=P1^7;
intleft_low,left_high,right_low,right_high;
unsignedchar leftsign,rightsign;
unsignedchar leftback,rightback;
voidtimer0init()
{
    TMOD=0x01;
TH0=0x00;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
}
voidtimer0(void) interrupt 1
{
if(leftback)
{
   leftsign=!leftsign;
   if(!leftsign)
   {
    TH0 =(65536-left_low)/256;
    TL0 =(65536-left_low)%256;
    in1=0;
    in2=0;
   }
   if(leftsign)
   {
    TH0=(65536-left_high)/256;
    TL0=(65536-left_high)%256;;
    in1=1;           //μ1×a
    in2=0;
   }
}
else
{
   leftsign=!leftsign;
   if(!leftsign)
   {
    TH0=(65536-left_low)/256;
    TL0=(65536-left_low)%256;
    in1=0;
    in2=0;
   }
   if(leftsign)
   {
    TH0=(65536-left_high)/256;
    TL0=(65536-left_high)%256;;
    in1=0;
    in2=1;
   }
}  
}
voidtimer1init()
{
    TMOD=0x10;
TH1=0x00;
TL1=0x00;
EA=1;
ET1=1;
TR1=1;
}
voidtimer1(void) interrupt 3
{if(rightback)
{
   rightsign=!rightsign;
   if(!rightsign)
   {
    TH1=(65536-right_low)/256;
    TL1=(65536-right_low)%256;
    in3=0;
    in4=0;
   }
   if(rightsign)
   {
    TH1=(65536-right_high)/256;
    TL1=(65536-right_high)%256;
    in3=1;
    in4=0;
   }
}
else
{
   rightsign=!rightsign;
   if(!rightsign)
   {
    TH1=(65536-right_low)/256;
    TL1=(65536-right_low)%256;
    in3=0;
    in4=0;
   }
   if(rightsign)
   {
    TH1=(65536-right_high)/256;
    TL1=(65536-right_high)%256;
    in3=0;
    in4=1;
   }
}  
}
voidtestsenser() //×ó Ö± óò í£ oó£¨01234£©′ó1Õ D¡1Õ ÎTòaò壨310£©
{
if((sensera==0&&senserb==0&&senserc==0&&senserd==1)||(sensera==0&&senserb==1&&senserc==1&&senserd==1))// óò′ó1Õ
  {
   leftback=0;
  rightback=1;
  ET0=1;
  ET1=1;
  left_high=20000;
  left_low=40000;
  right_high=20000;
  right_low=40000;
  }
  elseif((sensera==0&&senserb==0&&senserc==1&&senserd==1)||(sensera==0&&senserb==0&&senserc==1&&senserd==0))//  óòD¡1Õ
  {
   leftback=0;
  rightback=1;
  ET0=1;
  ET1=1;
  left_high=20000;
  left_low=40000;
  right_high=10000;
  right_low=40000;
  }
  elseif((sensera==1&&senserb==0&&senserc==0&&senserd==0)||(sensera==1&&senserb==1&&senserc==1&&senserd==0))  // ×ó′ó1Õ
  {
   leftback=1;
  rightback=0;
  ET0=1;
  ET1=1;
   left_high=20000;
  left_low=40000;
  right_high=20000;
  right_low=40000;
  }
  elseif((sensera==1&&senserb==1&&senserc==0&&senserd==0)||(sensera==0&&senserb==1&&senserc==0&&senserd==0))    // ×óD¡1Õ
  {
   leftback=1;
  rightback=0;
  ET0=1;
  ET1=1;
   left_high=10000;
  left_low=40000;
  right_high=20000;
  right_low=40000;
  }
  elseif(sensera==1&&senserb==1&&senserc==1&&senserd==1)// í£
  {
   leftback=0;
  rightback=0;
  ET0=0;
  ET1=0;
     in1=0;
     in2=0;
     in3=0;
  in4=0;
  }
  else if(sensera==0&&senserb==0&&senserc==0&&senserd==0)//oóíË
  {
   leftback=1;
  rightback=1;
  ET0=1;
  ET1=1;
   left_high=10000;
  left_low=50000;
  right_high=10000;
  right_low=50000;
  }
  else //Ö±×ß
  {
   leftback=0;
  rightback=0;
  ET0=1;
  ET1=1;
   left_high=10000;
  left_low=50000;
  right_high=20000;
  right_low=50000;
  }   
}
           
voidmain()
{
timer0init();
timer1init();
while(1)
  testsenser();
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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