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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

自制超聲波倒車小車(帶程序!原理圖!實物圖)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:212924 發(fā)表于 2017-7-31 09:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

  1. #include <reg52.H>//Æ÷¼þÅäÖÃÎļþ
  2. #include <intrins.h>
  3. //´«¸ÐÆ÷½Ó¿Ú
  4. sbit RX  = P3^2;
  5. sbit TX  = P3^3;
  6. //°´¼üÉùÃ÷
  7. sbit S1  = P1^4;
  8. sbit S2  = P1^5;
  9. sbit S3  = P1^6;
  10. //·äÃùÆ÷
  11. sbit Feng= P2^0;
  12. sbit W1=P1^0;
  13. sbit W2=P1^1;
  14. sbit W3=P1^2;
  15. sbit W4=P1^3;
  16. //±äÁ¿ÉùÃ÷
  17. unsigned int  time=0;
  18. unsigned int  timer=0;
  19. unsigned char posit=0;
  20. unsigned long S=0;
  21. unsigned long BJS=50;//±¨¾¯¾àÀë80CM
  22. //ģʽ 0Õý³£Ä£Ê½ 1µ÷Õû
  23. char Mode=0;
  24. bit  flag=0;
  25. bit flag_KEY=0;
  26. unsigned char const discode[] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0xff/*-*/}; //ÊýÂë¹ÜÏÔʾÂë0123456789-ºÍ²»ÏÔʾ
  27. //unsigned char const positon[4]={0xfd,0xfb,0xf7,0xfe}; //λѡ
  28. unsigned char disbuff[4]    ={0,0,0,0};   //Êý×éÓÃÓÚ´æ·Å¾àÀëÐÅÏ¢
  29. unsigned char disbuff_BJ[4] ={0,0,0,0};//±¨¾¯ÐÅÏ¢
  30. void Display();
  31. //ÑÓʱ20ms£¨²»¾«È·£©
  32. void delay(void)
  33. {
  34.     unsigned char a,b,c;
  35.     for(c=2;c>0;c--)
  36.         for(b=38;b>0;b--)
  37.             for(a=60;a>0;a--);
  38. }
  39. //°´¼üɨÃè
  40. void Key_()
  41. {
  42. if(flag_KEY==0)
  43. {
  44.   if(Mode!=0)
  45.   {
  46.    //+
  47.    if(S1==0)
  48.    {
  49.     delay();    //ÑÓʱȥ¶¶
  50.     if(S1==0)
  51.     {
  52.      BJS++;  //±¨¾¯Öµ¼Ó
  53.      flag_KEY=1;
  54.      if(BJS>=151) //×î´ó151
  55.      {
  56.       BJS=0;
  57.      }
  58. //     while(S1==0)
  59. //     Display();
  60.     }
  61.    
  62.    }
  63.    //-
  64.    if(S2==0)
  65.    {
  66.     delay();
  67.     if(S2==0)
  68.     {
  69.      BJS--;  //±¨¾¯Öµ¼õ
  70.      flag_KEY=1;
  71.      if(BJS<=1)  //×îС1
  72.      {
  73.       BJS=150;
  74.      }
  75. //     while(S2==0)
  76. //     Display();
  77.     }
  78.    
  79.    }
  80.   }
  81.   //¹¦ÄÜ
  82.   if(S3==0)  //ÉèÖüü
  83.   {
  84.    delay();
  85.    if(S3==0)
  86.    {
  87.     Mode++;  //ģʽ¼Ó
  88.     flag_KEY=1;
  89.     if(Mode>=2)  //¼Óµ½2ʱÇåÁã
  90.     {
  91.      Mode=0;
  92.     }
  93. //    while(S3==0)
  94. //    Display();
  95.    }
  96.   }
  97. }
  98. if((P1&0x70)==0x70)
  99. {
  100.   flag_KEY=0;
  101. }
  102. }
  103. /**********************************************************************************************************/
  104. //ɨÃèÊýÂë¹Ü
  105. void Display(void)     
  106. {
  107. //Õý³£ÏÔʾ
  108. if(Mode==0)
  109. {
  110.   P0=0x00;  //¹Ø±ÕÏÔʾ
  111.   if(posit==1)//ÊýÂë¹ÜµÄСÊýµã
  112.   {
  113.    P0=(discode[disbuff[posit]])|0x80;//°´Î»»ò£¬×î¸ßλ±äΪ1£¬ÏÔʾСÊýµã
  114.   }
  115.   else if(posit==0)
  116.   {
  117.    P0=~discode[11];
  118.   }
  119.   else
  120.   {
  121.    P0=discode[disbuff[posit]];
  122.   }
  123.   switch(posit)
  124.   {
  125.    case 0 : W1=0;W2=1;W3=1;W4=1; break;
  126.    case 1 : W1=1;W2=0;W3=1;W4=1; break;
  127.    case 2 : W1=1;W2=1;W3=0;W4=1; break;
  128.    case 3 : W1=1;W2=1;W3=1;W4=0; break;
  129.   }
  130.   posit++;
  131.   if(posit>3)  //ÿ½øÒ»´ÎÏÔʾº¯Êý£¬±äÁ¿¼Ó1
  132.    posit=0;  //¼Óµ½3ʱÇåÁã
  133. }
  134. //±¨¾¯ÏÔʾ
  135. else
  136. {
  137.   P0=0x00;
  138.   if(posit==1)//ÊýÂë¹ÜµÄСÊýµã
  139.   {
  140.    P0=(discode[disbuff_BJ[posit]])|0x80;
  141.   }
  142.   else if(posit==0)
  143.   {
  144.    P0=0x76; //ÏÔʾ×Öĸ  
  145.   }
  146.   else
  147.   {
  148.    P0=discode[disbuff_BJ[posit]];
  149.   }
  150.   switch(posit)
  151.   {
  152.    case 0 : W1=0;W2=1;W3=1;W4=1; break;
  153.    case 1 : W1=1;W2=0;W3=1;W4=1; break;
  154.    case 2 : W1=1;W2=1;W3=0;W4=1; break;
  155.    case 3 : W1=1;W2=1;W3=1;W4=0; break;
  156.   }
  157.   posit++;
  158.   if(posit>3)
  159.    posit=0;
  160. }
  161. }
  162. /**********************************************************************************************************/
  163. //¼ÆËã
  164. void Conut(void)
  165. {
  166. time=TH0*256+TL0;   //¶Á³öT0µÄ¼ÆÊ±ÊýÖµ
  167. TH0=0;
  168. TL0=0;      //Çå¿Õ¼ÆÊ±Æ÷
  169. S=(time*1.7)/100;     //Ëã³öÀ´ÊÇCM
  170. //ÉùÒôµÄËÙ¶ÈÊÇ340m/s£¬Ê±¼äµÄµ¥Î»ÊÇus£¬¼ÆËãµ½ÃëÐèÒª½«Ê±¼äÊý¾Ý/1000000£¬
  171. //³¤¶È=ËÙ¶È*ʱ¼ä£¬340*time/1000000£¬³¤¶ÈÊý¾Ýµ¥Î»ÊÇmת»»³ÉcmÐèÒª³ËÒÔ100µÃµ½340*time/10000£¬
  172. //СÊýµã¶¼Ïò×óÒÆÁ½Î»µÃµ½3.4*time/100£¬ÒòΪ³¬Éù²¨ÊÇÍù·µÁË£¬ËùÒÔÔÙ³ýÒÔ2,µÃµ½¾àÀëÊý¾Ý(time*1.7)/100
  173. if(Mode==0)     //·ÇÉèÖÃ״̬ʱ
  174. {
  175.   if((S>=700)||flag==1) //³¬³ö²âÁ¿·¶Î§ÏÔʾ¡°-¡±
  176.   {
  177.    Feng=0;      //·äÃùÆ÷±¨¾¯
  178.    flag=0;
  179.    disbuff[1]=10;    //¡°-¡±
  180.    disbuff[2]=10;    //¡°-¡±
  181.    disbuff[3]=10;    //¡°-¡±
  182.   }
  183.   else
  184.   {
  185.    //¾àÀëСÓÚ±¨¾¯¾à
  186.    if(S<=BJS)
  187.    {
  188.     Feng=0; //±¨¾¯
  189.    }
  190.    else  //´óÓÚ
  191.    {
  192.     Feng=1;  //¹Ø±Õ±¨¾¯
  193.    }
  194.    disbuff[1]=S%1000/100;   //½«¾àÀëÊý¾Ý²ð³Éµ¥¸öλ¸³Öµ
  195.    disbuff[2]=S%1000%100/10;
  196.    disbuff[3]=S%1000%10 %10;
  197.   }
  198. }
  199. else
  200. {
  201.    Feng=1;
  202.    disbuff_BJ[1]=BJS%1000/100;
  203.    disbuff_BJ[2]=BJS%1000%100/10;
  204.    disbuff_BJ[3]=BJS%1000%10 %10;
  205. }
  206. }
  207. /**********************************************************************************************************/
  208. //¶¨Ê±Æ÷0
  209. void zd0() interrupt 1    //T0ÖжÏÓÃÀ´¼ÆÊýÆ÷Òç³ö,³¬¹ý²â¾à·¶Î§
  210. {
  211. flag=1;       //ÖжÏÒç³ö±êÖ¾
  212. }
  213. /**********************************************************************************************************/
  214. //¶¨Ê±Æ÷1
  215. void zd3() interrupt 3    //T1ÖжÏÓÃÀ´É¨ÃèÊýÂë¹ÜºÍ¼Æ800MSÆô¶¯Ä£¿é
  216. {
  217. TH1=0xf8;
  218. TL1=0x30;     //¶¨Ê±2ms
  219. Key_();     //ɨÃè°´¼ü
  220. Display();    //ɨÃèÏÔʾ
  221. timer++;    //±äÁ¿¼Ó
  222. if(timer>=400)   //400´Î¾ÍÊÇ800ms
  223. {
  224.   timer=0;
  225.   TX=1;             //800MS  Æô¶¯Ò»´ÎÄ£¿é
  226.   _nop_();
  227.   _nop_();
  228.   _nop_();
  229.   _nop_();
  230.   _nop_();
  231.   _nop_();
  232.   _nop_();
  233.   _nop_();
  234.   _nop_();
  235.   _nop_();
  236.   _nop_();
  237.   _nop_();
  238.   _nop_();
  239.   _nop_();
  240.   _nop_();
  241.   _nop_();
  242.   _nop_();
  243.   _nop_();
  244.   _nop_();
  245.   _nop_();
  246.   _nop_();
  247.   TX=0;
  248. }
  249. }
  250. /**********************************************************************************************************/
  251. //Ö÷º¯Êý
  252. void main(void)
  253. {  
  254. TMOD=0x11;     //ÉèT0Ϊ·½Ê½1
  255. TH0=0;
  256. TL0=0;         
  257. TH1=0xf8;     //2MS¶¨Ê±
  258. TL1=0x30;
  259. ET0=1;    //ÔÊÐíT0ÖжÏ
  260. ET1=1;      //ÔÊÐíT1ÖжÏ
  261. TR1=1;      //¿ªÆô¶¨Ê±Æ÷
  262. EA=1;     //¿ªÆô×ÜÖжÏ
  263. while(1)
  264. {
  265.   while(!RX);  //µ±ÉϴνÓÊÕÍ겨ºó£¬RXÒý½ÅÊÇµÍµçÆ½£¬È¡·´¾ÍÊÇ1£¬´Ëwhile³ÉÁ¢£¬·´¸´ÅжÏRX״̬¡£µ±RXûÓнÓÊÕµ½·µ»Ø²¨Ê±ÊÇ¸ßµçÆ½£¬È¡·´¾ÍÊÇ0£¬´Ëwhile²»³ÉÁ¢£¬Ìø³ö
  266.   TR0=1;   //¿ªÆô¼ÆÊý
  267.   while(RX);  //µ±RXûÓнÓÊÕµ½·µ»Ø²¨£¬´Ëwhile³ÉÁ¢£¬³ÌÐòÍ£ÔÚÕâÀïÒ»Ö±ÅжÏRX״̬¡£µ±RX½ÓÊÕµ½·µ»Ø²¨£¬RXÒý½Å±äΪµÍµçƽ£¬´Ëwhile²»³ÉÁ¢£¬Ìø³ö
  268.   TR0=0;   //Í£Ö¹¼ÆÊý
  269.   Conut();   //¼ÆËã
  270. }
  271. }




復(fù)制代碼

原理圖.doc

104 KB, 下載次數(shù): 23, 下載積分: 黑幣 -5

評分

參與人數(shù) 2黑幣 +60 收起 理由
564654654 + 10 絕世好帖!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2017-7-31 16:14 | 只看該作者
樓主能分享下源碼壓縮包嗎 ,中文是亂碼
回復(fù)

使用道具 舉報

板凳
ID:212924 發(fā)表于 2017-8-1 08:42 | 只看該作者
admin 發(fā)表于 2017-7-31 16:14
樓主能分享下源碼壓縮包嗎 ,中文是亂碼

可以的
回復(fù)

使用道具 舉報

地板
ID:212924 發(fā)表于 2017-8-1 08:50 | 只看該作者
補上小車的程序,里面略有改動因為之前打算用SS8050三極管驅(qū)動電機但是最后發(fā)現(xiàn)無法和單片機共地所以沒辦法了只能用了繼電器模塊,有點大材小用,沒辦法比賽時間到了所以就這樣

超聲波測距小車C程序.docx

14.62 KB, 下載次數(shù): 15, 下載積分: 黑幣 -5

C程序

評分

參與人數(shù) 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

5#
ID:229527 發(fā)表于 2017-9-12 11:36 | 只看該作者
很給力!正在學(xué)習(xí)中,希望自己也能成功做出來
回復(fù)

使用道具 舉報

6#
ID:229527 發(fā)表于 2017-9-14 10:08 | 只看該作者
壓縮包怎么還是亂碼呀
回復(fù)

使用道具 舉報

7#
ID:233038 發(fā)表于 2017-9-14 10:18 | 只看該作者
感覺好厲害,雖然看不懂程序
回復(fù)

使用道具 舉報

8#
ID:231115 發(fā)表于 2017-9-25 11:38 | 只看該作者
好像是老外的程序,注釋是外國的
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人精品午夜视频免费 | a毛片| 久久69精品久久久久久国产越南 | 久久男人 | 久久只有精品 | 精品一区二区视频 | 国内av在线 | 国产精品一区在线 | 欧美激情在线精品一区二区三区 | 欧美 日本 国产 | 中文字幕一区二区三区日韩精品 | 欧美国产激情二区三区 | 精品一区二区三区四区在线 | 日韩精品1区2区 | 精品美女视频在免费观看 | 国产99久久精品一区二区永久免费 | 红桃视频一区二区三区免费 | 免费一看一级毛片 | 日本成人中文字幕在线观看 | 男人视频网站 | 黄色激情毛片 | 欧美精品在线观看 | 一区二区三区网站 | 国产性生活一级片 | 欧美电影大全 | 精品国产一区二区在线 | 国产欧美一区二区三区在线播放 | 日本高清视频在线播放 | www日日日 | 国产999精品久久久久久绿帽 | 福利视频网站 | 国产福利久久 | 亚州一区二区三区 | 亚洲视频一区在线观看 | 91久久精品一区二区三区 | 亚洲精品视频免费 | 91在线精品视频 | 国产精品福利在线观看 | 色在线看 | 福利视频亚洲 | 日韩在线欧美 |