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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

C51單片機利用ESP8266配置WIFI,發(fā)送溫度數(shù)據(jù)的源碼

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:317239 發(fā)表于 2018-4-26 18:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
使用DS18B20,ESP8266,實現(xiàn)WIFI傳輸溫度,底層部分代碼。其中WIFI是作為服務(wù)器,上位機作為客戶端。

單片機源程序如下:
  1. /***********************
  2. 程序名:wifi_3.c
  3. 功能:單片機與手機通信,實現(xiàn)溫度信息的傳輸
  4. 編程人: baxlumen
  5. ************************/
  6. #include "reg52.h"
  7. #include<intrins.h>
  8. #define uint unsigned int
  9. #define uchar unsigned char
  10. #define ulong  unsigned long
  11. typedef unsigned int u16;       
  12. typedef unsigned char u8;
  13. sbit DSPORT=P3^7;
  14. sbit moto=P1^1;


  15. sbit CLK  = P3^6;          //時鐘
  16. sbit DIN  = P3^4;          //輸入
  17. sbit CS   = P3^5;          //片選

  18. #define LCD1602_DATAPINS P0
  19. sbit LCD1602_E=P2^7;
  20. sbit LCD1602_RW=P2^5;
  21. sbit LCD1602_RS=P2^6;


  22. u16 sun;    //光照
  23. int temp;
  24. int sdata;           //溫度
  25. int xiaoshu1;
  26. int xiaoshu2;

  27. float tp;
  28. uchar DisplayData[]={0,0,0,0,0,0,0,0};

  29. /*****************
  30. 定義程序中所需要的延時
  31. ********************/
  32. void Delay1ms(uint y)   
  33. {
  34.         uint x;
  35.         for( ; y>0; y--)
  36.         {
  37.                 for(x=110; x>0; x--);
  38.         }
  39. }
  40. void delay(u16 i)
  41. {
  42.         while(i--);       
  43. }
  44. void delay1ms()
  45. {
  46. unsigned char i;
  47. for(i=124;i>0;i--);  //延時124*8+10=1002us
  48. }
  49. /*******************************************************************************
  50. * 函 數(shù) 名         : Lcd1602_Delay1ms
  51. * 函數(shù)功能                   : 延時函數(shù),延時1ms
  52. * 輸    入         : c
  53. * 輸    出         : 無
  54. * 說    名         : 該函數(shù)是在12MHZ晶振下,12分頻單片機的延時。
  55. *******************************************************************************/

  56. void Lcd1602_Delay1ms(uint c)   //誤差 0us
  57. {
  58.     uchar a,b;
  59.         for (; c>0; c--)
  60.         {
  61.                  for (b=199;b>0;b--)
  62.                  {
  63.                           for(a=1;a>0;a--);
  64.                  }      
  65.         }           
  66. }
  67. /****************
  68. 初始化DS18B20
  69. ****************/
  70. uchar Ds18b20Init()
  71. {
  72.         uchar i;
  73.         DSPORT = 0;                         //將總線拉低480us~960us
  74.         i = 70;       
  75.         while(i--);//延時642us
  76.         DSPORT = 1;                        //然后拉高總線,如果DS18B20做出反應(yīng)會將在15us~60us后總線拉低
  77.         i = 0;
  78.         while(DSPORT)        //等待DS18B20拉低總線
  79.         {
  80.                 Delay1ms(1);
  81.                 i++;
  82.                 if(i>5)//等待>5MS
  83.                 {
  84.                         return 0;//初始化失敗
  85.                 }
  86.        
  87.         }
  88.         return 1;//初始化成功
  89. }



  90. void Ds18b20WriteByte(uchar dat)//寫入數(shù)據(jù)
  91. {
  92.         uint i, j;

  93.         for(j=0; j<8; j++)
  94.         {
  95.                 DSPORT = 0;                       //每寫入一位數(shù)據(jù)之前先把總線拉低1us
  96.                 i++;
  97.                 DSPORT = dat & 0x01;  //然后寫入一個數(shù)據(jù),從最低位開始
  98.                 i=6;
  99.                 while(i--); //延時68us,持續(xù)時間最少60us
  100.                 DSPORT = 1;        //然后釋放總線,至少1us給總線恢復(fù)時間才能接著寫入第二個數(shù)值
  101.                 dat >>= 1;
  102.         }
  103. }

  104. uchar Ds18b20ReadByte()          //讀數(shù)據(jù)
  105. {
  106.         uchar byte, bi;
  107.         uint i, j;       
  108.         for(j=8; j>0; j--)
  109.         {
  110.                 DSPORT = 0;//先將總線拉低1us
  111.                 i++;
  112.                 DSPORT = 1;//然后釋放總線
  113.                 i++;
  114.                 i++;//延時6us等待數(shù)據(jù)穩(wěn)定
  115.                 bi = DSPORT;         //讀取數(shù)據(jù),從最低位開始讀取               
  116.                 byte = (byte >> 1) | (bi << 7);                                                  
  117.                 i = 4;                //讀取完之后等待48us再接著讀取下一個數(shù)
  118.                 while(i--);
  119.         }                               
  120.         return byte;
  121. }

  122. void  Ds18b20ChangTemp() //設(shè)置DS18B20
  123. {
  124.         Ds18b20Init();
  125.         Delay1ms(1);
  126.         Ds18b20WriteByte(0xcc);                //跳過ROM操作命令                 
  127.         Ds18b20WriteByte(0x44);            //溫度轉(zhuǎn)換命令
  128.         //Delay1ms(100);        //等待轉(zhuǎn)換成功,而如果你是一直刷著的話,就不用這個延時了
  129.    
  130. }

  131. void  Ds18b20ReadTempCom()        //讀取溫度數(shù)據(jù)
  132. {       

  133.         Ds18b20Init();
  134.         Delay1ms(1);
  135.         Ds18b20WriteByte(0xcc);         //跳過ROM操作命令
  136.         Ds18b20WriteByte(0xbe);         //發(fā)送讀取溫度命令
  137. }

  138. void Ds18b20ReadTemp()                //將溫度數(shù)據(jù)轉(zhuǎn)化為十進制
  139. {
  140.        
  141.         uchar tmh, tml,tem,tem2,tem3;
  142.         Ds18b20ChangTemp();                                 //先寫入轉(zhuǎn)換命令
  143.         Ds18b20ReadTempCom();                        //然后等待轉(zhuǎn)換完后發(fā)送讀取溫度命令
  144.         tml = Ds18b20ReadByte();                //讀取溫度值共16位,先讀低字節(jié)
  145.         tmh = Ds18b20ReadByte();                //再讀高字節(jié)
  146.         sdata = tml/16+tmh*16;
  147.         if(sdata>29)       
  148.            //直流電機,當(dāng)溫度數(shù)值超過30度時啟動
  149.                 {
  150.                   moto=1;
  151.                   Delay1ms(3000);
  152.                   moto=0;       
  153.                 }         
  154.         tem=tml/16+tmh*16;
  155.         xiaoshu1 = (tml&0x0f)*10/16; //小數(shù)第一位
  156.         xiaoshu2 = (tml&0x0f)*100/16%10;//小數(shù)第二位
  157.         tem2=(tml&0x0f)*10/16;
  158.     tem3=(tml&0x0f)*100/16%10;
  159.   
  160.     DisplayData[0] = sdata/10;
  161.         DisplayData[1] = sdata%10;
  162.         DisplayData[2] = '.';
  163.            DisplayData[3] =xiaoshu1;
  164.         DisplayData[4] =xiaoshu2;



  165.                
  166. }

  167. /********************
  168. 串口通信初始化
  169. *********************/
  170. void UsartInit()
  171. {
  172.         SCON=0X50;                        //設(shè)置為工作方式1
  173.         TMOD=0X20;                        //設(shè)置計數(shù)器工作方式2
  174.         PCON=0X80;                        //波特率加倍
  175.         TH1=0XF3;                                //計數(shù)器初始值設(shè)置,注意波特率是4800的
  176.         TL1=0XF3;
  177.         ES=1;                                                //打開接收中斷
  178.         EA=1;                                                //打開總中斷
  179.         TR1=1;                                                //打開計數(shù)器
  180. }
  181. void send(uchar *p)  //串口發(fā)送
  182. {       
  183.         while(*p != '\0')
  184.         {               
  185.                 SBUF = *p;
  186.                 while(!TI);
  187.                 TI = 0;                   //如果發(fā)送完畢,硬件會置位TI
  188.                 p++;                                                //TI清零
  189.         }                                                                         
  190. }
  191. void zhuanhuan(int i)
  192. {
  193. switch(i){         //溫度數(shù)據(jù)的十位
  194.            case 1:
  195.            send("1");
  196.            break;
  197.            case 2:
  198.           send("2");
  199.            break;
  200.            case 3:
  201.            send("3");
  202.            break;
  203.            case 4:
  204.            send("4");
  205.            break;
  206.            case 5:
  207.            send("3");
  208.            break;
  209.            case 6:
  210.            send("6");
  211.            break;
  212.            case 7:
  213.            send("7");
  214.            break;
  215.            case 8:
  216.            send("8");
  217.            break;
  218.            case 9:
  219.            send("9");
  220.            break;
  221.        case 0:
  222.            send("0");
  223.            break;
  224. }
  225. }
  226. void zhuan2(int i)
  227. {
  228. switch(i){         //溫度數(shù)據(jù)的十位
  229.            case 1:
  230.            send("1\r\n");
  231.            break;
  232.            case 2:
  233.           send("2\r\n");
  234.            break;
  235.            case 3:
  236.            send("3\r\n");
  237.            break;
  238.            case 4:
  239.            send("4\r\n");
  240.            break;
  241.            case 5:
  242.            send("5\r\n");
  243.            break;
  244.            case 6:
  245.            send("6\r\n");
  246.            break;
  247.            case 7:
  248.            send("7\r\n");
  249.            break;
  250.            case 8:
  251.            send("8\r\n");
  252.            break;
  253.            case 9:
  254.            send("9\r\n");
  255.            break;
  256.        case 0:
  257.            send("0\r\n");
  258.            break;
  259. }
  260. }
  261. /**********************
  262. *  函數(shù)功能:將溫度光照數(shù)據(jù)轉(zhuǎn)化為字符串類型,并發(fā)送出去
  263. *
  264. ***********************/
  265. void chuansong()
  266. {
  267.          zhuanhuan(sdata/10);
  268.          zhuanhuan(sdata%10);
  269.          send(".");
  270.          zhuanhuan(xiaoshu1);
  271.          zhuan2(xiaoshu2);
  272.          zhuanhuan(sun/1000);
  273.          zhuanhuan(sun%1000/100);
  274.          zhuanhuan(sun%1000%100/10);
  275.          zhuan2(sun%1000%100%10);


  276. }
  277. void SPI_Start(void)                //初始化數(shù)模SPI
  278. {
  279.         CLK = 0;
  280.         CS  = 1;
  281.         DIN = 1;
  282.         CLK = 1;
  283.         CS  = 0;               
  284. }
  285. void SPI_Write(uchar dat)        //使用SPI寫入數(shù)據(jù)
  286. {
  287.         uchar i;
  288.         CLK = 0;
  289.         for(i=0; i<8; i++)
  290.         {
  291.                 DIN = dat >> 7;          //放置最高位
  292.                 dat <<= 1;
  293.                 CLK = 0;                        //上升沿放置數(shù)據(jù)

  294.                 CLK = 1;

  295.         }
  296. }
  297. uint SPI_Read(void)                  //使用SPI讀取數(shù)據(jù)
  298. {
  299.         uint i, dat=0;
  300.         CLK = 0;
  301.         for(i=0; i<12; i++)                //接收12位數(shù)據(jù)
  302.         {
  303.                 dat <<= 1;

  304.                 CLK = 1;
  305.                 CLK = 0;

  306.                 dat |= DSPORT;

  307.         }
  308.         return dat;       
  309. }
  310. uint Read_AD_Data(uchar cmd)          //讀取數(shù)摸數(shù)據(jù)
  311. {
  312.         uchar i;
  313.         uint AD_Value;
  314.         CLK = 0;
  315.         CS  = 0;
  316.         SPI_Write(cmd);
  317.         for(i=6; i>0; i--);         //延時等待轉(zhuǎn)換結(jié)果
  318.         CLK = 1;          //發(fā)送一個時鐘周期,清除BUSY
  319.         _nop_();
  320.         _nop_();
  321.         CLK = 0;
  322.         _nop_();
  323.         _nop_();
  324.         AD_Value=SPI_Read();
  325.         CS = 1;
  326.         return AD_Value;       
  327. }
  328. void datapros()                //讀取光照值,設(shè)置讀取間隔
  329. {

  330.         static u8 i;

  331.         if(i==5)
  332.         {
  333.                 i=0;
  334.                 sun = Read_AD_Data(0xA4);                //   AIN2 光敏電阻
  335.         }
  336.         i++;
  337.                                     
  338. }
  339. /*************************
  340. * 函數(shù)功能:將光照值按位放于字符數(shù)組DisplayData中
  341. *
  342. **************************/
  343. void suntr()
  344. {
  345.     int sun1,sun2,sun3;
  346.         sun1=sun%1000/100;
  347.         sun2=sun%1000%100/10;
  348.         sun3=sun%1000%100%10;
  349.         DisplayData[5]=sun1;
  350.         DisplayData[6]=sun2;
  351.         DisplayData[7]=sun3;
  352.        
  353. }
  354. /*******************************************************************************
  355. * 函 數(shù) 名         : LcdWriteCom
  356. * 函數(shù)功能                   : 向LCD寫入一個字節(jié)的命令
  357. * 輸    入         : com
  358. * 輸    出         : 無
  359. *******************************************************************************/
  360. #ifndef         LCD1602_4PINS         //當(dāng)沒有定義這個LCD1602_4PINS時
  361. void LcdWriteCom(uchar com)          //寫入命令
  362. {
  363.         LCD1602_E = 0;     //使能
  364.         LCD1602_RS = 0;           //選擇發(fā)送命令
  365.         LCD1602_RW = 0;           //選擇寫入
  366.        
  367.         LCD1602_DATAPINS = com;     //放入命令
  368.         Lcd1602_Delay1ms(1);                //等待數(shù)據(jù)穩(wěn)定

  369.         LCD1602_E = 1;                  //寫入時序
  370.         Lcd1602_Delay1ms(5);          //保持時間
  371.         LCD1602_E = 0;
  372. }
  373. #else
  374. void LcdWriteCom(uchar com)          //寫入命令
  375. {
  376.         LCD1602_E = 0;         //使能清零
  377.         LCD1602_RS = 0;         //選擇寫入命令
  378.         LCD1602_RW = 0;         //選擇寫入

  379.         LCD1602_DATAPINS = com;        //由于4位的接線是接到P0口的高四位,所以傳送高四位不用改
  380.         Lcd1602_Delay1ms(1);

  381.         LCD1602_E = 1;         //寫入時序
  382.         Lcd1602_Delay1ms(5);
  383.         LCD1602_E = 0;

  384.         LCD1602_DATAPINS = com << 4; //發(fā)送低四位
  385.         Lcd1602_Delay1ms(1);

  386.         LCD1602_E = 1;         //寫入時序
  387.         Lcd1602_Delay1ms(5);
  388.         LCD1602_E = 0;
  389. }
  390. #endif
  391. /*******************************************************************************
  392. * 函 數(shù) 名         : LcdWriteData
  393. * 函數(shù)功能                   : 向LCD寫入一個字節(jié)的數(shù)據(jù)
  394. * 輸    入         : dat
  395. * 輸    出         : 無
  396. *******************************************************************************/                  
  397. #ifndef         LCD1602_4PINS                  
  398. void LcdWriteData(uchar dat)                        //寫入數(shù)據(jù)
  399. {
  400.         LCD1602_E = 0;        //使能清零
  401.         LCD1602_RS = 1;        //選擇輸入數(shù)據(jù)
  402.         LCD1602_RW = 0;        //選擇寫入

  403.         LCD1602_DATAPINS = dat; //寫入數(shù)據(jù)
  404.         Lcd1602_Delay1ms(1);

  405.         LCD1602_E = 1;   //寫入時序
  406.         Lcd1602_Delay1ms(5);   //保持時間
  407.         LCD1602_E = 0;
  408. }
  409. #else
  410. void LcdWriteData(uchar dat)                        //寫入數(shù)據(jù)
  411. {
  412.         LCD1602_E = 0;          //使能清零
  413.         LCD1602_RS = 1;          //選擇寫入數(shù)據(jù)
  414.         LCD1602_RW = 0;          //選擇寫入

  415.         LCD1602_DATAPINS = dat;        //由于4位的接線是接到P0口的高四位,所以傳送高四位不用改
  416.         Lcd1602_Delay1ms(1);

  417.         LCD1602_E = 1;          //寫入時序
  418.         Lcd1602_Delay1ms(5);
  419.         LCD1602_E = 0;

  420.         LCD1602_DATAPINS = dat << 4; //寫入低四位
  421.         Lcd1602_Delay1ms(1);

  422.         LCD1602_E = 1;          //寫入時序
  423.         Lcd1602_Delay1ms(5);
  424.         LCD1602_E = 0;
  425. }
  426. #endif
  427. /*******************************************************************************
  428. * 函 數(shù) 名       : LcdInit()
  429. * 函數(shù)功能                 : 初始化LCD屏
  430. * 輸    入       : 無
  431. * 輸    出       : 無
  432. *******************************************************************************/                  
  433. #ifndef                LCD1602_4PINS
  434. void LcdInit()                                                  //LCD初始化子程序
  435. {
  436.         LcdWriteCom(0x38);  //開顯示
  437.         LcdWriteCom(0x0c);  //開顯示不顯示光標
  438.         LcdWriteCom(0x06);  //寫一個指針加1
  439.         LcdWriteCom(0x01);  //清屏
  440.         LcdWriteCom(0x80);  //設(shè)置數(shù)據(jù)指針起點
  441. }
  442. #else
  443. void LcdInit()                                                  //LCD初始化子程序
  444. {
  445.         LcdWriteCom(0x32);         //將8位總線轉(zhuǎn)為4位總線
  446.         LcdWriteCom(0x28);         //在四位線下的初始化
  447.         LcdWriteCom(0x0c);  //開顯示不顯示光標
  448.         LcdWriteCom(0x06);  //寫一個指針加1
  449.         LcdWriteCom(0x01);  //清屏
  450.         LcdWriteCom(0x80);  //設(shè)置數(shù)據(jù)指針起點
  451. }
  452. #endif

  453.   void LEDshow()
  454.   {
  455.   suntr();
  456.        LcdInit();
  457.            LcdWriteCom(0x88);        //寫地址 80表示初始地址
  458.            LcdWriteData('C');
  459.            LcdWriteCom(0xc8);        //寫地址 80表示初始地址
  460.            LcdWriteData('L');
  461.                    LcdWriteCom(0x82);                  //寫地址 80表示初始地址
  462.             LcdWriteData('0'+DisplayData[0]); //百位
  463.                 LcdWriteCom(0x83);                 //寫地址 80表示初始地址
  464.         LcdWriteData('0'+DisplayData[1]);
  465.         LcdWriteCom(0x84);               
  466.         LcdWriteData('0'+DisplayData[2]);
  467.                 LcdWriteCom(0x85);               
  468.         LcdWriteData('0'+DisplayData[3]);
  469.                 LcdWriteCom(0x86);               
  470.         LcdWriteData('0'+DisplayData[4]);
  471.                 LcdWriteCom(0xc2);                  //0x40+0x80為第二行
  472.             LcdWriteData('0'+DisplayData[5]); //百位
  473.                 LcdWriteCom(0xc3);                  
  474.             LcdWriteData('0'+DisplayData[6]);
  475.                 LcdWriteCom(0xc4);                  
  476.             LcdWriteData('0'+DisplayData[7]);
  477.                      
  478.   }  
  479. void main()
  480. {       
  481.    
  482.         UsartInit();
  483.      LcdInit();
  484.        
  485.         while(1)
  486.         {               
  487.        Ds18b20ReadTemp();          
  488.            datapros();
  489.                   
  490.            LEDshow();
  491.            Delay1ms(100);          
  492.           send("AT+CIPMUX=1\r\n");          //設(shè)置為多路鏈接
  493.           Delay1ms(100);
  494.       send("AT+CIPSERVER=1,8080\r\n");        //配置為服務(wù)器,8080端口
  495.           Delay1ms(100);                                                 
  496.      send("AT+CIPSEND=0,11\r\n");          //發(fā)送數(shù)據(jù),并且數(shù)據(jù)長度為2個字節(jié)
  497.           Delay1ms(100);
  498.           chuansong();         //將溫度數(shù)據(jù)發(fā)送出去
  499.           
  500.         }               
  501. }
復(fù)制代碼

所有資料51hei提供下載:
WIFI.zip (3.76 KB, 下載次數(shù): 264)


評分

參與人數(shù) 3黑幣 +64 收起 理由
kljie1000 + 9
20180426 + 5 很給力!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:318944 發(fā)表于 2018-4-29 15:37 | 只看該作者
你好,學(xué)長,這個代碼很好,我想請教你一些東西,希望你能幫助我!
回復(fù)

使用道具 舉報

板凳
ID:439093 發(fā)表于 2018-12-4 12:13 | 只看該作者
有問題大家別套用
回復(fù)

使用道具 舉報

地板
ID:333124 發(fā)表于 2018-12-12 16:24 | 只看該作者
參考一下。感謝。
回復(fù)

使用道具 舉報

5#
ID:445069 發(fā)表于 2019-1-21 10:07 | 只看該作者
多謝分享,參考學(xué)習(xí)。
回復(fù)

使用道具 舉報

6#
ID:445069 發(fā)表于 2019-1-21 10:08 | 只看該作者
多謝分享,參考學(xué)習(xí)了。目前也正在學(xué)習(xí)ESP8266。
回復(fù)

使用道具 舉報

7#
ID:383374 發(fā)表于 2019-1-22 00:45 來自手機 | 只看該作者
局域網(wǎng)還遠程控制
回復(fù)

使用道具 舉報

8#
ID:493151 發(fā)表于 2019-4-11 11:16 | 只看該作者
chuangsong函數(shù)沒有啊
回復(fù)

使用道具 舉報

9#
ID:514974 發(fā)表于 2019-4-17 21:09 | 只看該作者
多謝分享,參考學(xué)習(xí)了!

回復(fù)

使用道具 舉報

10#
ID:627209 發(fā)表于 2019-10-21 18:56 | 只看該作者
贊,學(xué)習(xí)了
回復(fù)

使用道具 舉報

11#
ID:620291 發(fā)表于 2019-12-15 22:35 | 只看該作者

多謝分享,參考學(xué)習(xí)了!
回復(fù)

使用道具 舉報

12#
ID:666656 發(fā)表于 2019-12-17 20:18 | 只看該作者
厲害了,認真學(xué)習(xí)一下
回復(fù)

使用道具 舉報

13#
ID:666819 發(fā)表于 2019-12-17 23:15 | 只看該作者
你給的這個很好,我使用效果很幫。謝謝
回復(fù)

使用道具 舉報

14#
ID:702628 發(fā)表于 2020-3-9 18:41 | 只看該作者
謝謝好人一生平安
回復(fù)

使用道具 舉報

15#
ID:404726 發(fā)表于 2020-3-9 20:01 | 只看該作者
謝謝分享~~~~~~~~~~~~真實我需要的
回復(fù)

使用道具 舉報

16#
ID:8222 發(fā)表于 2020-3-25 23:40 | 只看該作者
謝謝分享,下載學(xué)習(xí)。
回復(fù)

使用道具 舉報

17#
ID:687694 發(fā)表于 2020-3-26 20:36 | 只看該作者
你這個zhuanhuan()有意思。。。其實數(shù)據(jù)+0x30即可。。
回復(fù)

使用道具 舉報

18#
ID:695451 發(fā)表于 2020-6-1 16:28 | 只看該作者
大家能使用嗎
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜男人免费视频 | a免费在线| 精品国产18久久久久久二百 | 国产99视频精品免费视频7 | 一区二区三区四区在线 | 国产高清一区二区三区 | 亚洲aⅴ| 国产99久久久国产精品 | 国精产品一品二品国精在线观看 | 国产精品一区二区久久 | 日韩三级电影在线看 | 欧美精选一区二区 | 五月天婷婷激情 | 中文字幕高清 | 亚洲欧美一区二区三区国产精品 | 在线视频一区二区三区 | 国产91久久久久久久免费 | 久久久久久黄 | 美女在线视频一区二区三区 | 亚洲一区日韩 | 亚洲成年在线 | 国产精品无码久久久久 | 精品国产乱码久久久久久88av | 欧美黄色一区 | 国产精品一区二区三区在线 | 午夜精品久久久久久久久久久久久 | 国产精品成人av | 亚洲毛片在线观看 | 欧美一级二级视频 | 7799精品视频天天看 | 黄色a视频 | 成人av一区二区三区 | 亚洲综合大片69999 | 亚洲福利视频一区二区 | 人人玩人人添人人澡欧美 | 久久久不卡网国产精品一区 | 亚洲欧美精品国产一级在线 | 久久成人久久 | 一区二区日本 | 成人在线一区二区三区 | 国产一区二区三区四区三区四 |