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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機的無線遙控小車設計[附發射接收程序]

  [復制鏈接]
跳轉到指定樓層
樓主
ID:256970 發表于 2019-5-5 00:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
基于51單片機的無線遙控小車設計
(附發射接收程序)
關于遙控小車,網上的資料很多,有藍牙的、有WIFI的、有紅外的、還有單片機+PT2262/PT2272編解碼芯片的等等,動不動就上演智能小車的節奏,什么避障、什么循跡,講半天云里霧里的,還不知道真正的遙控在哪里。如果只是需要小車進行簡單的前后左右停止操作,需要那么麻煩嗎?1.藍牙版的需要手機APP和藍牙接收模塊(一般十幾元,加運費的話也得二十了),另外遙控范圍有限,一般在10米以內;2.WIFI版的,難到小車只在有網的地方跑嗎?況且WIFI接收模塊也不便宜吧;3.紅外版的,遙控器只能對著小車遙控,又不是電視機(擱那一直不動),用紅外遙控器的,不知道怎么想的;4.還有單片機+PT2262/PT2272編解碼芯片的,這個讓我不能理解的是既然已經有單片機了,還要編解碼芯片做什么呢?好了,話不多說,現在給大家來一款51單片機版(不需要編解碼芯片)的無線遙控小車設計,電路原理圖及實物照片如下圖:


另外需要說明的是,發射接收模塊需要自己各接上17cm長的導線作為天線,小車電源的話用一節可充電的鋰電池就好,容量最好大一點,小車跑的時間就能長一些,或者把以前不用的手機上的鋰電池拆下來接上也可以!遙控器電源采用2節3V(2032的)鈕扣電池就可以了。


以下是遙控小車程序代碼:
  1. /***************************************************************/
  2. /*【基于51單片機的無線遙控小車設計】
  3. /***************************************************************/
  4. /*發射部分*/
  5. #include"STC15F104E.H"
  6. #define uchar unsigned char
  7. sbit K0=P3^5;//S4,停止
  8. sbit K1=P3^4;//S5,前進
  9. sbit K2=P3^1;//S2,后退
  10. sbit K3=P3^2;//S1,左轉
  11. sbit K4=P3^0;//S3,右轉
  12. sbit TX=P3^3;

  13. void delay_315()
  14. {
  15.         uchar i,j;
  16.         for(i=0;i<10;i++)
  17.                 for(j=0;j<110;j++);
  18. }

  19. void main()
  20. {
  21.         uchar i;
  22.         bit dong=0;                       
  23.         TMOD=0X01;                        //開定時器0中斷
  24.         TH0=(65536-100)/256;
  25.         TL0=(65536-100)%256;
  26.         EA=1;
  27.         ET0=1;
  28.         TR0=1;
  29.         EX0=1;
  30.         IT0=1;

  31.         TX=0;
  32.         while(1)                                                 
  33.         {
  34.                 if(K0==0)                //發送指令0
  35.                 {
  36.                         delay_315();
  37.                         while(K0==0){ v0();v0();v0();m=0;while(m<40);}
  38.                         }               
  39.                                                                                                                                                                                                                                     
  40.                 if(K1==0)                //發送指令1
  41.                 {
  42.                         delay_315();
  43.                         while(K1==0){ v0();v0();v1();m=0;while(m<40);}
  44.                         }                                                       
  45.                                                                                                                                                                
  46.                 if(K2==0)
  47.                 {
  48.                         delay_315();
  49.                         while(K2==0){ v0();v1();v0();m=0;while(m<40);}
  50.                 dong=1;                       
  51.                 }

  52.                 if(K3==0)
  53.                 {
  54.                         delay_315();
  55.                         while(K3==0){ v0();v1();v1();m=0;while(m<40);}
  56.                 dong=1;       
  57.                 }

  58.                 if(K4==0)
  59.                 {
  60.                         delay_315();
  61.                         while(K4==0){ v1();v0();v0();m=0;while(m<40);}
  62.                 dong=1;       
  63.                 }


  64.                 if(dong==1)
  65.                 {
  66.                         dong=0;
  67.                         for(i=0;i<5;i++)
  68.                         { v0();v0();v0();m=0;while(m<40);
  69.                         delay_315(); }
  70.                
  71.                  }

  72.         }

  73. }
  74. /*
  75. void EXINT_0() interrupt 0
  76. {
  77.                 delay_315();
  78.                 if(K7==0)                //發送指令1
  79.                 {

  80.                 delay_315();
  81.                 while(K7==0){v3();v2();v0();v0();v1();m=0;while(m<40);}
  82.                 delay_315();
  83.        
  84.         //                dong=1;         
  85.                 }
  86. }
  87. */
  88. void timer0() interrupt 1
  89. {
  90.         TH0=(65536-100)/256;
  91.         TL0=(65536-100)%256;
  92.         m++;
  93.         TF0=0;
  94. }





  95. /***************************************************************/
  96. /*【基于51單片機的無線遙控小車設計】
  97. /***************************************************************/
  98. /*接收部分*/
  99. #include"STC15F104E.H"
  100. #define uchar unsigned char
  101. sbit RX=P3^3;        //定義接收腳

  102. sbit LED=P3^5;        //定義繼電器端

  103. sbit IN1=P3^0;        //電機驅動L
  104. sbit IN2=P3^1;        //電機驅動L
  105. sbit IN3=P3^2;        //電機驅動R
  106. sbit IN4=P3^4;        //電機驅動R



  107. //void delay10ms(unsigned char a);


  108. //小車動作函數
  109. void run()//前進
  110. {
  111.         IN1=1;//左電機往前走
  112.         IN2=0;
  113.        
  114.         IN3=1;//右電機往前走
  115.         IN4=0;
  116. }
  117. void backrun()//后退
  118. {
  119.         IN1=0;//左電機往后走
  120.         IN2=1;
  121.        
  122.         IN3=0;//右電機往后走
  123.         IN4=1;
  124. }
  125. /*
  126. void leftrun()//左前
  127. {
  128.         IN1=0;//左電機往后走
  129.         IN2=0;
  130.        
  131.         IN3=1;//右電機往前走
  132.         IN4=0;
  133. }
  134. void rightrun()//右前
  135. {
  136.         IN1=1;//左電機往前走
  137.         IN2=0;
  138.        
  139.         IN3=0;//右電機往后走
  140.         IN4=0;
  141. }
  142. */
  143. void lefturn()//左轉
  144. {
  145.         IN1=0;//左電機往后走
  146.         IN2=1;
  147.        
  148.         IN3=1;//右電機往前走
  149.         IN4=0;
  150. }
  151. void righturn()//右轉
  152. {
  153.         IN1=1;//左電機往前走
  154.         IN2=0;
  155.        
  156.         IN3=0;//右電機往后走
  157.         IN4=1;
  158. }
  159. void stop()//停止
  160. {
  161.         IN1=0;//左電機停止
  162.         IN2=0;
  163.        
  164.         IN3=0;//右電機停止
  165.         IN4=0;
  166. }



  167. uchar m,flag,x,y;
  168. bit n;
  169. //PCON2=0X00;
  170. void main()
  171. {
  172. //        P3M1 = 0x00;
  173. //    P3M1 = 0xFF;

  174.         uchar a,b,c,p=0;   //定義存取的數據
  175.         TMOD=0X01;
  176.         TH0=(65536-100)/256;   //開定時器0
  177.         TL0=(65536-100)%256;
  178.         EA=1;         //開總中斷
  179.         ET0=1;         //開定時器0中斷
  180.         TR0=1;         //啟動定時器0工作
  181.         EX1=1;         //允許外部中斷INT1
  182.         IT1=1;         //外部中斷INT1為下降沿觸發方式
  183.         p=0;
  184.         x=0;
  185.         LED=1;
  186.         while(1)
  187.         {
  188.         if(n==1)
  189.         {                               
  190. p=a+b+c;
  191.                                         x++;
  192.                                         if(x==1)y=p;
  193. //                                        delay10ms(1);
  194.                                         if(x==2)
  195.                                         {
  196.                                                 x=0;
  197.                                                 if(y==p)
  198.                                                 {
  199.                                         //        P2=p;delay100ms(8); P2=0XFF;
  200.                                                         switch(p)
  201.                                                         {
  202.                                                                 case 0:stop();break;        //停止
  203.                                                                 case 1:run()break;
  204.                                                                 case 2:backrun();break;
  205.                                                                 case 3:lefturn();break;
  206.                                                                 case 4:righturn();break;
  207.                                                 //                case 5:lefturn();break;
  208.                                                 //                case 6:righturn();break;
  209.                                                  //                case 7:LED = 1;delay100ms(1); break;
  210.                                                                 default:stop();LED = 1;break;
  211.                                                         }
  212.                                                 }       
  213.                                         }
  214.                                 //        stop();LED = 1;
  215.                                 }
  216.                           
  217.                         }                       
  218.                 }               
  219.         }
  220. }
  221. /*
  222. void delay10ms(unsigned char a)
  223. {
  224.     unsigned char i,j,k;
  225.     for(i=a;i>0;i--)
  226.     for(j=20;j>0;j--)
  227.     for(k=248;k>0;k--);
  228. }
  229. */
  230. void timer0() interrupt 1
  231. {
  232.          
  233.         TH0=(65536-100)/256;
  234.         TL0=(65536-100)%256;
  235.         m++;
  236.   //  x++;
  237.        
  238.         TF0=0;
  239. }

  240. void INT_1() interrupt 2
  241. {
  242.         n=1;
  243. }
復制代碼

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:407374 發表于 2019-5-5 10:14 | 只看該作者
這也不是用的51啊
回復

使用道具 舉報

板凳
ID:320226 發表于 2019-6-13 22:29 | 只看該作者
樓主 你好.你的程序翻譯不通過啊
回復

使用道具 舉報

地板
ID:695961 發表于 2022-4-4 10:35 | 只看該作者
哥們,您這發射接收模塊用的是什么呢?
回復

使用道具 舉報

5#
ID:673647 發表于 2022-7-13 15:45 | 只看該作者
謝謝分享,原理圖好像不完整啊?請問有完整的圖嗎?包括發射接收的?
回復

使用道具 舉報

6#
ID:66287 發表于 2022-8-3 16:02 | 只看該作者
大神,像 v0();這類,你在哪定義的?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99福利网 | 91在线看视频 | 亚洲韩国精品 | 中文字幕一区二区三区在线观看 | 国产成人久久精品一区二区三区 | 精品免费国产一区二区三区四区介绍 | 日韩一区二区三区av | 久日精品 | 草草视频在线观看 | 久久精品欧美一区二区三区不卡 | 免费久久精品 | 久久视频一区 | 免费三级网站 | 国产一区91精品张津瑜 | 一区二区三区久久久 | 欧洲性生活视频 | 一区二区在线免费观看 | 国产欧美久久精品 | 美女一区 | 日本在线网址 | 亚洲在线一区 | 影音先锋男 | 亚洲国产成人精品久久 | 亚洲美女视频 | 午夜免费福利电影 | 狠狠av | 一个色在线 | 日韩成人av在线 | 自拍偷拍亚洲欧美 | 综合另类| 日韩国产精品一区二区三区 | 福利精品 | 综合网视频 | 午夜电影福利 | 最新中文字幕久久 | 日韩一区二区在线看 | 成人一区二区三区视频 | 欧美日产国产成人免费图片 | 国产成人a亚洲精品 | 国产清纯白嫩初高生视频在线观看 | 久久网站黄 |