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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 14942|回復: 24
打印 上一主題 下一主題
收起左側(cè)

ESP8266安卓客戶端.apk下載及51單片機測試程序

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:192003 發(fā)表于 2017-5-15 17:21 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
esp8266測試程序和ESP8266安卓客戶端.apk提供下載


單片機源程序如下:
  1. /*************        本地常量聲明        **************/
  2. #define MAIN_Fosc                22118400L        //定義主時鐘
  3. #define        RX1_Lenth                32                        //串口接收緩沖長度
  4. //#define        BaudRate1                9600UL        //選擇波特率
  5. //#define        Timer1_Reload        (65536UL -(MAIN_Fosc / 4 / BaudRate1))                //Timer 1 重裝值, 對應300KHZ
  6. //#define        Timer2_Reload        (65536UL -(MAIN_Fosc / 4 / BaudRate1))                //Timer 2 重裝值, 對應300KHZ
  7. #include"STC15Fxxxx.H"
  8. #include<intrins.h>
  9. #define uchar unsigned char
  10. #define uint unsigned int
  11. /*************        本地變量聲明        **************/
  12. u8        idata RX1_Buffer[RX1_Lenth];        //接收緩沖
  13. u8        TX1_Cnt;        //發(fā)送計數(shù)
  14. u8        RX1_Cnt;        //接收計數(shù)
  15. bit        B_TX1_Busy;        //發(fā)送忙標志
  16. /*************        端口引腳定義        **************/
  17. sbit LED1=P1^0;//LED1
  18. sbit LED2=P1^1;//LED2
  19. sbit LED3=P3^7;//LED3
  20. sbit DK1=P3^3;//繼電器
  21. sbit BEEP=P3^4;//蜂鳴器
  22. sbit K1=P1^3;//按鍵1
  23. sbit K2=P1^2;//按鍵2
  24. sbit K3=P1^4;//按鍵3
  25. sbit DQ=P1^6;//18B20溫度傳感器
  26. char led1bl,led2bl,led3bl;
  27. #define jump_ROM 0xCC                   //跳過ROM命令
  28. #define start    0x44               //啟動轉(zhuǎn)換命令
  29. #define read_EEROM 0xBE                 //讀存儲器命令
  30. uchar TMPH,TMPL;                //溫度值
  31. uchar HL;                      //當前溫度
  32. unsigned char LYMS[13]="AT+CWMODE=2\r\n";
  33. unsigned char SZLY[38]="AT+CWSAP='ESP8266','0123456789',11,0\r\n";
  34. unsigned char RST[8]="AT+RST\r\n";
  35. unsigned char SZDLJ[13]="AT+CIPMUX=1\r\n";
  36. unsigned char KQFU[21]="AT+CIPSERVER=1,5000\r\n";
  37. unsigned char FSSJ[13]="AT+CIPSEND=\r\n";//AT+CIPSEND= 發(fā)送數(shù)據(jù)
  38. unsigned char WDSJ[4]={0x00,0x00,0x00,0x00};
  39. void Delay1(unsigned long ms)
  40. {
  41.         unsigned char i, j,k;
  42.         for(k=0;k<ms;k++)
  43.         {
  44.                 _nop_();
  45.                 _nop_();
  46.                 i = 22;
  47.                 j = 128;
  48.                 do
  49.                 {
  50.                         while (--j);
  51.                 } while (--i);
  52.         }
  53. }
  54. void Delay2(unsigned long cnt)
  55. {
  56.         long i;
  57.         for(i=0;i<cnt*100;i++);
  58. }
  59. void Delay3(unsigned int N)
  60. {
  61.         int i;
  62.         for(i=0;i<N*10;i++);
  63. }
  64. //--------------------
  65. // 函數(shù)名稱: Reset
  66. // 入口參數(shù): 無
  67. // 返回deceive_ready
  68. // 函數(shù)功能:復位
  69. //--------------------
  70. unsigned char Reset(void)
  71. {
  72.         unsigned char deceive_ready;
  73.         Delay3(10);
  74.         DQ=0;                               //拉低DQ線
  75.         Delay3(29);                          //延時至少480us~960us
  76.         DQ=1;                               //將DQ線設置位邏輯高   
  77.         Delay3(3);                           //延時等待deceive_ready響應
  78.         deceive_ready=DQ;                   //采樣deceive_ready信號
  79.         Delay3(25);                          //等待時序結(jié)束
  80.         return(deceive_ready);              //有deceive_ready信號時返回0,否則返回1
  81. }


  82. //---------------------------
  83. // 函數(shù)名稱:read_bit
  84. // 入口參數(shù): 無
  85. // 返回接收的數(shù)據(jù)
  86. // 函數(shù)功能:讀一個bit子程序
  87. //---------------------------
  88. unsigned char read_bit(void)
  89. {
  90.         unsigned char i;
  91.         DQ=0;                                 //拉低DQ線開始時序
  92.         DQ=1;                                 //升高DQ線                        
  93.         for(i=0;i<3;i++);         //延時至時序開始15us
  94.         return(DQ);                           //返回DQ值
  95. }


  96. //---------------------------
  97. // 函數(shù)名稱: write_bit
  98. // 入口參數(shù): bitval
  99. // 函數(shù)功能:寫一個bit子程序
  100. //---------------------------
  101. void write_bit(unsigned char bitval)
  102. {
  103.         DQ=0;                             //拉低DQ線開始時序
  104.         if(bitval==1)
  105.                 DQ=1;                             //如果寫邏輯為高
  106.         Delay3(5);                         //延時
  107.         DQ=1;                             //升高DQ線
  108. }


  109. //----------------------------
  110. // 函數(shù)名稱: write_byte
  111. // 入口參數(shù): val
  112. // 函數(shù)功能:寫一個byte子程序
  113. //----------------------------
  114. void write_byte(unsigned char val)
  115. {
  116.         unsigned char i,temp;
  117.         for(i=0;i<8;i++)
  118.         {
  119.                 temp=val>>i;                        //將val位右移i位賦值給比temp
  120.                 temp=temp&0x01;                     //取temp最低位
  121.                 write_bit(temp);
  122.                 Delay3(5);                           //延時至時序結(jié)束
  123.         }
  124. }


  125. //----------------------------
  126. // 函數(shù)名稱: read_byte
  127. // 返回接收的數(shù)據(jù) value
  128. // 函數(shù)功能:讀一個byte子程序
  129. //----------------------------
  130. unsigned char read_byte(void)
  131. {
  132.         unsigned char i,m,receive_data;
  133.         m=1;receive_data=0;                          //初始化
  134.         for(i=0;i<8;i++)
  135.         {
  136.                 if(read_bit())
  137.                 {
  138.                         receive_data=receive_data+(m<<i);
  139.                 }                                          //每讀一位數(shù)據(jù)據(jù),左移一位
  140.                 Delay3(6);                                  //延時至時序結(jié)束
  141.         }
  142.         return(receive_data);                        //返回value
  143. }


  144. //---------------------------
  145. // 函數(shù)名稱: Get_temp
  146. // 返回接收的數(shù)據(jù) TMPL, TMPH
  147. // 函數(shù)功能:取出溫度值
  148. //---------------------------
  149. uint Get_temp(void)
  150. {
  151.         unsigned int T;
  152.         //EA = 0;
  153.         Reset();
  154.         write_byte(jump_ROM);       //發(fā)跳過ROM命令
  155.         write_byte(start);          //發(fā)啟動轉(zhuǎn)換命令
  156.         Reset();
  157.         write_byte(jump_ROM);       //發(fā)跳過ROM命令
  158.         write_byte(read_EEROM);     //發(fā)跳過ROM命令
  159.         TMPL=read_byte();           //讀低8位溫度值
  160.         TMPH=read_byte();           //讀高8位溫度值
  161.        
  162.         //EA = 0;
  163.         T=TMPL+TMPH*256;     
  164.         if(T==0xFFFF) return 0xFFFF;
  165.         if(T>0x8000)   //溫度為負
  166.         {
  167.                 T=~T+1;
  168.                 return(0x8000+T*5/8);
  169.         }
  170.         else     //溫度位正
  171.         {
  172.                 return(T*5/8);
  173.         }
  174. }
  175. void UARTSendByte(unsigned char byte)//?????????
  176. {
  177.         SBUF=byte;              //???????????
  178.         while(TI==0);          //??????,TI?????1
  179.         TI=0;                    //?????????
  180. }
  181. void DisplayTemp(unsigned int temp)
  182. {
  183.         uchar i=0;
  184.         uchar TmpTable[3] = {0};
  185.         TmpTable[ 0 ] = (temp%1000)/100;
  186.         TmpTable[ 1 ] = (temp%100)/10;
  187.         TmpTable[ 2 ] = (temp%10);

  188. //        UARTSendByte(TmpTable[0] + 0x30);Delay3(9);
  189. //        UARTSendByte(TmpTable[1] + 0x30);Delay3(9);
  190. //        UARTSendByte('.');Delay3(9);
  191. //        UARTSendByte(TmpTable[2] + 0x30);Delay3(9);       
  192. //        UARTSendByte(0x0d);Delay3(9);       
  193. //        UARTSendByte(0x0a);Delay3(9);
  194.         WDSJ[0]=(TmpTable[0] + 0x30);
  195.         WDSJ[1]=(TmpTable[1] + 0x30);
  196.         WDSJ[2]=('.');
  197.         WDSJ[3]=(TmpTable[2] + 0x30);       
  198. }
  199. void main(void)
  200. {
  201.         char i=0;
  202.         B_TX1_Busy = 0;
  203.         RX1_Cnt = 0;
  204.         TX1_Cnt = 0;
  205.         S1_8bit();                                //8位數(shù)據(jù)
  206.         S1_USE_P30P31();                //UART1 使用P30 P31口        默認
  207.         /*AUXR &= ~(1<<4);        //Timer stop                波特率使用Timer2產(chǎn)生
  208.         AUXR |= 0x01;                //S1 BRT Use Timer2;
  209.         AUXR |=  (1<<2);        //Timer2 set as 1T mode
  210.         TH2 = (u8)(Timer2_Reload >> 8);
  211.         TL2 = (u8)Timer2_Reload;
  212.         AUXR |=  (1<<4);        //Timer run enable
  213.         REN = 1;        //允許接收
  214.         ES  = 1;        //允許中斷
  215.         EA = 1;                //允許全局中斷*/
  216.         S2CON = 0x50;                //8位數(shù)據(jù),可變波特率
  217.         AUXR |= 0x04;                //定時器2時鐘為Fosc,即1T
  218.         T2L = 0xD0;                //設定定時初值
  219.         T2H = 0xFF;                //設定定時初值
  220.         AUXR |= 0x10;                //啟動定時器2
  221.         REN = 1;        //允許接收
  222.         ES  = 1;        //允許中斷
  223.         EA = 1;                //允許全局中斷*/
  224.         P3M1 = 0x00;
  225.     P3M0 = 0xFF;
  226.         RX1_Cnt=0;
  227.         DK1=0;
  228.         BEEP=0;
  229.         Delay2(2000);
  230.         for(i=0;i<13;i++)//AT+CWMODE=2 設置成路由模式
  231.         {
  232.                 SBUF=LYMS[i];Delay1(5);
  233.         }
  234.         Delay2(1000);
  235.         for(i=0;i<38;i++)//AT+CWSAP="ESP8266","0123456789",11,0 設置路由
  236.         {
  237.                 SBUF=SZLY[i];Delay1(5);
  238.         }
  239.         Delay2(3000);
  240.         for(i=0;i<8;i++)//AT+RST 重啟
  241.         {
  242.                 SBUF=RST[i];Delay1(5);
  243.         }
  244.         Delay2(5000);
  245.         for(i=0;i<13;i++)//AT+CIPMUX=1 設置成多連接
  246.         {
  247.                 SBUF=SZDLJ[i];Delay1(5);
  248.         }
  249.         Delay2(2000);
  250.         for(i=0;i<21;i++)//AT+CIPSERVER=1,5000 開啟TCP服務端口
  251.         {
  252.                 SBUF=KQFU[i];Delay1(5);
  253.         }
  254.         Delay2(2000);
  255.         Get_temp();
  256.         Delay3(50000);
  257.         Get_temp();
  258.         Delay3(50000);
  259.         while (1)
  260.         {
  261.                 DisplayTemp(Get_temp());//刷新18B20
  262.                 if(K1==0)
  263.                 {
  264.                         Delay1(5);
  265.                         if(K1==0)
  266.                         {
  267.                                 LED1=!LED1;
  268.                         }
  269.                         while(K1==0);
  270.                 }
  271.                 if(K2==0)
  272.                 {
  273.                         Delay1(5);
  274.                         if(K2==0)
  275.                         {
  276.                                 LED2=!LED2;
  277.                         }
  278.                         while(K2==0);
  279.                 }
  280.                 if(K3==0)
  281.                 {
  282.                         Delay1(5);
  283.                         if(K3==0)
  284.                         {
  285.                                 LED3=!LED3;
  286.                         }
  287.                         while(K3==0);
  288.                 }
  289.         }
  290. }

  291. /********************* UART1中斷函數(shù)************************/
  292. void UART1_int (void) interrupt UART1_VECTOR
  293. {
  294.         char i,a,b,c;
  295.         if(RI)
  296.         {
  297.                 RI = 0;
  298.                 RX1_Buffer[RX1_Cnt] = SBUF;                //保存一個字節(jié)
  299.                 if(RX1_Buffer[0]==0x45)
  300.                 {
  301.                         RX1_Cnt++;
  302.                 }
  303.                 else
  304.                 {
  305.                         RX1_Cnt=0;
  306.                 }
  307.                 if(RX1_Cnt>=10)
  308.                 {
  309.                         if(RX1_Buffer[0]==0x45&&RX1_Buffer[1]==0x53&&RX1_Buffer[2]==0x50)
  310.                         {
  311.                                 if(RX1_Buffer[4]==0x4C&&RX1_Buffer[5]==0x45&&RX1_Buffer[6]==0x44)//判斷LED
  312.                                 {
  313.                                         if(RX1_Buffer[7]==0x31)//判斷LED1
  314.                                         {
  315.                                                 if(RX1_Buffer[3]==0x4B)//判斷開
  316.                                                 {
  317.                                                         LED1=0;
  318.                                                 }
  319.                                                 if(RX1_Buffer[3]==0x47)//判斷關(guān)
  320.                                                 {
  321.                                                         LED1=1;
  322.                                                 }
  323.                                         }
  324.                                         if(RX1_Buffer[7]==0x32)//判斷LED2
  325.                                         {
  326.                                                 if(RX1_Buffer[3]==0x4B)//判斷開
  327.                                                 {
  328.                                                         LED2=0;
  329.                                                 }
  330.                                                 if(RX1_Buffer[3]==0x47)//判斷關(guān)
  331.                                                 {
  332.                                                         LED2=1;
  333.                                                 }
  334.                                         }
  335.                                         if(RX1_Buffer[7]==0x33)//判斷LED3
  336.                                         {
  337.                                                 if(RX1_Buffer[3]==0x4B)//判斷開
  338.                                                 {
  339.                                                         LED3=0;
  340.                                                 }
  341.                                                 if(RX1_Buffer[3]==0x47)//判斷關(guān)
  342.                                                 {
  343.                                                         LED3=1;
  344.                                                 }
  345.                                         }
  346.                                 }
  347.                                 if(RX1_Buffer[4]==0x4A&&RX1_Buffer[5]==0x44&&RX1_Buffer[6]==0x51)//判斷繼電器
  348.                                 {
  349.                                         if(RX1_Buffer[7]==0x31)//判斷LED1
  350.                                         {
  351.                                                 if(RX1_Buffer[3]==0x4B)//判斷開
  352.                                                 {
  353.                                                         DK1=1;
  354.                                                 }
  355.                                                 if(RX1_Buffer[3]==0x47)//判斷關(guān)
  356.                                                 {
  357.                                                         DK1=0;
  358.                                                 }
  359.                                         }
  360.                                 }
  361.                                 if(RX1_Buffer[3]==0x46&&RX1_Buffer[4]==0x4D&&RX1_Buffer[5]==0x51&&RX1_Buffer[6]==0x43&&RX1_Buffer[7]==0x53)//判斷蜂鳴器
  362.                                 {
  363.                                         BEEP=1;Delay2(100);BEEP=0;Delay2(100);BEEP=1;Delay2(100);BEEP=0;Delay2(100);
  364.                                 }
  365.                                 if(RX1_Buffer[3]==0x43&&RX1_Buffer[4]==0x58&&RX1_Buffer[5]==0x53&&RX1_Buffer[6]==0x4A)//查詢數(shù)據(jù)
  366.                                 {
  367.                                         if(LED1==0){a=0x4B;}else{a=0x47;}
  368.                                         if(LED2==0){b=0x4B;}else{b=0x47;}
  369.                                         if(LED3==0){c=0x4B;}else{c=0x47;}
  370.                                         for(i=0;i<11;i++)//AT+CIPSEND= 發(fā)送數(shù)據(jù)
  371.                                         {
  372.                                                 SBUF=FSSJ[i];Delay1(5);
  373.                                         }
  374.                                         SBUF=0x30;Delay1(5);
  375.                                         SBUF=0x2C;Delay1(5);
  376.                                         SBUF=0x32;Delay1(5);
  377.                                         SBUF=0x36;Delay1(5);
  378.                                         SBUF=0x0D;Delay1(5);
  379. ……………………

  380. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
安信可測試版使用說明.rar (1.04 MB, 下載次數(shù): 286)


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

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2017-5-15 18:54 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:173860 發(fā)表于 2017-5-15 20:36 來自觸屏版 | 只看該作者
太好了下來測試,論壇有你更精彩。
回復

使用道具 舉報

地板
ID:139785 發(fā)表于 2017-5-16 15:19 來自觸屏版 | 只看該作者
真有你的 不過還是不錯
回復

使用道具 舉報

5#
ID:46999 發(fā)表于 2017-5-18 14:19 | 只看該作者
通過串口發(fā)送AT命令來實現(xiàn)無線傳輸?shù)?/td>
回復

使用道具 舉報

6#
ID:241215 發(fā)表于 2017-10-23 18:55 | 只看該作者
你好 源碼編譯是提示目標未創(chuàng)建    不知道該怎么解決


* RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 12D5H BYTE (235%) *
******************************************************************************
Program Size: data=204.1 xdata=225 code=5197
LINK/LOCATE RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)
*** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
    MODULE:  C:\KEIL\C51\LIB\C51C.LIB (-----)
    LIMIT:   0800H BYTES
目標未創(chuàng)建

         
       
回復

使用道具 舉報

7#
ID:243748 發(fā)表于 2017-12-10 13:16 來自觸屏版 | 只看該作者
安裝了,運行不了怎么解決?
回復

使用道具 舉報

8#
ID:260617 發(fā)表于 2017-12-12 13:41 | 只看該作者
學習一下!!!!!!!!!!!!!!!!
回復

使用道具 舉報

9#
ID:260617 發(fā)表于 2017-12-12 13:41 | 只看該作者
學習一下!!!!!!!!!!!!!!!!
回復

使用道具 舉報

10#
ID:255871 發(fā)表于 2017-12-13 20:10 來自觸屏版 | 只看該作者
apk不能用,,
回復

使用道具 舉報

11#
ID:261480 發(fā)表于 2017-12-14 12:50 | 只看該作者
謝謝你,很有用
回復

使用道具 舉報

12#
ID:65956 發(fā)表于 2017-12-16 16:18 | 只看該作者
值得學習,可惜黑幣不夠了
回復

使用道具 舉報

13#
ID:217448 發(fā)表于 2018-2-11 17:06 | 只看該作者
好好東西啊,能免費下么?
回復

使用道具 舉報

14#
ID:6428 發(fā)表于 2018-4-10 20:36 來自觸屏版 | 只看該作者
ntlclxyc 發(fā)表于 2018-2-11 17:06
好好東西啊,能免費下么?

還不錯,只需要謝謝
回復

使用道具 舉報

15#
ID:308141 發(fā)表于 2018-4-14 19:12 | 只看該作者
希望有用
回復

使用道具 舉報

16#
ID:302373 發(fā)表于 2018-4-16 20:46 | 只看該作者
好想試試
回復

使用道具 舉報

17#
ID:378525 發(fā)表于 2018-7-24 15:34 | 只看該作者
好好東西啊,能免費下么?
回復

使用道具 舉報

18#
ID:371680 發(fā)表于 2018-9-23 16:24 | 只看該作者
終于找到了,正發(fā)愁手機客戶端不知怎么編寫呢,可以用以下下
回復

使用道具 舉報

19#
ID:262559 發(fā)表于 2018-9-24 14:44 來自觸屏版 | 只看該作者
安裝了可惜打不開APP
回復

使用道具 舉報

20#
ID:63317 發(fā)表于 2018-10-26 10:52 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

21#
ID:415902 發(fā)表于 2018-10-26 17:10 來自觸屏版 | 只看該作者
感覺有點難,慢慢寫
回復

使用道具 舉報

22#
ID:59003 發(fā)表于 2018-11-19 13:16 | 只看該作者
學習學習
回復

使用道具 舉報

23#
ID:448083 發(fā)表于 2018-12-17 16:00 | 只看該作者
贊。好東西
回復

使用道具 舉報

24#
ID:95072 發(fā)表于 2019-5-11 22:54 | 只看該作者
學習一下
回復

使用道具 舉報

25#
ID:585455 發(fā)表于 2019-7-22 16:53 | 只看該作者
這很棒,感謝分享。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表