wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10084|回復: 8
收起左側

51單片機尋跡避障小車源程序

  [復制鏈接]
ID:372259 發表于 2018-7-16 08:21 | 顯示全部樓層 |閱讀模式
單片機避障程序源程序如下:
  1. /*
  2. * 作者:趙新
  3. * 功能:實現小車躲避障礙,通過檢測三個方向的距離,選擇最大距離轉彎
  4. * 日期:3/14
  5. * 說明:STC89c52RC,12MHz
  6. * 注意:1000ms和100ms待測,完成后刪除此行
  7. *—————————————————管腳說明——————————————
  8. * Trig = P1^0
  9. * Echo = P3^2
  10. * PWM_OUT = P0^4
  11. *————————————————————————————————————————
  12. */
  13. #include "stc89c5x.h"
  14. #include "intrins.h"
  15. #include "Motor.h"
  16. #define X 20   //最短距離參考值 約為12厘米 受溫度影響,會存在10%左右的誤差

  17. sbit Trig = P1^0;//發送端
  18. sbit Echo = P3^2;//接收端 若用外部中斷0,則此引腳必須是P3.2

  19. sbit PWM_OUT = P0^4;//PWM信號輸出端
  20. u8 counts = 0;      //設置初值
  21. u8 PWM =6;                        //設置初值,任意值也可不設
  22. u8 Flag_Angle = 1;  //0 左45度 1 右45度 在函數Scan()中調用
  23. u8 Distance_Middle;
  24. u8 Distance_Temp[2];//0 左45度 1 右45度

  25. void Delay20us();
  26. void Delay100ms();
  27. void Delay1000ms();  //@12.000MHz  用于等待
  28. u8 Compute(u8 th,u8 tl);
  29. void Scan_Around();  //掃描左右
  30. void Scan_Middle();  //掃描正中前進方向距離
  31. void main()
  32. {
  33.   TMOD = 0x11;//設置T0,T1 T0用于電平檢測 T1用于產生舵機需要的PWM信號
  34.   
  35.   TH0 = 0x00;           //轉載初值
  36.   TL0 = 0x00;
  37.   ET0 = 1;           //打開定時器中斷
  38.   TF0 = 0;           //失能定時器中斷標志,也可忽略此語句
  39.   TR0 = 0;           //開始時T0關閉

  40.   TH1 =        0xff;  //產生時基100us定時,用于組成舵機各個角度的信號
  41.   TL1 = 0x9c;
  42.   ET1 = 1;
  43.   TF0 = 0;     //可忽略此語句,51復位此位為0
  44.   TR1 = 0;           //暫時關閉T1
  45.    
  46.   EX0 = 1;     //開外部中斷   
  47.   IT0 = 1;     //下降沿觸發中斷

  48.   EA = 1;           //全局中斷開
  49.                                    
  50.   Trig = 0;           //觸發端拉低
  51.   Echo = 0;
  52.   while(1)
  53.   {
  54.     //Scan_Around();
  55.     Scan_Middle();
  56.         if(Distance_Middle<=X)
  57.         {
  58.            Stop();
  59.            Scan_Around();
  60.            if((Distance_Temp[0]>Distance_Temp[1])&&Distance_Temp[0]>=X)
  61.            {
  62.              Turn_Left(0);
  63.                  Delay100ms();
  64.                  //Delay100ms();
  65.            }else
  66.             if((Distance_Temp[0]<Distance_Temp[1])&&Distance_Temp[1]>=X)
  67.                 {
  68.                   Turn_Right(0);
  69.                   Delay100ms();
  70.                   //Delay100ms();
  71.                 }else
  72.                  if((Distance_Temp[0]==Distance_Temp[1])&&Distance_Temp[0]>=X)
  73.                  {
  74.                    Turn_Right(0);
  75.                    Delay100ms();
  76.                    //Delay100ms();
  77.                  }else
  78.                   {
  79.                     Back();
  80.                         Delay100ms();
  81.                         Delay100ms();
  82.                         Delay100ms();
  83.                         Delay100ms();
  84.                         Delay100ms();
  85.                         Turn_Right(0);
  86.                         Delay100ms();
  87.                         //Delay100ms();
  88.                   }
  89.         }else
  90.          {
  91.            Go();
  92.          }
  93.   }
  94. }

  95. void Timer1(void) interrupt 3 //PWM產生
  96. {
  97.   TH1 = 0xff;
  98.   TL1 = 0x9c;
  99.   if(counts<PWM)
  100.     {
  101.           PWM_OUT = 1;
  102.          
  103.         }
  104.   else
  105.     {
  106.          PWM_OUT = 0;
  107.          if(counts==200)
  108.          {
  109.            counts = 0;
  110.          }
  111.         }
  112.          ++counts;
  113. }

  114. void Timer0(void) interrupt 1 //T0溢出中斷函數,一般來說T0溢出是不可能發生的,原因是傳感器最大探測距離為4m左右,所用時間不會超過65536us
  115. {
  116.   
  117. }
  118. void INT0_Test(void) interrupt 0  //下降沿到來之后,進入外部中斷函數,停止T0計數,計算并發送計算值到計算機
  119. {
  120.   TR0 = 0;
  121.   switch(Flag_Angle)
  122.   {
  123.     case 0:Distance_Temp[0]=Compute(TH0,TL0);TH0 = TL0 = 0x00;break;  //左
  124.         case 1:Distance_Temp[1]=Compute(TH0,TL0);TH0 = TL0 = 0x00;break;  //右
  125.     default:break;
  126.   }
  127.                     //為了下一次準確計數,必須清空  
  128. }

  129. void Scan_Around()   //掃描左右
  130. {
  131.    Flag_Angle = 0;
  132.    PWM = 17;//左轉45度
  133.    TR1 = 1;
  134.    Delay1000ms();
  135.    TR1 = 0;                                 

  136.    Trig = 1;                //觸發一次檢測
  137.    Delay20us();
  138.    Trig = 0;
  139.    while(!Echo);        //如果沒有檢測到返回信號,等
  140.    TR0 = 1;                //檢測到高電平,開T0計數,一直計到下降沿到來
  141.    Delay100ms();

  142.    Flag_Angle = 1;
  143.    PWM = 8; //右轉45度
  144.    TR1 = 1;
  145.    Delay1000ms();
  146.    TR1 = 0;

  147.    Trig = 1;                //觸發一次檢測
  148.    Delay20us();
  149.    Trig = 0;
  150.    while(!Echo);        //如果沒有檢測到返回信號,等
  151.    TR0 = 1;                //檢測到高電平,開T0計數,一直計到下降沿到來
  152.    Delay100ms();

  153.    PWM = 12; //測完回到正中
  154.    TR1 = 1;
  155.    Delay1000ms();
  156.    TR1 = 0;
  157. }

  158. void Scan_Middle() //掃描正中前進方向距離
  159. {
  160.   //Stop();
  161.   Flag_Angle = 3;
  162.   Trig = 1;                //觸發一次檢測
  163.   Delay20us();
  164.   Trig = 0;
  165.   while(!Echo);        //如果沒有檢測到返回信號,等
  166.   TR0 = 1;                //檢測到高電平,開T0計數,一直計到下降沿到來
  167.   Delay100ms();
  168.   Distance_Middle = Compute(TH0,TL0);
  169.   TH0 = TL0 = 0x00;
  170.   //Go();
  171. }

  172. u8 Compute(u8 th,u8 tl)
  173. {
  174.    u16 times = 0x0000;
  175.    times = th;
  176.    times = times<<8;
  177.    times |= tl;

  178.    return (times/58);
  179. }
  180. void Delay20us()                //@12.000MHz  用于產生超聲波觸發信號
  181. {
  182.         unsigned char i;

  183.         _nop_();
  184.         i = 7;
  185.         while (--i);
  186. }

  187. void Delay100ms()                //@12.000MHz
  188. {
  189.         unsigned char i, j;

  190.         i = 195;
  191.         j = 138;
  192.         do
  193.         {
  194.                 while (--j);
  195.         } while (--i);
  196. }

  197. void Delay1000ms()                //@12.000MHz  用于等待
  198. {

  199.         unsigned char i, j, k;

  200.         _nop_();
  201.         i = 8;
  202.         j = 154;
  203.         k = 122;
  204.         do
  205.         {
  206.                 do
  207.                 {
  208.                         while (--k);
  209.                 } while (--j);
  210.         } while (--i);

  211. }
復制代碼


  1. /*
  2. * 作者:趙新
  3. * 功能:尋跡小車主函數
  4. * 日期:2015/3/10 進行PWM的修改
  5. * 說明:編譯器會有一些警告,主要是定義的一些函數在這里沒有用到,可以注釋掉或者寫成條件編譯  2015/9/15
  6. */
  7. #include "reg51.h"
  8. #include "intrins.h"
  9. #include "Motor.h"
  10. #define LEFT  0  //左側觸到黑線
  11. #define RIGHT 1  //右側觸到黑線
  12. #define ALL   2         //同時觸到黑線
  13. #define NONE  3         //正常運行沒有觸到黑線

  14. u8 i = 0;
  15. sbit Left = P0^4;
  16. sbit Right = P0^5;
  17. sbit PWM_LEFT  = P1^0;
  18. sbit PWM_RIGHT = P1^1;

  19. u8 JudgeMode();
  20. //void Delay100ms();
  21. void main()
  22. {
  23.   TMOD = 0x01;//定時器0,2工作在模式1 50ms時基
  24.   TH0 = 0xfc;
  25.   TL0 = 0x18;
  26.   ET0 = 1;
  27.   EA  = 1;
  28.   TR0 = 1;
  29.   Go();
  30.   while(1)
  31.   {
  32.      switch(JudgeMode())
  33.          {
  34.             case 0: {
  35.                        Turn_Left(0);
  36.                            //Delay100ms();
  37.                            }break;
  38.             case 1: {
  39.                          Turn_Right(0);
  40.                                  //Delay100ms();
  41.                                  }break;
  42.                 case 2: Stop();       break;
  43.                 case 3: Go();         break;
  44.          }
  45.   }
  46. }

  47. u8 JudgeMode()//用于判斷小車此時狀態
  48. {
  49.    if(Left==0&&Right==1)//左側觸到黑線,應向左轉
  50.      return LEFT;

  51.    if(Left==1&&Right==0)//右側觸到黑線,應向右轉
  52.      return RIGHT;

  53.    if(Left==0&Right==0)//同時觸到黑線,應進一步判斷是‘T’型還是‘十’型路況
  54.      return ALL;

  55.    if(Left==1&&Right==1)//沒有觸到黑線,可能正常運行,可能小車跑偏了
  56.      return NONE;

  57. }






  58. void Time0(void) interrupt 1  //初定周期200ms,空占比50%
  59. {
  60.      
  61.      TH0 = 0xfc;
  62.      TL0 = 0x18;
  63.             ++i;
  64.          if(i>=2) //>=2 1/4空占比
  65.          {
  66.             PWM_LEFT  =         1;
  67. ……………………

  68. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
循跡避障小車.rar (58.16 KB, 下載次數: 121)


回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:416370 發表于 2018-10-27 23:06 | 顯示全部樓層
你好,能私發程序給我嗎,我沒黑幣下載不了,1115204179@qq.com            謝謝
回復

使用道具 舉報

ID:416370 發表于 2018-10-27 23:17 | 顯示全部樓層
樓主可以私發給我嗎,1115204179@qq.com  謝謝
回復

使用道具 舉報

ID:449181 發表于 2018-12-18 19:09
能私法嗎,剛剛創的號,黑幣不夠 1173459156@qq.com

ID:449181 發表于 2018-12-20 20:53 | 顯示全部樓層
可以私法嗎?1173459156@qq.com
回復

使用道具 舉報

ID:492360 發表于 2019-3-17 14:27 | 顯示全部樓層
非常不錯,感謝分享!
回復

使用道具 舉報

ID:945628 發表于 2021-6-29 09:12 | 顯示全部樓層
能用嗎正常使用嗎?
回復

使用道具 舉報

ID:974680 發表于 2021-11-12 00:08 來自觸屏版 | 顯示全部樓層
請問可以正常使用嗎?
回復

使用道具 舉報

10#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
欧美老女人另类| 色94色欧美sute亚洲线路一ni| 亚洲网址在线观看| 精品影院一区| 性欧美高清视频| 日本午夜视频在线观看| 国产精品嫩草69影院| 一本色道久久综合亚洲精品婷婷 | 99久久国产综合色|国产精品| 日韩黄色大片| 视频欧美精品| 欧美日韩欧美| 香艳视频网站| 欧美做爰性欧美大fennong| 麻豆成人免费视频| 欧美三级视频网站| 亚洲欧美日韩三级| 国产在线拍揄自揄拍无码| 91免费精品国偷自产在线| 久青草国产97香蕉在线视频| 欧美一级国产精品| 午夜精品久久久久| 国产欧美日韩激情| 国内精品视频一区二区三区八戒 | 成人免费在线| 激情视频免费观看在线| 天堂视频在线免费观看| 日韩在线视频第一页| 国产成人精品片| 手机看片国产日韩| 中文字幕在线永久| 一区二区三区网址| 高清欧美精品xxxxx| 偷拍视频一区二区| 国产有色视频色综合| 国产成人久久精品| 欧美高清视频在线观看| 亚洲三级黄色在线观看| 日韩欧美一二区| 欧洲视频一区二区| 亚洲成人中文在线| 亚洲精品国产高清久久伦理二区| 久久亚洲私人国产精品va媚药| 久久av资源站| 噜噜爱69成人精品| 亚洲国产精品一区| 牛夜精品久久久久久久99黑人| 精品在线99| 亚洲精品动态| 国产一区二区三区亚洲| 天堂va欧美ⅴa亚洲va一国产| 成人免费网站视频| 国内激情视频在线观看| 在线中文免费视频| 大地资源网3页在线观看| 国产私拍精品| 超碰在线国产| 成人精品一区| 2021av在线| 看黄网站在线| 韩国av网站在线| 久久精品视频观看| 成人在线网址| av中文字幕在线播放| 日本在线观看视频| 宅男在线观看免费高清网站| 91中文在线| aa级大片免费在线观看| 福利成人导航| 成人免费网站视频| 亚洲国产aⅴ精品一区二区三区| 国产激情久久| 欧美.com| 少妇精品久久久| 日韩午夜电影网| 亚洲最新色图| 亚洲综合另类| 国产麻豆精品视频| 久久在线观看免费| 亚洲免费在线看| 欧美日韩视频在线| 欧美日韩色一区| 亚洲国产精品一区二区久| 精品无码久久久久久国产| 亚洲天堂av网| 久久露脸国产精品| 国产中文日韩欧美| 精品一卡二卡三卡四卡日本乱码| 欧美日韩在线精品| 最近免费观看高清韩国日本大全| 精品久久久久久久久久中文字幕| 色一情一区二区| 亚洲乱码国产乱码精品精大量| 白丝女仆被免费网站| 国产一区在线观看免费| 草久视频在线观看| aaaa一级片| 精品国产一区二区三区久久久狼牙| 黄色高清视频在线观看| 中文字幕在线第一页| 欧美性孕妇孕交| 国产一线二线在线观看| 亚洲视频自拍| 欧美a级片视频| 日本sm残虐另类| 91年精品国产| 午夜精品久久久久久不卡8050| 欧美日韩精品一二三区| 亚洲视频在线免费看| 国内精品久久久久久久久| 91免费看网站| 日本福利视频在线观看| 男女视频网站在线观看| 中国男女全黄大片| 精品少妇一二三区| 国产18精品乱码免费看| 国内自拍九色| 丝袜美腿美女被狂躁在线观看| 精精国产xxxx视频在线野外| 国产精品45p| 国产欧美精品| 国产午夜精品一区二区三区视频 | 成人羞羞视频免费| 小说区视频区图片区| 奇米视频7777| 国产探花在线免费观看| 国产又黄又大又爽| 一级美女在线| 91电影在线播放| 日韩一区二区三区在线看| 欧美精品1区| 99九九99九九九视频精品| 欧美日韩免费区域视频在线观看| 日韩毛片在线观看| 国产在线视频欧美| 人妻少妇精品久久| 国产国语性生话播放| 免费看av在线| 九九视频在线播放| 影音先锋在线播放| 美日韩中文字幕| 狠狠色2019综合网| 午夜在线成人av| 夜夜嗨av一区二区三区免费区| 国产日本欧美一区二区三区在线| 9191国产视频| 精品视频第一页| 国产精品国产高清国产| 波多野结衣av在线| 99re66热这里只有精品4| 午夜精品一区二区三区国产| 成人污污视频在线观看| 91黄色激情网站| 久久免费福利视频| 18视频在线观看娇喘| 色婷婷av777| 蜜臀av免费在线观看| 国外av网站| 97欧美成人| 老司机精品视频网站| 亚洲影视资源网| 菠萝蜜影院一区二区免费| 国产免费一区二区| 久久久久久久久久久影视| 精品一区二三区| 羞羞小视频视频| 亚洲成人人体| 亚洲欧美bt| 欧美午夜精品久久久久久浪潮| 欧美日本在线视频中文字字幕| 一本一本a久久| 一本一本久久a久久| 亚洲国产图片| 天堂成人av| 亚洲天堂免费| 亚洲高清免费一级二级三级| 欧美激情精品在线| a级网站在线观看| 日韩精品久久久久久久的张开腿让 | www.欧美亚洲| 亚洲黄色片网站| 激情五月综合色婷婷一区二区| 日韩av片免费观看| 国产一区二区在线播放视频| 97影院手机在线观看 | 亚洲摸摸操操av| 欧美剧在线观看| 日韩欧美猛交xxxxx无码| 欧美成人手机视频| 成品网站w灬+源码1688网页| 欧美色片在线观看| 国产一区二区福利| 亚洲福利在线播放| 日韩三级电影网站| 亚洲欧美精品aaaaaa片| 极度色播免费播放视频| 99精品在线免费观看| 国产成都精品91一区二区三| 亚洲精品一区二区三区影院| 精品999在线观看| 亚洲一二三精品| free性欧美高清另类| 欧美日韩亚洲国产| 国产成人午夜精品5599| 亚洲欧美国产精品| 天天在线免费视频| 波多野结衣mp4| 国产在线三区| 欧美日韩国产免费观看| 色综合久久综合网97色综合| 成人羞羞国产免费| av黄色在线免费观看| 天堂网在线.www天堂在线视频| 精品欧美日韩精品| 99久久婷婷国产| 国内精品久久久久久久久| 久久这里只精品| 五月婷婷免费视频| 在线观看涩涩| 成人一区二区视频| 久久这里只有精品视频首页| 男人天堂999| 天天躁日日躁狠狠躁喷水| 草美女在线观看| 国产成人精品免费| 两个人的视频www国产精品| 国产精品免费成人| 西西人体44www大胆无码| 国内精品偷拍视频| 色欧美88888久久久久久影院| 欧美老人xxxx18| 精品一区二区三区视频日产| 日本aⅴ在线观看| 一个人看的免费视频色| 羞羞答答成人影院www| 91黄色激情网站| 欧美一区三区二区在线观看| 亚洲天堂视频网站| 在线观看免费黄视频| 日韩高清不卡一区| www.亚洲一区| 小早川怜子一区二区三区| 欧美做a欧美| 久久人人爽人人爽人人片av不| 亚洲精品视频一区二区| 不卡一卡2卡3卡4卡精品在| 久久国产精品国语对白| 调教在线观看| 美女爽到呻吟久久久久| 精品亚洲一区二区三区在线观看| 亚洲国产精品无码av| 香蕉视频黄在线观看| 日韩成人在线一区| 国产精品热久久久久夜色精品三区 | 亚洲美女在线看| 成人一级片网站| 欧美在线中文字幕高清的| 超碰在线一区| 日本电影亚洲天堂一区| 黄色高清视频网站| 日本久久一级片| 91国产一区| 精品欧美国产一区二区三区| 欧美黄色直播| www.日日夜夜| 日本99精品| 色天天综合色天天久久| 懂色av粉嫩av蜜臀av| 亚洲视频在线网| 韩国精品福利一区二区三区| 欧美日韩一级视频| 国产精品成人久久电影| 国产原创在线| 综合久久综合| 一本一本久久a久久精品牛牛影视| 国产高清av片| 天天草夜夜草| 久久精品国产久精国产| 欧美激情一区二区久久久| 黄大色黄女片18免费| 亚洲国产精一区二区三区性色| 日av在线播放| 国产成人精品一区二| 国产原创欧美精品| 亚洲日本视频在线观看| 九色porny自拍视频在线观看| 国产日韩欧美精品在线| 精品久久sese| 空姐吹箫视频大全| 婷婷亚洲成人| 精品卡一卡二卡三卡四在线| 日本中文字幕影院| 特黄特色特刺激视频免费播放| 午夜在线a亚洲v天堂网2018| 国语自产偷拍精品视频偷| 久久99久久98精品免观看软件| 女同视频在线观看| 亚洲地区一二三色| 黄色一级大片免费| 免费观看又色又爽又黄的网站| 午夜宅男久久久| 国产精品久久久久久久久久东京| 日韩精品一区二区亚洲av| 亚洲国产精选| 精品国产伦一区二区三区观看体验| 秋霞午夜鲁丝一区二区| 嫩草研究院在线观看| 久久久久久日产精品| 午夜精品福利一区二区| 18欧美乱大交| 奇米影视7777精品一区二区| 成人a级免费视频| 亚洲乱码国产乱码精品精软件| 小嫩嫩12欧美| 中文字幕欧美日韩精品| 熟女av一区二区| 欧美18av| 日韩丝袜情趣美女图片| 一级性生活毛片| 国产亚av手机在线观看| 在线一区二区三区四区五区 | av中文网站| 亚洲乱码视频| 国产一区二中文字幕在线看 | 国产午夜精品久久久| 污污视频网站在线免费观看| а√天堂8资源中文在线| 在线免费观看不卡av| 亚洲精品久久久久久| 在线网址91| 欧美午夜一区二区| 少妇按摩一区二区三区| av资源在线播放| 欧美一区二区三区四区五区| 玖玖爱在线观看| xxx欧美xxx| 亚洲精品av在线| 欧美日韩免费做爰视频| 日本超碰一区二区| 久久精品国产一区二区电影| 欧美黑人一区二区| 欧美老女人另类| 日本中文字幕久久看| 凸凹人妻人人澡人人添| 亚洲尤物精选| 久久av二区| 岛国av在线| 亚洲国产精品二十页| 无码少妇一区二区三区芒果| 91精品大全| 欧美日韩国产在线播放网站| 亚洲最大成人网站| 91成人app| 久久91精品国产91久久跳| 国产伦精品一区二区三区免.费| 中国成人一区| www.久久艹| h在线观看视频免费网站| 欧美国产一区视频在线观看| 免费观看成人网| 在线中文字幕电影| 亚洲大胆人体视频| 免费视频久久久| 欧美日韩伊人| 蜜桃传媒视频麻豆一区| 国产免费福利网站| 一区二区三区在线观看动漫| 涩视频在线观看| 精品国产一级| 欧美一级淫片aaaaaaa视频| 男女啪啪无遮挡网站| 国产激情视频一区二区在线观看| 久久www视频| 久草资源在线| 日韩成人久久久| 一女二男一黄一片| 美女性感视频久久| 久久国产精品网| 午夜激情在线| 中文字幕九色91在线| 粉嫩av一区二区夜夜嗨| 国产中文一区二区三区| 国产日产欧美视频| 性国裸体高清亚洲| 久久不射电影网| 性18欧美另类| 国产精品免费观看视频| 免费黄色三级网站| aiai久久| 亚洲tv在线观看| 视频免费观看| 7777精品伊人久久久大香线蕉超级流畅| 精品无码久久久久久久| 亚洲精品国产偷自在线观看| 国产综合欧美在线看| 校园春色欧美| 精品88久久久久88久久久| 一区二区视频免费观看| 久久se这里有精品| 亚洲视频在线观看一区二区三区|