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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1522|回復(fù): 0
收起左側(cè)

藍牙小車循跡

[復(fù)制鏈接]
ID:912725 發(fā)表于 2021-4-26 21:54 | 顯示全部樓層 |閱讀模式
  • #include<reg52.h>
  • typedef unsigned char u8;        //宏定義無符號字符型         8位
  • typedef unsigned int  u16;        //宏定義無符號整形                16位
  • sbit PWM1 = P2^6;          //左電機高電平
  • sbit PWM2 = P2^5;          //右電機高電平
  • sbit IN1 = P2^4;
  • sbit IN2 = P2^3;          //左電機
  • sbit IN3 = P2^2;
  • sbit IN4 = P2^1;          //右電機
  • sbit S1 = P1^1;                  //左紅外避障模塊
  • sbit S2 = P1^2;                  //右紅外避障模塊
  • sbit S3 = P1^3;                  //左紅外尋跡模塊
  • sbit S4 = P1^4;                  //右紅外尋跡模塊
  • sbit K1 = P3^2;                  //功能轉(zhuǎn)換按鍵
  • u8 connt;                          //調(diào)速周期
  • u8 PWM_NO;                          //高電平時間
  • u8 COM = 0;                          //功能控制位
  • u8 t=0;                                  //判斷串口中斷是否執(zhí)行
  • void time(void)                                          //定時計時器初始化函數(shù)
  • {
  •     TMOD = 0x01;                                  //中斷方式1
  •     TH0 = 0xfe;
  •     TL0 = 0x0c;                                          //0.5ms
  •     EA = 1;                                                  //打開總中斷
  •     ET0 = 1;                                          //打開計時器中斷
  •     TR0 = 1;                                          //啟動計時器
  • }
  • void InitUART(void)                 //串口中斷初始化函數(shù)
  • {
  •     SCON=0x50;                        //設(shè)置為工作方式1
  •         TMOD=0x20;                        //設(shè)置計數(shù)器工作方式2
  •         PCON=0x00;                        //波特率加倍
  •         TH1=0xfd;                                //計數(shù)器初始值設(shè)置,注意波特率是9600的
  •         TL1=0xfd;
  •         ES=1;                                                //打開接收中斷
  •         EA=1;                                                //打開總中斷
  •         TR1=1;                                        //打開計數(shù)器
  • }
  • void delay( u16 k )                   //延時大約1ms
  • {
  •     u16 i,j;
  •         for(i=k;i>0;i--)
  •         for(j=120;j>0;j--);
  • }
  • void SC()                                //剎車
  • {
  •     IN1 = 0;
  •         IN2 = 0;
  •         IN3 = 0;
  •         IN4 = 0;
  • }
  • void QJ()                                //前進
  • {
  •     IN1 = 1;
  •         IN2 = 0;
  •         IN3 = 1;
  •         IN4 = 0;
  • }
  • void HT()                                //后退
  • {
  •     IN1 = 0;
  •         IN2 = 1;
  •         IN3 = 0;
  •         IN4 = 1;
  • }
  • void ZZ1()                                //左大轉(zhuǎn)
  • {
  •     IN1 = 0;
  •         IN2 = 1;
  •         IN3 = 1;
  •         IN4 = 0;
  • }
  • void ZZ2()                                //左小轉(zhuǎn)
  • {
  •     IN1 = 0;
  •         IN2 = 0;
  •         IN3 = 1;
  •         IN4 = 0;
  • }
  • void YZ1()                                //右大轉(zhuǎn)
  • {
  •     IN1 = 1;
  •         IN2 = 0;
  •         IN3 = 0;
  •         IN4 = 1;
  • }
  • void YZ2()                                //右小轉(zhuǎn)
  • {
  •     IN1 = 1;
  •         IN2 = 0;
  •         IN3 = 0;
  •         IN4 = 0;
  • }
  • void HY()                                //后右轉(zhuǎn)
  • {
  •     IN1 = 0;
  •         IN2 = 0;
  •         IN3 = 0;
  •         IN4 = 1;
  • }
  • void lin1()                                //紅外避障程序
  • {
  •     if( S1 && S2 )                //兩探頭不反應(yīng),小車前進
  •     {
  •         QJ();
  •     }
  •     if( !S1 && S2 )                //左探頭反應(yīng),小車右轉(zhuǎn)
  •     {
  •             SC();
  •             delay(100);
  •             HT();
  •             delay(400);
  •             YZ1();
  •             delay(550);
  •             SC();
  •             delay(100);
  •     }
  •     if( S1 && !S2 )                //右探頭反應(yīng),小車左轉(zhuǎn)
  •     {
  •          SC();
  •          delay(100);
  •          HT();
  •          delay(400);
  •          ZZ1();
  •          delay(550);
  •          SC();
  •          delay(100);
  •     }
  •     if( !S1 && !S2 )                //兩探頭反應(yīng),小車后退,右轉(zhuǎn)
  •     {
  •           SC();
  •           delay(100);
  •           HT();
  •           delay(400);
  •           HY();
  •           delay(550);
  •     }
  • }
  • void lin2()                                           //尋跡功能程序
  • {
  •     if( !S3 && !S4 )                //兩探頭反應(yīng),小車前進
  •     {
  •          QJ();
  •          delay(150);
  •          SC();
  •          delay(90);
  •     }
  •     if( S1 && S2 )                //兩探頭反應(yīng),小車停止
  •     {
  •         SC();
  •     }
  •     if( S3 && !S4 )                //左探頭不反應(yīng),小車右轉(zhuǎn)
  •     {
  •           SC();
  •           delay(90);
  •           YZ2();
  •           delay(120);
  •     }
  •     if( !S3 && S4 )                //右探頭不反應(yīng),小車左轉(zhuǎn)
  •     {
  •            SC();
  •            delay(90);
  •            ZZ2();
  •            delay(90);
  •     }
  • }
  • void lin3()                                                                   //物塊追蹤功能程序
  • {
  •     if( S1 && S2 )                //兩探頭不反應(yīng),小車停止
  •     {
  •           SC();
  •     }
  •     if( !S1 && !S2 )                //兩探頭反應(yīng),小車前進
  •     {
  •            QJ();
  •     }
  •     if( !S1 && S2 )                //右探頭不反應(yīng),小車左轉(zhuǎn)
  •     {
  •            ZZ1();
  •     }
  •     if( S1 && !S2 )                //左探頭不反應(yīng),小車右轉(zhuǎn)
  •     {
  •            YZ1();
  •     }
  • }
  • void lin4()                                                                  //魔術(shù)手功能程序
  • {
  •      if( S1 && S2 )                //兩探頭不反應(yīng),小車前進
  •      {
  •            QJ();
  •      }
  •      if( !S1 && !S2 )                //兩探頭反應(yīng),小車后退
  •      {
  •             HT();
  •      }
  •      if( !S1 && S2 )                //左探頭反應(yīng),小車后退
  •      {
  •             HT();
  •      }
  •      if( S1 && !S2 )                //右探頭反應(yīng),小車后退
  •      {
  •             HT();
  •      }
  • }
  • void konzi()                  //控制位
  • {
  •     if( K1 == 0 )
  •     {
  •         delay(10);
  •         if( K1 == 0 )
  •         {
  •             COM++;
  •         }
  •         while( !K1 );
  •     }
  •     if( COM == 5)
  •     {
  •         COM = 0;
  •                 t=0;
  •     }
  •     if( COM == 0 )
  •     {
  •         PWM_NO = 14;
  •     }
  •     else
  •     PWM_NO = 15;
  • }
  • void main ()                                   //主函數(shù)
  • {
  •     time();                                                     //計時器初始化
  •     InitUART();                                                 //串口初始化
  •     connt = 20;                                                 //PWM的一個周期
  •     PWM_NO = 14;                                         //調(diào)速,數(shù)值越大速度越慢
  •     IN1 = 0;
  •     IN2 = 0;
  •     IN3 = 0;
  •     IN4 = 0;                                                 //待機
  •     while(1)
  •     {
  •             konzi();
  •         switch(COM)                                           //功能選擇區(qū)
  •             {
  •                 case 0: lin1();break;                //避障
  •                 case 1: lin2();break;                //尋跡
  •                 case 2: lin3();break;                //物體跟隨
  •                 case 3: lin4();break;                //魔術(shù)手
  •                     case 4: t=1;SC();while(1);break;  //跳轉(zhuǎn)到藍牙控制
  •             }
  •     }
  • }
  • void Timer0Interrupt(void) interrupt 1                                 //計時器中斷函數(shù)
  • {
  •     u8 non;
  •     TH0 = 0xfe;
  •     TL0 = 0x0c;
  •     non++;
  •     if( non == PWM_NO )
  •     {
  •              PWM1 = 1;
  •          PWM2 = 1;
  •     }
  •     if( non == connt )
  •     {
  •              non = 0;
  •          if( PWM_NO != 0)
  •         {
  •              PWM1 = 0;
  •              PWM2 = 0;
  •         }

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩综合 | 欧美午夜一区二区三区免费大片 | 亚洲精品电影网在线观看 | 日本粉嫩一区二区三区视频 | 日日夜夜免费精品视频 | 欧美激情一区 | 亚洲成人久久久 | 亚洲色图图片 | 日韩在线视频免费观看 | 精品一区二区在线观看 | 毛片一区二区三区 | 国产午夜精品视频 | 欧美日韩欧美 | 久久久久久亚洲国产精品 | 亚洲精品视频在线 | 黄免费观看视频 | av福利网 | 久久精品无码一区二区三区 | 欧美日韩视频在线 | 浴室洗澡偷拍一区二区 | 一级网站 | www.亚洲精品| 成人免费淫片aa视频免费 | 国产乱码精品一区二区三区中文 | 一区二区三区在线 | 欧 | 国产免费拔擦拔擦8x高清 | 亚洲欧洲精品一区 | 久久国产精品视频 | 神马久久春色视频 | 久久久久久99 | 国产精品国产三级国产aⅴ无密码 | 亚洲免费在线 | 欧美成人免费 | 成年人黄色一级片 | 91大神xh98xh系列全部 | 日韩三级在线观看 | 日韩精品一区二区三区中文字幕 | 真人一级毛片 | 91精品国产91| 欧美乱人伦视频 | 午夜精品视频在线观看 |