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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

自制的藍牙避障小車程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:576900 發表于 2020-8-14 16:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
代碼測試
  1. #include<reg51.h>
  2. #define uInt unsigned int
  3. #define A judgefollow=1
  4. #define B judgelefta=1;judgerighta=1
  5. #define C judgerightb=1;judgeleftb=1
  6. sbit switchfollow = P1^7;        //人體紅外感應開關
  7. sbit switchredlight = P3^0;        //紅外對管開關
  8. sbit switchfeellight = P3^1;        //光敏電阻開關
  9. sbit judgefollow = P1^6;         //人體紅外感應
  10. sbit judgelefta = P1^4;              //左邊紅外對管
  11. sbit judgeleftb = P1^5;              //左邊光敏電阻
  12. sbit judgerighta = P3^6;      //右邊紅外對管
  13. sbit judgerightb = P3^7;      //右邊光敏電阻
  14. sbit in1 = P1^0;
  15. sbit in2 = P1^1;
  16. sbit in3 = P1^2;
  17. sbit in4 = P1^3;
  18. void DelayMS(uInt ValMS)
  19. {
  20.         uInt uiVal,ujVal;
  21.         for(uiVal=0;uiVal<ValMS;uiVal++)
  22.         for(ujVal=0;ujVal<113;ujVal++);
  23. }                           //延時函數
  24. void advance()           //前進
  25. {
  26.         in1 = 1;
  27.         in2 = 0;
  28.         in3 = 1;
  29.         in4 = 0;        
  30. }
  31. void back()                     //后退
  32. {
  33.         in1 = 0;
  34.         in2 = 1;
  35.         in3 = 0;
  36.         in4 = 1;
  37. }
  38. void right()                //右轉
  39. {
  40.         in1 = 1;
  41.         in2 = 0;        //左輪向前
  42.         in3 = 0;        //右輪向后
  43.         in4 = 1;
  44. }
  45. void left()                                //左轉
  46. {
  47.         in1 = 0;
  48.         in2 = 1;         //左輪向后
  49.         in3 = 1;         //右輪向前
  50.         in4 = 0;
  51. }
  52. void follow()
  53. {
  54.              //開始將所有感應接口都變為0   
  55.         if(judgefollow==0)    //再次確認感應
  56.         {   
  57.                 left();               
  58.                 DelayMS(1000);        //左轉尋找感應
  59.                 if(judgefollow==1)   //發現感應
  60.                 {
  61.                         advance();           //前進
  62.                 }
  63.                 else                        //左轉未發現感應
  64.                 {
  65.                         right();             // 右轉
  66.                         if(judgefollow==1)     //發現感應
  67.                         advance();                 //前進,跟隨目標
  68.                 }               
  69.         }        
  70. }
  71. void main()
  72. {
  73.           P1 = 0x00;
  74.             P3 = 0x00;        
  75.             if(switchfollow==1){A;}         //控制人體感應開關
  76.             if(switchredlight==1){B;}         //控制紅外開關
  77.             if(switchfeellight==1){C;}   //控制光敏開關               
  78.             if(judgelefta==1&&judgeleftb==1&&judgerighta==1&&judgerightb==1&&judgefollow==1)  
  79.             {
  80.                             advance();
  81.             }                                                   //未發現感應,保持前進
  82.             else if(judgefollow==0)                   //感應到前方有人
  83.             {
  84.                             follow();                           //         跟隨
  85.             }
  86.             else if(judgelefta==0||judgeleftb==0)
  87.             {
  88.                             back();
  89.                         DelayMS(1000);
  90.                         left();
  91.                         DelayMS(1000);
  92.                         advance();               
  93.             }                                           //        小車感應到右邊有物體,進行左轉
  94.              else if(judgerighta==0||judgerightb==0)
  95.             {
  96.                             back();
  97.                         DelayMS(1000);
  98.                         right();
  99.                         DelayMS(1000);
  100.                         advance();                //同上,但這次是右邊
  101.             }
  102.              else if(judgerightb==0&&judgeleftb==0)           //小車進入黑暗中,開始后退
  103.             {
  104.                             back();
  105.                       if(judgeleftb==1)                         //發現左邊有光
  106.                         {
  107.                                 left();                         //左轉前進
  108.                                 DelayMS(1000);
  109.                                 advance();        
  110.                         }
  111.                          if(judgerightb==1)                         //發現右邊有光
  112.                         {
  113.                                 right();                         //右轉前進
  114.                                 DelayMS(1000);
  115.                                 advance();        
  116.                         }
  117.             }
  118.             else if(judgerighta==0&&judgelefta==0)  //正前方發現障礙                              
  119.             {
  120.                             back();                                    //后退
  121.                         DelayMS(1000);
  122.                         left();                                    //左轉
  123.                         DelayMS(1000);
  124.                         advance();                                   //前進
  125.             }
  126. }
復制代碼


避障小車.zip

78.38 KB, 下載次數: 9, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 就操在线 | 久久精彩视频 | 国产精品国产a级 | 91视频.com| 色在线免费视频 | 成人在线观看免费 | 久久久性色精品国产免费观看 | 日韩成人av在线 | 韩日精品在线观看 | 日韩精品免费在线观看 | 亚洲第一av网站 | 久久精品中文 | 国产精品视频导航 | 久久丁香| 综合成人在线 | 亚洲三级国产 | 日本在线观看视频 | 91精品久久久久久久久 | 中文字幕不卡 | 亚洲成人免费在线 | 国产成人精品一区二区三区在线观看 | 女同久久另类99精品国产 | 久久精品亚洲精品国产欧美 | 在线毛片网| 男女在线网站 | 欧美高清视频一区 | 婷婷丁香综合网 | 国产中文一区二区三区 | 久久一二三区 | 日韩精品免费视频 | 精品久久久久久久久久久久久久 | 国产一区二区三区在线免费观看 | 免费美女网站 | 涩涩视频网站在线观看 | 蜜桃一区 | 伊人热久久 | 久久久久av | 欧美日韩黄色一级片 | 国内精品视频免费观看 | 国产高清视频在线观看 | 久久精品国产一区 |