久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3848|回復: 0
打印 上一主題 下一主題
收起左側

51單片機控智能小車源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:618842 發表于 2019-10-2 19:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg52.h>      //包含52系統頭文件
#define uint unsigned int
#define uchar unsigned char   
#define Leftmotogo      {IN1=0,IN2=1;}   //左電機向前zou
#define LeftmotoStop    {EN1=0;IN1=0,IN2=0;}         //左邊電機停轉                     
#define Rightmotogo     {IN3=1,IN4=0;}   //右邊電機向前走
#define RightmotoStop   {EN2=0;IN3=0,IN4=0;}        //右邊電機停轉  
sbit IN1=P1^2; //
sbit IN2=P1^3; //
sbit IN3=P1^6; //
sbit IN4=P1^7; //
sbit EN1=P1^4; //使能
sbit EN2=P1^5; //使能
sbit key4=P3^7;
sbit beep=P2^3;
sbit Leftled=P3^3;  //左循跡紅外傳感器      
sbit Rightled=P3^2;  //右循跡紅外傳感器
sbit Left_2_led=P3^4;  //左避障紅外傳感器  
sbit Right_2_led=P3^5;  
uchar pwmleft  =0;//變量定義
uchar pwmright =0;
uchar pushleft =6;// 左電機占空比N/20 //速度調節變量 0-20。。。0最小,20最大
uchar pushright=6;// 右電機占空比N/20
          // 大家可以根據循跡效果修改以上兩個數值
bit RightPWMON=1;            //右電機PWM開關
bit LeftPWMON =1;      //左電機PWM開關

void delayms(uint xms)   
{
    uint i,j;
for(i=xms;i>0;i--)
     for(j=110;j>0;j--);
}
void run()
{
    pushleft=6;  //速度調節變量 0-20。。。0最小,20最大
pushright=6;
Leftmotogo ;   //左電機往前走
Rightmotogo ;  //右電機往前走
}
void leftrun()
{  
     pushleft=5;
  pushright=5;
  Rightmotogo ;  //右電機往前走
     LeftmotoStop ;  //左電機停止
}
void  rightrun()
{
  pushleft=5;
  pushright=5;
     Leftmotogo;   //左電機往前走
  RightmotoStop;  //右電機往前走
}
void  stop()
{
  LeftmotoStop;
  RightmotoStop;
}
//       PWM調制電機轉速            左電機調速                                                           
/*調節push_val_left的值改變電機轉速,占空比*/
void pwmoutleftmoto()
{  
     if(LeftPWMON)
     {
          if(pwmleft<=pushleft)
       {
            EN1=1;
       }
       else        EN1=0;
          if(pwmleft>=20)
       pwmleft=0;
     }
     else       EN1=0;   //若未開啟PWM則EN1=0 左電機 停止
}
/*                    右電機調速                                  */  
void pwmoutrightmoto()
{
    if(RightPWMON)
    {
        if(pwmright<=pushright) //20ms內電平信號 111 111 0000 0000 0000 00
     {
         EN2=1;        //占空比6:20
        }
     else     EN2=0;
     if(pwmright>=20)
     pwmright=0;
    }
    else          EN2=0;   //若未開啟PWM則EN2=0 右電機 停止
}   
void timer0() interrupt 1     //TIMER0中斷服務子函數產生PWM信號
{
     TH0=0XFC;   //1Ms定時
  TL0=0X66;
  pwmleft++;
  pwmright++;
  pwmoutleftmoto();
  pwmoutrightmoto();
}
void keyscan()              //按鍵掃描函數
{
    A:    if(key4==0)   //判斷是否有按下信號
  {
      delayms(10);    //延時10ms
   if(key4==0)   //再次判斷是否按下
    {
       beep=0;               //蜂鳴器響   
       while(!key4); //判斷是否松開按鍵
       beep=1;               //蜂鳴器停止  
     }
      else  goto A;        //跳轉到A重新檢測
  }
  else  goto A;             //跳轉到A重新檢測
}
void main()
{
    P1=0X00;    //關電機
    keyscan(); //按鍵啟動檢測
delayms(1000);//1s后啟動
TMOD=0X01;
    TH0= 0XFC;  //1ms定時
    TL0= 0X66;
    TR0= 1;
    ET0= 1;
EA = 1;     
while(1) //無限循環
{
     if(Left_2_led==0||Right_2_led==0) {stop();}
        if(Leftled==0&&Rightled==0)    run();   //調用前進函數
        else if(Leftled==1&&Rightled==0)/*左邊檢測到黑線*/  leftrun(); //調用小車左轉函數   
  else if(Rightled==1&&Leftled==0)/*右邊檢測到黑線*/rightrun();//調用小車右轉函數  
  else  stop();
  
  }
}
  
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品一区二区三区免费毛片 | 免费在线看黄 | 亚洲精品9999| 精品国产一二三区 | 成人免费一区二区三区视频网站 | 中文在线a在线 | 成人不卡 | 色综合久久久 | 日韩中文字幕第一页 | 亚洲成人免费观看 | 爱操av | 成人二区三区 | 日韩视频免费看 | 国产精品毛片一区二区在线看 | 久国产视频 | av黄色网 | 精品国产91亚洲一区二区三区www | 韩国欧洲一级毛片 | 久久免费精品 | 成人免费视频在线观看 | 欧美一级做性受免费大片免费 | 成人免费视频网站在线观看 | 国产日韩精品一区二区 | 欧美日韩在线成人 | 91偷拍精品一区二区三区 | 涩涩视频在线观看 | 国产9 9在线 | 中文 | 日韩欧美一区二区三区免费观看 | 国产精品久久久久一区二区三区 | www.蜜桃av| 日韩福利在线观看 | 伊人免费视频二 | 2018天天干天天操 | 毛片网站在线观看 | 国产精品一区二区在线 | 一级a爱片性色毛片免费 | 天天综合国产 | 人人性人人性碰国产 | 在线欧美a| 午夜电影网 | 色资源av|