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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

ESP8266+STC89C52單片機通訊 并向串口發送數據

[復制鏈接]
跳轉到指定樓層
樓主
ID:137121 發表于 2019-2-17 20:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
想實現 用手機連接WIFI模塊來控制紅外模塊(向串口發送數據就可以),通過捕捉WiFi收到的數據,來調用寫好的16進制數組?上旅娴某绦,只要上電就不斷運行DYMS();還會影響向ESP8266發送初始化的命令。不知道問題出在哪了,代碼都是我東拼西湊來的,希望大神給指正

單片機源碼:
  1. #include <reg52.h>              
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit been=P2^5; // 蜂鳴器
  5. uchar code diannaoKG[] = {0x86,0x00,0x00,0x00,0x86};
  6. void delay(int i)           //延時函數
  7. {
  8.         int j,k;
  9.         for(j=0;j<i;j++)
  10.         for(k=0;k<j;k++);
  11. }
  12. void Delay10ms(uint c)
  13. {
  14.     unsigned char a, b;
  15.     for (;c>0;c--)
  16.         {
  17.                 for (b=38;b>0;b--)
  18.                 {
  19.                    for (a=130;a>0;a--);
  20.                 }         
  21.         }      
  22. }
  23. // 蜂鳴器發聲函數
  24. void di()
  25. {
  26.      been=0;
  27.      Delay10ms(40);
  28.      been=1;
  29. }
  30. void Out_Data (uchar Data[])        
  31. {
  32.         uchar i,j;
  33.         for (i=0;i<j;i++)
  34.         {
  35.                 SBUF = Data[i];
  36.                while (!TI);
  37.                 TI = 0;
  38.         }
  39. }

  40. void DYMS()
  41. {                    
  42.                 uchar j;
  43.                 j=sizeof(diannaoKG);
  44.                 Out_Data(diannaoKG);
  45.                                 di();
  46. }
  47. void init_serial()                  //串口初始化,設置波特率115200
  48. {
  49.         TMOD=0x20;  
  50.     TH1=0xFF;           
  51.     TL1=0xFD;
  52.         SCON=0x50;   
  53.     RCAP2H=0xFF;   
  54.     RCAP2L=0xFD;
  55.         TCLK=1;   
  56.         RCLK=1;   
  57.     C_T2=0;   
  58.     EXEN2=0;         
  59.     TR2=1 ;
  60.         TI=0;        
  61. }
  62. void Send_Uart(uchar value)         //單片機數據發送
  63. {
  64.         ES=0;                            //串口中斷關閉
  65.         TI=0;                           
  66.         SBUF=value;                   //將數據放入串口寄存器中
  67.         while(TI==0);   
  68.         TI=0;  
  69.         ES=1;   
  70. }        
  71. void ESP8266_Set(uchar *puf)     // WIFI模塊接收到單片機的AT指令         
  72. {   
  73.         while(*puf!='\0')   
  74.         {   
  75.                 Send_Uart(*puf);     
  76.                 Delay10ms(50);  
  77.                 puf++;
  78.                 delay(50);   
  79.         }   
  80.         delay(500);  
  81. }
  82. void ControlCar(unsigned char ConType)    //選擇小車運行的模式
  83. {

  84.         switch(ConType)                       
  85.         {
  86.                 case 1:                          
  87.                 {         
  88.                     DYMS();
  89.                         break;
  90.                 }
  91.                 case 2:                              
  92.                 {                 

  93.                         break;
  94.                 }

  95.         }
  96. }

  97. void main()                       
  98. {
  99.         init_serial();            //串口初始化           
  100.         ES=1;                     //串口中斷打開      
  101.         REN=1;                    //單片機接收允許位        
  102.         EA=1;                                     //總中斷打開
  103.         delay(1000);
  104.         ESP8266_Set("AT+CWMODE=1\r\n");//SAT模式 就是路由器模式
  105.         ESP8266_Set("AT+CWJAP=\"banana\",\"123456789\"\r\n");//連接路由器
  106.         delay(1000);
  107.         ESP8266_Set("AT+CIPMUX=1\r\n");//開啟多連接
  108.         ESP8266_Set("AT+CIPSERVER=1,5000\r\n"); //連接端口號5000
  109.     delay(1000);   
  110.         P1=0xfe;                       
  111.         while(1)                          
  112.         {                 
  113.         }
  114. }
  115. void ComBreak() interrupt 4     //中斷函數,單片機判斷串口接收到的數據   
  116. {
  117.         unsigned char RecvData;         
  118.         if(RI==1)                        
  119.         {
  120.                 RecvData=SBUF;          //從串口寄存器中讀取數據        

  121.                 if(RecvData=='S')              
  122.                 {
  123.                         ControlCar(1);
  124.                         
  125.                 }
  126.                 if(RecvData=='X')              
  127.                 {
  128.                         ControlCar(2);
  129.                 }
  130.                 //SBUF=RecvData;                 
  131.                 RI=0;        //把RI至0                    
  132.         }
  133.         if(TI==1)        //把TI至0              
  134.         {
  135.                 TI=0;                           
  136.         }
  137. }
復制代碼


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

使用道具 舉報

沙發
ID:303383 發表于 2019-2-18 08:55 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

板凳
ID:137121 發表于 2019-2-18 17:35 | 只看該作者
小貓貓愛吃魚 發表于 2019-2-18 08:55
你好!
1、你的代碼拼湊的有點亂
2、是要控制一個成品的紅外模塊嗎?

我是用手機 給ESP8266發送數據,ESP8266連接在STC89C52上。只要能達到接受數據后 能調用相應的數組到串口就可以了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 懂色av蜜桃av| 久久一热 | 久久国产精品久久久久久 | 一区精品视频 | 91高清视频在线观看 | 欧美一级特黄aaa大片在线观看 | 国产亚洲一区二区在线观看 | h视频在线观看免费 | 久久国产精品免费一区二区三区 | 久久免费精品视频 | 久久久久电影 | 人人爽人人爽人人片av | 国产伦精品一区二区三毛 | 精品一区二区久久久久久久网精 | 一区二区三区亚洲精品国 | 久热国产精品视频 | 黄色av网站在线观看 | 91精品国产91久久久久游泳池 | 中文字幕免费 | 欧美激情综合网 | 国产成人精品一区二区 | av网站免费观看 | 99热精品在线 | 精品欧美一区二区在线观看视频 | 二区视频| 久久爱黑人激情av摘花 | 特黄特色大片免费视频观看 | 婷婷激情综合 | 欧美日韩亚洲国产 | 日韩午夜影院 | 欧美激情99 | 激情综合五月 | 久久中文视频 | 91精品国产综合久久婷婷香蕉 | 日韩中文字幕2019 | 免费簧片视频 | 亚洲成人网在线播放 | 最新日韩av | 怡红院免费的全部视频 | 欧美在线不卡 | 在线欧美一区二区 |