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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9026|回復: 14
收起左側

51單片機WiFi遙控小車程序與APP

  [復制鏈接]
ID:378979 發表于 2018-7-25 15:01 | 顯示全部樓層 |閱讀模式
51單片機WiFi遙控小車程序
0.png

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

  9. /*******************************************************************
  10. 名稱:延時函數  作用:毫秒級延時,微妙級延時函數,為數據收發完成作等待.......  
  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()                                //使用定時器1作為波特率發生器(STC89C52、STC89C51、AT89C51等均可)
  23. {  
  24.     TMOD = 0x20;
  25.     SCON = 0x50;                                 //設置串行方式
  26.     TH1 = 0xFD;                                         //波特率9600
  27.     TL1 = TH1;
  28.     PCON = 0x00;
  29.     EA = 1;                                                //總中斷打開
  30.     ES = 1;                                                //開串口中斷  
  31.     TR1 = 1;                                        //啟動定時器1
  32. }

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

  45. /********************************************************************
  46. 名稱:WIFI模塊設置函數  作用: 啟動模塊,以便可以實現無線接入和控制  
  47. ********************************************************************/

  48. void ESP8266_Set(uchar *puf)         // 數組指針*puf指向字符串數組               
  49. {   
  50.         while(*puf!='\0')                    //遇到空格跳出循環  
  51.         {   
  52.                 Send_Uart(*puf);                  //向WIFI模塊發送控制指令。   
  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. 名稱:主函數  作用:程序的執行入口  
  63. ********************************************************************/

  64. void main()
  65. {         
  66.         Uart_Init();                                                                                        //波特率發生器
  67.         ms_delay(2000);
  68.         ESP8266_Set("AT+CWMODE=2");                                                         //設置路由器模式1 station,模式2 AP,模式3 station+AP混合模式   
  69.         ms_delay(2000);
  70. //        ESP8266_Set("AT+RST");                                                                         //重新啟動wifi模塊            
  71. //  ms_delay(2000);
  72.         ESP8266_Set("AT+CWSAP=\"wifi\",\"123456789\",11,4");          //AT+CWSAP="wifi","123456789",11,4  設置模塊SSID:WIFI, PWD:密碼 及安全類型加密模式(WPA2-PSK)
  73.         ms_delay(2000);
  74.         ESP8266_Set("AT+CIPMUX=1");                                                                //開啟多連接模式,允許多個各客戶端接入
  75.         ms_delay(2000);
  76.         ESP8266_Set("AT+CIPSERVER=1,5000");                                          //啟動TCP/IP 實現基于網絡//控制         ESP8266_Set("AT+CIPSERVER=1,5000");  
  77.         ms_delay(2000);
  78.         ESP8266_Set("AT+CIPSTO=0");                                                         //永遠不超時
  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接收到的數據為+IPD時進入判斷控制0\1來使小燈亮與滅   
  87.                 {           
  88.                         if((Recive_table[9]=='G')&&(Recive_table[10]=='P'))            
  89.                         {      
  90.                                 if(Recive_table[15]=='0')      
  91.                                 {      
  92.                                         qj=0;                                                 //前進
  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;                                                  //右轉
  111. //                                        ht=1;                               
  112.                                 }
  113.                                 else
  114.                                 if (Recive_table[15]=='3')      
  115.                                 {              
  116. //                                        qj=1;                                                 //
  117.                                         zz=0;                                                 //左轉
  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. 名稱:串行通訊中斷  作用:發送或接收結束后進入該函數,對相應的標志位軟件清0,實現模塊對數據正常的收發。  
  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模塊反饋回來的數據      
  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. }  
復制代碼

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


評分

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

查看全部評分

回復

使用道具 舉報

ID:243748 發表于 2018-7-25 23:12 來自觸屏版 | 顯示全部樓層
這個遙控距離多遠?
回復

使用道具 舉報

ID:303383 發表于 2018-7-26 07:45 | 顯示全部樓層
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

ID:379565 發表于 2018-7-26 19:29 | 顯示全部樓層
用那款芯片做的
回復

使用道具 舉報

ID:438107 發表于 2018-12-3 10:03 來自觸屏版 | 顯示全部樓層
wifi模塊用esp8266可以嗎
回復

使用道具 舉報

ID:444643 發表于 2018-12-13 21:22 | 顯示全部樓層
為什么我把所有的東西都弄好后 燒入程序小車不動了。。。
回復

使用道具 舉報

ID:81138 發表于 2018-12-13 22:23 | 顯示全部樓層
貼出來的代碼全嗎
回復

使用道具 舉報

ID:65956 發表于 2019-1-25 17:09 | 顯示全部樓層
下載看看有沒有幫助
回復

使用道具 舉報

ID:378645 發表于 2019-4-3 22:53 | 顯示全部樓層
Vulcan_X 發表于 2018-12-3 10:03
wifi模塊用esp8266可以嗎

esp8266模塊作為WIFI模塊是可以的
回復

使用道具 舉報

ID:585455 發表于 2019-7-23 16:33 | 顯示全部樓層
感謝分享好文
回復

使用道具 舉報

ID:34643 發表于 2020-3-27 07:42 | 顯示全部樓層
這個遙控車的APP源碼應該是出自“電子樂屋”。感覺還是比適用。
回復

使用道具 舉報

ID:723850 發表于 2020-4-7 10:23 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:724172 發表于 2020-4-7 16:41 | 顯示全部樓層
下載落來試下,初學者:什么都應該去試試
回復

使用道具 舉報

ID:65956 發表于 2020-4-8 11:28 | 顯示全部樓層
要是加個原理圖先給看看就更好了
回復

使用道具 舉報

ID:338224 發表于 2020-4-8 12:28 | 顯示全部樓層
app自己做的嗎?厲害!佩服!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美淫 | 欧美中文字幕一区二区三区 | 一区二区三区四区av | 91视频观看| 久久综合成人精品亚洲另类欧美 | 伊人免费在线观看 | 国产精品久久久久久久久 | 色播久久| 精品一区二区三区免费视频 | 麻豆精品一区二区三区在线观看 | 亚洲精品一二区 | 午夜影院免费体验区 | 亚洲最大福利网 | 波多野结衣电影一区 | 国产精品成人在线观看 | 99在线免费观看 | 成人在线免费视频观看 | 国产电影一区二区在线观看 | 亚洲福利网| 激情婷婷 | 91社区视频| 亚洲综合天堂网 | 亚洲成人播放器 | 在线播放中文字幕 | 亚洲视频一区在线播放 | 成人小视频在线观看 | 国产探花在线精品一区二区 | 黄a网站| 欧美在线一区二区三区 | 成人一级片在线观看 | 成人国产一区二区三区精品麻豆 | 成人精品一区亚洲午夜久久久 | 久久91| 亚洲一区二区免费电影 | 国产在线观看一区二区 | 国产午夜精品一区二区 | 日韩欧美一区二区在线播放 | 99精品国自产在线观看 | 国产精品久久久久久久粉嫩 | 久久中文字幕电影 | 一区二区免费视频 |