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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2812|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

一個(gè)單片機(jī)超聲波尋物循跡小車的源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
電路設(shè)計(jì)圖 實(shí)現(xiàn)的功能:從一個(gè)位置出發(fā),開始尋物,在物體前10-20厘米處停下并亮燈,按一下開關(guān)后繼續(xù)尋物,找到三個(gè)物體后沿場(chǎng)地邊緣黑線到指定位置停車。

單片機(jī)源程序如下:
  1. #include <reg51.h>
  2. #include <stdio.h>
  3. #include <intrins.h>
  4. #define uchar unsigned  char
  5. #define uint  unsigned   int
  6. //管腳定義
  7.          sbit P2_0=P2^0;
  8.         sbit P2_1=P2^1;
  9.         sbit P2_2=P2^2;
  10.         sbit P2_3=P2^3;
  11.         sbit P2_4=P2^4;
  12.         sbit P2_5=P2^5;
  13.          sbit Tr=P3^7;            //超聲波觸發(fā)
  14.     sbit Ec=P3^6;            //超聲波輸出
  15.     sbit key=P1^0;           //按鍵
  16.            sbit PCA_LED=P1^1;                         //數(shù)碼管
  17.         sbit zhong=P0^6;
  18.         sbit zuo=P0^5;
  19.         sbit you=P0^7;
  20.         sbit hou=P0^1;
  21. //定義變量                                                                                                                          
  22.     uint L = 0;               //距離長(zhǎng)度(cm)
  23.         uint time=0;
  24.         uint L1=0;
  25.         uint L2=0;
  26.         uint a=3;
  27.         uchar zdbz;
  28. void ultInit()
  29. {
  30.     TMOD=0X11;
  31.         TH1=(65536-100)/256;          //100US定時(shí)
  32.         TL1=(65536-100)%256;
  33.         TH0=0;
  34.         TL0=0;  
  35.         TR1= 1;
  36.         ET1= 1;
  37.         ET0= 1;
  38.         EA = 1;
  39. }
  40. void ultStart()
  41. {
  42.     Tr = 1;
  43.     _nop_();
  44.           _nop_();
  45.           _nop_();
  46.           _nop_();
  47.           _nop_();
  48.           _nop_();
  49.           _nop_();
  50.           _nop_();
  51.           _nop_();
  52.           _nop_();
  53.           _nop_();
  54.           _nop_();
  55.           _nop_();
  56.           _nop_();
  57.           _nop_();
  58.           _nop_();
  59.           _nop_();
  60.           _nop_();
  61.           _nop_();
  62.           _nop_();
  63.           _nop_();
  64.     Tr = 0;
  65. }
  66. void count()
  67. {
  68.   while(!Ec);                       //當(dāng)RX為零時(shí)等待
  69.   TR0=1;                               //開啟計(jì)數(shù)
  70.   while(Ec);                           //當(dāng)RX為1計(jì)數(shù)并等待
  71.   TR0=0;                                   //關(guān)閉計(jì)數(shù)
  72.   time=TH0*256+TL0;                   //讀取脈寬長(zhǎng)度
  73.   TH0=0;
  74.   TL0=0;
  75.   L=(time*1.7)/100;        //算出來是CM
  76. }
  77. void softqianjin()
  78. {        
  79.     uchar zdbz=1;
  80.     P2_4=1;
  81.         P2_5=1;        //ENA ENB置為1
  82.         P2_0=1;
  83.         P2_1=0;
  84.         P2_2=1;
  85.         P2_3=0;
  86.          TMOD=0x11;
  87.         TH1=0xfd;
  88.         TL1=0x44;
  89.         EA=1;
  90.         ET1=1;
  91.         TR1=1;
  92. }
  93. void left(void)
  94. {
  95.         P2_4=1;        //ENA為1
  96.         P2_5=0;        //ENB為0
  97.         P2_0=1;
  98.         P2_1=0;
  99.         P2_2=1;
  100.         P2_3=0;
  101. }
  102. void right(void)
  103. {
  104.         P2_4=0;        //ENA為1
  105.         P2_5=1;        //ENB為0
  106.         P2_0=1;
  107.         P2_1=0;
  108.         P2_2=1;
  109.         P2_3=0;        
  110. }

  111. void qianjin(void)
  112. {
  113.         P2_4=1;
  114.         P2_5=1;        //ENA ENB置為1
  115.         P2_0=1;
  116.         P2_1=0;
  117.         P2_2=1;
  118.         P2_3=0;
  119. }
  120. void houtui(void)
  121. {
  122.         P2_4=1;
  123.         P2_5=1;        
  124.         P2_0=0;
  125.         P2_1=1;
  126.         P2_2=0;
  127.         P2_3=1;
  128. }
  129. void shating(void)
  130. {
  131.         P2_4=0;
  132.         P2_5=0;        //ENA ENB置為1
  133.         P2_0=0;
  134.         P2_1=0;
  135.         P2_2=0;
  136.         P2_3=0;
  137. }

  138. void softqianjinzd() interrupt 3
  139. {
  140.         if(zdbz==1)
  141.          {
  142.          P2_0=0;
  143.          P2_2=0;
  144.          TH1=0xfe;
  145.          TL1=0xd4;
  146.          zdbz=0;
  147.         }
  148.         else
  149.         {
  150.          P2_0=1;
  151.          P2_2=1;
  152.          TH1=0xfd;
  153.          TL1=0x44;
  154.          zdbz=1;
  155.         }
  156. }
  157. void delay(unsigned int i)
  158. {
  159.         unsigned int j;
  160.         unsigned char k;
  161.         for(j=i;j>0;j--)
  162.                 for(k=125;k>0;k--);
  163. }


  164. void main()                        
  165. {        
  166.         PCA_LED=0;
  167.         while(key==1);
  168.         qianjin();
  169.         delay(10000);
  170.         ultInit();         
  171.         while(a)
  172. {               
  173.         ultStart();
  174.         count();
  175.           if(L>70)
  176.             {
  177.                 PCA_LED=0;
  178.                 left();
  179.                 }
  180.            else if(L<15)
  181.            {shating();
  182.            while(key==1);
  183.            a--;
  184.            }
  185.            else if(L>15&&L<70)           
  186.                 {
  187.                 PCA_LED=1;
  188.                 qianjin();        
  189.                 }
  190. }
  191. softqianjin();
  192. while(1)
  193. {
  194. if(zhong==1&&zuo==1&&you==1) {shating();delay(2000);break;}
  195. if(zhong==1&&zuo==1&&you==0) {left();}
  196. if(zhong==1&&zuo==0&&you==1) {right();}
  197. }
  198. left();delay(2000);shating();delay(2000);
  199. while(1)
  200. {                                                                                                           
  201. if(zhong==0&&zuo==0&&you==0) {softqianjin();}
  202. if(zhong==0&&zuo==0&&you==1) {right();}
  203. if(zhong==0&&zuo==1&&you==0) {left();}
  204. if(zhong==0&&zuo==1&&you==1) {softqianjin();}
  205. if(zhong==1&&zuo==0&&you==0) {softqianjin();}
  206. if(zhong==1&&zuo==0&&you==1) {right();}
  207. if(zhong==1&&zuo==1&&you==0) {left();}
  208. if(zhong==1&&zuo==1&&you==1) {shating();delay(2000);houtui();delay(1000);left();delay(2000);qianjin();}
  209. if(zhong==1&&hou==1&&you==1) {shating();}
  210. if(zhong==1&&hou==1)                 {shating();}
  211. }
  212. while(1);
  213. }
復(fù)制代碼
全部程序51hei下載地址:
C文件代碼.zip (1.26 KB, 下載次數(shù): 20)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一级片在线观看 | 成人一区在线观看 | 亚洲第一区久久 | 激情五月婷婷丁香 | 国产一区二区久久久 | 亚洲一区视频在线播放 | 久久久精品日本 | 亚洲精精品 | 国产一区二区三区免费观看视频 | 久久夜色精品国产 | 男女爱爱福利视频 | 欧美日韩国产一区二区三区 | 久久久123| 日韩在线精品视频 | 日本精品久久久久久久 | 亚洲综合在 | 欧美日韩视频网站 | 久久小视频 | 国产精品久久久久久二区 | 欧美一区二区三区视频在线观看 | 国产精品久久久久久久毛片 | 国产一区二区影院 | 黄色大片网站 | 在线视频成人 | 一道本一区二区 | 成人福利网站 | 岛国毛片| 成人在线电影在线观看 | 高清久久| 亚洲欧美国产视频 | 秋霞在线一区 | 亚洲国产成人av好男人在线观看 | 视频在线h| 欧美亚洲视频在线观看 | 成人亚洲综合 | 欧美成人a∨高清免费观看 91伊人 | 91福利网 | 在线视频a | 国产精品一区二区久久精品爱微奶 | 婷婷综合 | 久久精品无码一区二区三区 |