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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)WiFi遙控小車程序與APP

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:378979 發(fā)表于 2018-7-25 15:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
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ù),為數(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()                                //使用定時器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;                                        //啟動定時器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ā)送完畢中斷請求標(biāo)志位   
  40.         SBUF=value;                                 //發(fā)送  
  41.         while(TI==0);                                 //等待發(fā)送完畢   
  42.         TI=0;                                           //清發(fā)送完畢中斷請求標(biāo)志位   
  43.         ES=1;                                                  //允許串口中斷  
  44. }  

  45. /********************************************************************
  46. 名稱:WIFI模塊設(shè)置函數(shù)  作用: 啟動模塊,以便可以實(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");                                                                         //重新啟動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");                                                                //開啟多連接模式,允許多個各客戶端接入
  75.         ms_delay(2000);
  76.         ESP8266_Set("AT+CIPSERVER=1,5000");                                          //啟動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)不超時
  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時進(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ù),對相應(yīng)的標(biāo)志位軟件清0,實(shí)現(xiàn)模塊對數(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)


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:243748 發(fā)表于 2018-7-25 23:12 來自觸屏版 | 只看該作者
這個遙控距離多遠(yuǎn)?
回復(fù)

使用道具 舉報

板凳
ID:303383 發(fā)表于 2018-7-26 07:45 | 只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
回復(fù)

使用道具 舉報

地板
ID:379565 發(fā)表于 2018-7-26 19:29 | 只看該作者
用那款芯片做的
回復(fù)

使用道具 舉報

5#
ID:438107 發(fā)表于 2018-12-3 10:03 來自觸屏版 | 只看該作者
wifi模塊用esp8266可以嗎
回復(fù)

使用道具 舉報

6#
ID:444643 發(fā)表于 2018-12-13 21:22 | 只看該作者
為什么我把所有的東西都弄好后 燒入程序小車不動了。。。
回復(fù)

使用道具 舉報

7#
ID:81138 發(fā)表于 2018-12-13 22:23 | 只看該作者
貼出來的代碼全嗎
回復(fù)

使用道具 舉報

8#
ID:65956 發(fā)表于 2019-1-25 17:09 | 只看該作者
下載看看有沒有幫助
回復(fù)

使用道具 舉報

9#
ID:378645 發(fā)表于 2019-4-3 22:53 | 只看該作者
Vulcan_X 發(fā)表于 2018-12-3 10:03
wifi模塊用esp8266可以嗎

esp8266模塊作為WIFI模塊是可以的
回復(fù)

使用道具 舉報

10#
ID:585455 發(fā)表于 2019-7-23 16:33 | 只看該作者
感謝分享好文
回復(fù)

使用道具 舉報

11#
ID:34643 發(fā)表于 2020-3-27 07:42 | 只看該作者
這個遙控車的APP源碼應(yīng)該是出自“電子樂屋”。感覺還是比適用。
回復(fù)

使用道具 舉報

12#
ID:723850 發(fā)表于 2020-4-7 10:23 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報

13#
ID:724172 發(fā)表于 2020-4-7 16:41 | 只看該作者
下載落來試下,初學(xué)者:什么都應(yīng)該去試試
回復(fù)

使用道具 舉報

14#
ID:65956 發(fā)表于 2020-4-8 11:28 | 只看該作者
要是加個原理圖先給看看就更好了
回復(fù)

使用道具 舉報

15#
ID:338224 發(fā)表于 2020-4-8 12:28 | 只看該作者
app自己做的嗎?厲害!佩服!
回復(fù)

使用道具 舉報

16#
無效樓層,該帖已經(jīng)被刪除
17#
無效樓層,該帖已經(jīng)被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表