欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 51單片機(jī)WiFi遙控小車程序與APP [打印本頁]

作者: fengjun8177    時(shí)間: 2018-7-25 15:01
標(biāo)題: 51單片機(jī)WiFi遙控小車程序與APP
51單片機(jī)WiFi遙控小車程序


單片機(jī)源程序如下:
  1. /********************************************************************/
  2. #include <REGX51.H>
  3. #define uint unsigned int
  4. #define uchar unsigned char   
  5. /*****************相關(guān)變量**************/
  6. uchar Receive,i,qj,yz,zz,ht;                              
  7. uint n;  
  8. uchar Recive_table[40];                  //用于接收wifi模塊反饋到MCU上的數(shù)據(jù)  

  9. /*******************************************************************
  10. 名稱:延時(shí)函數(shù)  作用:毫秒級(jí)延時(shí),微妙級(jí)延時(shí)函數(shù),為數(shù)據(jù)收發(fā)完成作等待.......  
  11. ********************************************************************/
  12. void ms_delay(uint t)
  13. {  
  14.         uint i,j;  
  15.         for(i=t;i>0;i--)   
  16.         for(j=110;j>0;j--);
  17. }   

  18. void us_delay(uchar t)
  19. {  
  20.         while(t--);
  21. }         

  22. void Uart_Init()                                //使用定時(shí)器1作為波特率發(fā)生器(STC89C52、STC89C51、AT89C51等均可)
  23. {  
  24.     TMOD = 0x20;
  25.     SCON = 0x50;                                 //設(shè)置串行方式
  26.     TH1 = 0xFD;                                         //波特率9600
  27.     TL1 = TH1;
  28.     PCON = 0x00;
  29.     EA = 1;                                                //總中斷打開
  30.     ES = 1;                                                //開串口中斷  
  31.     TR1 = 1;                                        //啟動(dòng)定時(shí)器1
  32. }

  33. /********************************************************************
  34. 名稱:串口發(fā)送函數(shù)  功能:MCU向無線WIFI模塊ESP8266發(fā)送數(shù)據(jù)  
  35. ********************************************************************/
  36. void Send_Uart(uchar value)
  37. {  
  38.         ES=0;                                                  //關(guān)閉串口中斷  
  39.         TI=0;                                           //清發(fā)送完畢中斷請(qǐng)求標(biāo)志位   
  40.         SBUF=value;                                 //發(fā)送  
  41.         while(TI==0);                                 //等待發(fā)送完畢   
  42.         TI=0;                                           //清發(fā)送完畢中斷請(qǐng)求標(biāo)志位   
  43.         ES=1;                                                  //允許串口中斷  
  44. }  

  45. /********************************************************************
  46. 名稱:WIFI模塊設(shè)置函數(shù)  作用: 啟動(dòng)模塊,以便可以實(shí)現(xiàn)無線接入和控制  
  47. ********************************************************************/

  48. void ESP8266_Set(uchar *puf)         // 數(shù)組指針*puf指向字符串?dāng)?shù)組               
  49. {   
  50.         while(*puf!='\0')                    //遇到空格跳出循環(huán)  
  51.         {   
  52.                 Send_Uart(*puf);                  //向WIFI模塊發(fā)送控制指令。   
  53.                 us_delay(5);   
  54.                 puf++;   
  55.         }  
  56.         us_delay(5);  
  57.         Send_Uart('\r');                         //回車  
  58.         us_delay(5);  
  59.         Send_Uart('\n');                           //換行  
  60. }

  61. /********************************************************************
  62. 名稱:主函數(shù)  作用:程序的執(zhí)行入口  
  63. ********************************************************************/

  64. void main()
  65. {         
  66.         Uart_Init();                                                                                        //波特率發(fā)生器
  67.         ms_delay(2000);
  68.         ESP8266_Set("AT+CWMODE=2");                                                         //設(shè)置路由器模式1 station,模式2 AP,模式3 station+AP混合模式   
  69.         ms_delay(2000);
  70. //        ESP8266_Set("AT+RST");                                                                         //重新啟動(dòng)wifi模塊            
  71. //  ms_delay(2000);
  72.         ESP8266_Set("AT+CWSAP=\"wifi\",\"123456789\",11,4");          //AT+CWSAP="wifi","123456789",11,4  設(shè)置模塊SSID:WIFI, PWD:密碼 及安全類型加密模式(WPA2-PSK)
  73.         ms_delay(2000);
  74.         ESP8266_Set("AT+CIPMUX=1");                                                                //開啟多連接模式,允許多個(gè)各客戶端接入
  75.         ms_delay(2000);
  76.         ESP8266_Set("AT+CIPSERVER=1,5000");                                          //啟動(dòng)TCP/IP 實(shí)現(xiàn)基于網(wǎng)絡(luò)//控制         ESP8266_Set("AT+CIPSERVER=1,5000");  
  77.         ms_delay(2000);
  78.         ESP8266_Set("AT+CIPSTO=0");                                                         //永遠(yuǎn)不超時(shí)
  79.         ES=1;                                                                                           //允許串口中斷                
  80.         qj=1;
  81.         zz=1;
  82.         yz=1;
  83.         ht=1;
  84.         while(1)   
  85.         {   
  86.                 if((Recive_table[0]=='+')&&(Recive_table[1]=='I')&&(Recive_table[2]=='P'))//MCU接收到的數(shù)據(jù)為+IPD時(shí)進(jìn)入判斷控制0\1來使小燈亮與滅   
  87.                 {           
  88.                         if((Recive_table[9]=='G')&&(Recive_table[10]=='P'))            
  89.                         {      
  90.                                 if(Recive_table[15]=='0')      
  91.                                 {      
  92.                                         qj=0;                                                 //前進(jìn)
  93.                                         zz=1;
  94.                                         yz=1;
  95.                                         ht=1;                                                                                           
  96.                                 }                                
  97.                                 else
  98.                                 if (Recive_table[15]=='1')      
  99.                                 {              
  100.                                         qj=1;                                                 
  101.                                         zz=1;
  102.                                         yz=1;
  103.                                         ht=0;                             // 后退
  104.                                 }
  105.                                 else
  106.                                 if (Recive_table[15]=='2')      
  107.                                 {              
  108. //                                        qj=1;                                                 //
  109.                                         zz=1;                                               
  110.                                         yz=0;                                                  //右轉(zhuǎn)
  111. //                                        ht=1;                               
  112.                                 }
  113.                                 else
  114.                                 if (Recive_table[15]=='3')      
  115.                                 {              
  116. //                                        qj=1;                                                 //
  117.                                         zz=0;                                                 //左轉(zhuǎn)
  118.                                         yz=1;                                                 
  119. //                                        ht=1;                               
  120.                                 }
  121.                                 else
  122.                                 if (Recive_table[15]=='4')      
  123.                                 {              
  124.                                         qj=1;                                                 //
  125.                                         zz=1;
  126.                                         yz=1;
  127.                                         ht=1;                               
  128.                                 }                                                                                            
  129.                         }  
  130.                 }
  131.                 if(qj==0)
  132.                 {
  133.                     if((zz==0)|(yz==0))
  134.                         {
  135.                           ;
  136.                         }
  137.                         else
  138.                         {
  139.                             P2=0x11;
  140.                         ms_delay(10);
  141.                             P2=0x22;
  142.                         ms_delay(10);
  143.                             P2=0x44;
  144.                         ms_delay(10);
  145.                             P2=0x88;
  146.                         ms_delay(10);
  147.                         }       
  148.                 }
  149.                 if(ht==0)
  150.                 {
  151.                     if((zz==0)|(yz==0))
  152.                         {
  153.                           ;
  154.                         }
  155.                         else
  156.                         {
  157.                             P2=0x88;
  158.                         ms_delay(10);
  159.                             P2=0x44;
  160.                         ms_delay(10);
  161.                             P2=0x22;
  162.                         ms_delay(10);
  163.                             P2=0x11;
  164.                         ms_delay(10);               
  165.                         }
  166.                 }
  167.                 if(zz==0)
  168.                 {
  169.                         if(ht==1)
  170.                         {
  171.                             P2=0x01;
  172.                         ms_delay(10);
  173.                             P2=0x02;
  174.                         ms_delay(10);
  175.                             P2=0x04;
  176.                         ms_delay(10);
  177.                             P2=0x08;
  178.                         ms_delay(10);
  179.                         }
  180.                         else
  181.                         {
  182.                                 P2=0x08;
  183.                         ms_delay(10);
  184.                             P2=0x04;
  185.                         ms_delay(10);
  186.                             P2=0x02;
  187.                         ms_delay(10);
  188.                             P2=0x01;
  189.                         ms_delay(10);
  190.                         }               
  191.                 }
  192.                 if(yz==0)
  193.                 {
  194.                         if(ht==1)
  195.                         {
  196.                             P2=0x10;
  197.                         ms_delay(10);
  198.                             P2=0x20;
  199.                         ms_delay(10);
  200.                             P2=0x40;
  201.                         ms_delay(10);
  202.                             P2=0x80;
  203.                         ms_delay(10);
  204.                         }
  205.                         else
  206.                         {
  207.                             P2=0x80;
  208.                                 ms_delay(10);
  209.                             P2=0x40;
  210.                         ms_delay(10);
  211.                             P2=0x20;
  212.                         ms_delay(10);
  213.                             P2=0x10;
  214.                         ms_delay(10);
  215.                         }       
  216.                 }                                                          
  217.         }   
  218. }   

  219. /*********************************************************************  
  220. 名稱:串行通訊中斷  作用:發(fā)送或接收結(jié)束后進(jìn)入該函數(shù),對(duì)相應(yīng)的標(biāo)志位軟件清0,實(shí)現(xiàn)模塊對(duì)數(shù)據(jù)正常的收發(fā)。  
  221. ********************************************************************/

  222. void Uart_Interrupt() interrupt 4         
  223. {   
  224.         static uchar i=0;  
  225.         if(RI==1)  
  226.         {   
  227.                 RI=0;   
  228.                 Receive=SBUF;                                                        //MCU接收wifi模塊反饋回來的數(shù)據(jù)      
  229.                 Recive_table[i]=Receive;   
  230.                 if((Recive_table[i]=='\n'))
  231.                 {                     
  232.                         i=0;
  233.                 }   
  234.                 else i++;                                                                                  //遇到換行 重新裝值  
  235.         }   
  236.         else TI=0;   
  237. }  
復(fù)制代碼

所有資料51hei提供下載:
51單片機(jī)WiFi遙控小車及APP.rar (180.02 KB, 下載次數(shù): 190)



作者: wuxishun    時(shí)間: 2018-7-25 23:12
這個(gè)遙控距離多遠(yuǎn)?
作者: 小貓貓愛吃魚    時(shí)間: 2018-7-26 07:45
wuxishun 發(fā)表于 2018-7-25 23:12
這個(gè)遙控距離多遠(yuǎn)?

遙控距離測(cè)試過 40 米可用
作者: traanter    時(shí)間: 2018-7-26 19:29
用那款芯片做的

作者: Vulcan_X    時(shí)間: 2018-12-3 10:03
wifi模塊用esp8266可以嗎
作者: keymore    時(shí)間: 2018-12-13 21:22
為什么我把所有的東西都弄好后 燒入程序小車不動(dòng)了。。。
作者: cyrs    時(shí)間: 2018-12-13 22:23
貼出來的代碼全嗎
作者: aking991    時(shí)間: 2019-1-25 17:09
下載看看有沒有幫助
作者: lindq    時(shí)間: 2019-4-3 22:53
Vulcan_X 發(fā)表于 2018-12-3 10:03
wifi模塊用esp8266可以嗎

esp8266模塊作為WIFI模塊是可以的
作者: jemery1030    時(shí)間: 2019-7-23 16:33
感謝分享好文
作者: 51mcu    時(shí)間: 2020-3-27 07:42
這個(gè)遙控車的APP源碼應(yīng)該是出自“電子樂屋”。感覺還是比適用。
作者: antonov    時(shí)間: 2020-4-7 10:23
感謝分享
作者: dilongking    時(shí)間: 2020-4-7 16:41
下載落來試下,初學(xué)者:什么都應(yīng)該去試試
作者: aking991    時(shí)間: 2020-4-8 11:28
要是加個(gè)原理圖先給看看就更好了
作者: linyingjiang    時(shí)間: 2020-4-8 12:28
app自己做的嗎?厲害!佩服!




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1