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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6811|回復: 5
收起左側

單片機新人想請教一下為什么讀取不出DHT11的數據 很急呀

[復制鏈接]
ID:512941 發表于 2019-4-23 10:04 | 顯示全部樓層 |閱讀模式
300黑幣
程序是網上看的 LCD1602顯示那里是自己做了點變動 串口發送數據也沒有

#include  <reg51.h>
#include <intrins.h>
#define LCD1602_DB P0 //LCD1602數據總線
sbit LCD1602_RS = P3^5; //RS端
sbit LCD1602_RW = P3^6; //RW端
sbit LCD1602_EN = P3^4; //EN端
sbit DU = P2^6;//
sbit WE = P2^7;//數碼管位選段選用于關閉數碼管顯示

typedef unsigned char  U8;      
typedef signed   char  S8;      
typedef unsigned int   U16;      
typedef signed   int   S16;      
typedef unsigned long  U32;      
typedef signed   long  S32;      
typedef float          F32;      
typedef double         F64;      
//
#define uchar unsigned char
#define uint unsigned int
#define   Data_0_time    4
//----------------------------------------------//
//----------------IO口定義區--------------------//
//----------------------------------------------//
sbit  P2_0  = P2^0 ;
//----------------------------------------------//
//----------------定義區--------------------//
//----------------------------------------------//
U8  U8FLAG,k;
U8  U8count,U8temp;
U8  U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
U8  U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
U8  U8comdata;
U8  outdata[5];  //定義發送的字節數   
U8  indata[5];
U8  a1[5];
//U8  b[10];
U8  count, count_r=0;
U8  str[5];
U16 U16temp1,U16temp2;
void SendData(U8 *a)
{
        outdata[0] = a[0];
        outdata[1] = a[1];
        outdata[2] = a[2];
        outdata[3] = a[3];
        outdata[4] = a[4];
        count = 1;
        SBUF=outdata[0];
}
void Delay(U16 j)
{      
         U8 i;
   for(;j>0;j--)
{
        
        for(i=0;i<27;i++);

}
}
void  Delay_10us(void)
      {
        U8 i;
        i--;
        i--;
        i--;
        i--;
        i--;
        i--;
       }
void  COM(void)
      {

       U8 i;

       for(i=0;i<8;i++)   
   {
     U8FLAG=2;
  while((!P2_0)&&U8FLAG++);
                Delay_10us();
    Delay_10us();
                Delay_10us();
  U8temp=0;
    if(P2_0)U8temp=1;
   U8FLAG=2;
while((P2_0)&&U8FLAG++);
  //超時則跳出for循環  
  if(U8FLAG==1)break;
  //判斷數據位是0還是1  

// 如果高電平高過預定0高電平值則數據位為 1

  U8comdata<<=1;
    U8comdata|=U8temp;        //0
    }//rof

}

//--------------------------------
//-----濕度讀取子程序 ------------
//--------------------------------
//----以下變量均為全局變量--------
//----溫度高8位== U8T_data_H------
//----溫度低8位== U8T_data_L------
//----濕度高8位== U8RH_data_H-----
//----濕度低8位== U8RH_data_L-----
//----校驗 8位 == U8checkdata-----
//----調用相關子程序如下----------
//---- Delay();, Delay_10us();,COM();
//--------------------------------

void RH(void)
{
//主機拉低18ms
  P2_0=0;
  Delay(180);
  P2_0=1;
//總線由上拉電阻拉高 主機延時20us
  Delay_10us();
  Delay_10us();
  Delay_10us();
  Delay_10us();
//主機設為輸入 判斷從機響應信號
  P2_0=1;
//判斷從機是否有低電平響應信號 如不響應則跳出,響應則向下運行  
  if(!P2_0) //T !  
  {
  U8FLAG=2;
//判斷從機是否發出 80us 的低電平響應信號是否結束  
  while((!P2_0)&&U8FLAG++);
  U8FLAG=2;
//判斷從機是否發出 80us 的高電平,如發出則進入數據接收狀態
  while((P2_0)&&U8FLAG++);
//數據接收狀態  
  COM();
  U8RH_data_H_temp=U8comdata;
  COM();
  U8RH_data_L_temp=U8comdata;
  COM();
  U8T_data_H_temp=U8comdata;
  COM();
  U8T_data_L_temp=U8comdata;
  COM();
  U8checkdata_temp=U8comdata;
  P2_0=1;
//數據校驗

  U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
  if(U8temp==U8checkdata_temp)
{
        U8RH_data_H=U8RH_data_H_temp;
        U8RH_data_L=U8RH_data_L_temp;
        U8T_data_H=U8T_data_H_temp;
        U8T_data_L=U8T_data_L_temp;
        U8checkdata=U8checkdata_temp;
}//fi
}//fi

}
/*void Read_Busy()  //判忙函數 通過率極低 直接改延遲
{
        U8 busy;
        LCD1602_DB = 0xff;//復位數據總線
        LCD1602_RS = 0;  //拉低RS
        LCD1602_RW = 1;  //拉高RW讀
do
{
        LCD1602_EN = 1;//使能EN
        busy = LCD1602_DB;//讀回數據
        LCD1602_EN = 0; //拉低使能以便于下一次產生上升沿
}
        while(busy & 0x80); //判斷狀態字BIT7位是否為1,為1則表示忙,程序等待
}*/
void LCD1602_Write_Cmd(U8 cmd)
{
   Delay(3);
   LCD1602_RS = 0;
   LCD1602_RW = 0;
   LCD1602_DB = cmd;//寫入命令
         Delay(3);
   LCD1602_EN = 1; //拉高使能端 數據被傳輸到LCD1602內
         Delay(3);
   LCD1602_EN = 0; //拉低使能以便于下一次產生上升沿
}
void LCD1602_Write_Dat(U8 dat)
{

        Delay(3);
  LCD1602_RS = 1;
  LCD1602_RW = 0;
  LCD1602_DB = dat;
  Delay(3);
  LCD1602_EN = 1;
  Delay(3);
  LCD1602_EN = 0;
}
void LCD1602_Dis_Str(U8 x, U8 y, U8 *str)
{
        
  if(y) x |= 0x40;
  x |= 0x80;
  LCD1602_Write_Cmd(x);
  while(*str != '\0')
{
LCD1602_Write_Dat(*str++);
}
}
void Init_LCD1602()
{
  LCD1602_Write_Cmd(0x38); // 設置16*2顯示,5*7點陣,8位數據接口
  LCD1602_Write_Cmd(0x0c); //開顯示
  LCD1602_Write_Cmd(0x06); //讀寫一字節后地址指針加1
  LCD1602_Write_Cmd(0x01); //清除顯示
}
void lcddisplay()
{
  U8 temperature[] = {"temp:           "};
  U8 humidity [] = {"humi:         RH"};
  DU = 0;
  WE = 0;//關閉數碼管顯示
  Init_LCD1602();//1602初始化
  LCD1602_Dis_Str(0, 0, &temperature[0]); //顯示字符串
  LCD1602_Dis_Str(0, 1, & humidity [0]); //顯示字符串
  a1[0]=U8RH_data_H;
  a1[1]=U8RH_data_L;
  a1[2]=U8T_data_H;
  a1[3]=U8T_data_L;
  a1[4]=U8checkdata;
temperature [5] =(0x30+a1[2]/10);
        temperature [6] =(0x30+a1[2]%10);
        /*temperature [7] ='.';
        temperature [8] =(0x30+a1[3]/100);
        temperature [9] =(0x30+(a1[3])/10);*/
        temperature [14] =(0xdf);
        temperature [15] =(0x43);
        humidity [5] =(0x30+a1[0]/10);
        humidity [6] =(0x30+a1[0]%10);
        /*humidity [7] ='.';
        humidity [8] =(0x30+a1[1]/100);
        humidity [9] =(0x30+(a1[1])/10);*/
        LCD1602_Dis_Str(5, 0, & temperature [5]);
        LCD1602_Dis_Str(6, 0, & temperature [6]);
        //LCD1602_Dis_Str(7, 0, & temperature [7]);
        //LCD1602_Dis_Str(8, 0, & temperature [8]);
        //LCD1602_Dis_Str(9, 0, & temperature [9]);
        LCD1602_Dis_Str(14, 0, & temperature [14]);
        LCD1602_Dis_Str(15, 0, & temperature [15]);
        LCD1602_Dis_Str(5, 1, & humidity [5]);
        LCD1602_Dis_Str(6, 1, & humidity [6]);
        //LCD1602_Dis_Str(7, 1, & humidity [7]);
        //LCD1602_Dis_Str(8, 1, & humidity [8]);
        //LCD1602_Dis_Str(9, 1, & humidity [9]);

}
//----------------------------------------------
//main()功能描述:  AT89C51  11.0592MHz 串口發
//送溫濕度數據,波特率 9600
//----------------------------------------------
void main()
{

  //uchar str[5]={"12345"};
        /* 系統初始化 */
        TMOD = 0x20;  //定時器T1使用工作方式2
        TH1 = 253;        // 設置初值
        TL1 = 253;
        TR1 = 1;          // 開始計時
        SCON = 0x50;  //工作方式1,波特率9600bps,允許接收   
        ES = 1;
        EA = 1;           // 打開所以中斷   
        TI = 0;
        RI = 0;
        SendData(str) ;   //發送到串口
        Delay(1);         //延時100US(12M晶振)
        while(1)
{  

  //------------------------
  //調用溫濕度讀取子程序
  RH();
  //串口顯示程序
  //--------------------------

  str[0]=U8RH_data_H;
  str[1]=U8RH_data_L;
  str[2]=U8T_data_H;
  str[3]=U8T_data_L;
  str[4]=U8checkdata;
  SendData(str) ;  //發送到串口  
  //讀取模塊數據周期不易小于 2S
        lcddisplay();
                Delay(20000);
}//elihw
}// main

        void RSINTR() interrupt 4 using 2
{
        U8 InPut3;
        if(TI==1) //發送中斷  
        {
        TI=0;
        if(count!=5) //發送完5位數據  
{
        SBUF= outdata[count];
        count++;
}
}

        if(RI==1) //接收中斷  
{
        InPut3=SBUF;
        indata[count_r]=InPut3;
        count_r++;
        RI=0;  
        if (count_r==5)//接收完4位數據
{
        //數據接收完畢處理。
        count_r=0;
        str[0]=indata[0];
        str[1]=indata[1];
        str[2]=indata[2];
        str[3]=indata[3];
        str[4]=indata[4];
        P0=0;
}
}
}

微信圖片_20190423095936.jpg
回復

使用道具 舉報

ID:512941 發表于 2019-4-23 10:14 | 顯示全部樓層
  1. #include  <reg51.h>
  2. #include <intrins.h>
  3. #define LCD1602_DB P0 //LCD1602數據總線
  4. sbit LCD1602_RS = P3^5; //RS端
  5. sbit LCD1602_RW = P3^6; //RW端
  6. sbit LCD1602_EN = P3^4; //EN端
  7. sbit DU = P2^6;//
  8. sbit WE = P2^7;//數碼管位選段選用于關閉數碼管顯示

  9. typedef unsigned char  U8;      
  10. typedef signed   char  S8;      
  11. typedef unsigned int   U16;      
  12. typedef signed   int   S16;      
  13. typedef unsigned long  U32;      
  14. typedef signed   long  S32;      
  15. typedef float          F32;      
  16. typedef double         F64;      
  17. //
  18. #define uchar unsigned char
  19. #define uint unsigned int
  20. #define   Data_0_time    4
  21. //----------------------------------------------//
  22. //----------------IO口定義區--------------------//
  23. //----------------------------------------------//
  24. sbit  P2_0  = P2^0 ;
  25. //----------------------------------------------//
  26. //----------------定義區--------------------//
  27. //----------------------------------------------//
  28. U8  U8FLAG,k;
  29. U8  U8count,U8temp;
  30. U8  U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
  31. U8  U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
  32. U8  U8comdata;
  33. U8  outdata[5];  //定義發送的字節數   
  34. U8  indata[5];
  35. U8  a1[5];
  36. //U8  b[10];
  37. U8  count, count_r=0;
  38. U8  str[5];
  39. U16 U16temp1,U16temp2;
  40. void SendData(U8 *a)
  41. {
  42.         outdata[0] = a[0];
  43.         outdata[1] = a[1];
  44.         outdata[2] = a[2];
  45.         outdata[3] = a[3];
  46.         outdata[4] = a[4];
  47.         count = 1;
  48.         SBUF=outdata[0];
  49. }
  50. void Delay(U16 j)
  51. {      
  52.          U8 i;
  53.    for(;j>0;j--)
  54. {
  55.        
  56.         for(i=0;i<27;i++);

  57. }
  58. }
  59. void  Delay_10us(void)
  60.       {
  61.         U8 i;
  62.         i--;
  63.         i--;
  64.         i--;
  65.         i--;
  66.         i--;
  67.         i--;
  68.        }
  69. void  COM(void)
  70.       {
  71.      
  72.        U8 i;
  73.          
  74.        for(i=0;i<8;i++)   
  75.    {
  76.      U8FLAG=2;
  77.   while((!P2_0)&&U8FLAG++);
  78.                 Delay_10us();
  79.     Delay_10us();
  80.                 Delay_10us();
  81.   U8temp=0;
  82.     if(P2_0)U8temp=1;
  83.    U8FLAG=2;
  84. while((P2_0)&&U8FLAG++);
  85.   //超時則跳出for循環  
  86.   if(U8FLAG==1)break;
  87.   //判斷數據位是0還是1  
  88.    
  89. // 如果高電平高過預定0高電平值則數據位為 1
  90.    
  91.   U8comdata<<=1;
  92.     U8comdata|=U8temp;        //0
  93.     }//rof
  94.   
  95. }

  96. //--------------------------------
  97. //-----濕度讀取子程序 ------------
  98. //--------------------------------
  99. //----以下變量均為全局變量--------
  100. //----溫度高8位== U8T_data_H------
  101. //----溫度低8位== U8T_data_L------
  102. //----濕度高8位== U8RH_data_H-----
  103. //----濕度低8位== U8RH_data_L-----
  104. //----校驗 8位 == U8checkdata-----
  105. //----調用相關子程序如下----------
  106. //---- Delay();, Delay_10us();,COM();
  107. //--------------------------------

  108. void RH(void)
  109. {
  110. //主機拉低18ms
  111.   P2_0=0;
  112.   Delay(180);
  113.   P2_0=1;
  114. //總線由上拉電阻拉高 主機延時20us
  115.   Delay_10us();
  116.   Delay_10us();
  117.   Delay_10us();
  118.   Delay_10us();
  119. //主機設為輸入 判斷從機響應信號
  120.   P2_0=1;
  121. //判斷從機是否有低電平響應信號 如不響應則跳出,響應則向下運行  
  122.   if(!P2_0) //T !  
  123.   {
  124.   U8FLAG=2;
  125. //判斷從機是否發出 80us 的低電平響應信號是否結束  
  126.   while((!P2_0)&&U8FLAG++);
  127.   U8FLAG=2;
  128. //判斷從機是否發出 80us 的高電平,如發出則進入數據接收狀態
  129.   while((P2_0)&&U8FLAG++);
  130. //數據接收狀態  
  131.   COM();
  132.   U8RH_data_H_temp=U8comdata;
  133.   COM();
  134.   U8RH_data_L_temp=U8comdata;
  135.   COM();
  136.   U8T_data_H_temp=U8comdata;
  137.   COM();
  138.   U8T_data_L_temp=U8comdata;
  139.   COM();
  140.   U8checkdata_temp=U8comdata;
  141.   P2_0=1;
  142. //數據校驗

  143.   U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
  144.   if(U8temp==U8checkdata_temp)
  145. {
  146.         U8RH_data_H=U8RH_data_H_temp;
  147.         U8RH_data_L=U8RH_data_L_temp;
  148.         U8T_data_H=U8T_data_H_temp;
  149.         U8T_data_L=U8T_data_L_temp;
  150.         U8checkdata=U8checkdata_temp;
  151. }//fi
  152. }//fi

  153. }
  154. /*void Read_Busy()  //判忙函數 通過率極低 直接改延遲
  155. {
  156.         U8 busy;
  157.         LCD1602_DB = 0xff;//復位數據總線
  158.         LCD1602_RS = 0;  //拉低RS
  159.         LCD1602_RW = 1;  //拉高RW讀
  160. do
  161. {
  162.         LCD1602_EN = 1;//使能EN
  163.         busy = LCD1602_DB;//讀回數據
  164.         LCD1602_EN = 0; //拉低使能以便于下一次產生上升沿
  165. }
  166.         while(busy & 0x80); //判斷狀態字BIT7位是否為1,為1則表示忙,程序等待
  167. }*/
  168. void LCD1602_Write_Cmd(U8 cmd)
  169. {
  170.    Delay(3);
  171.    LCD1602_RS = 0;
  172.    LCD1602_RW = 0;
  173.    LCD1602_DB = cmd;//寫入命令
  174.          Delay(3);
  175.    LCD1602_EN = 1; //拉高使能端 數據被傳輸到LCD1602內
  176.          Delay(3);
  177.    LCD1602_EN = 0; //拉低使能以便于下一次產生上升沿
  178. }
  179. void LCD1602_Write_Dat(U8 dat)
  180. {

  181.         Delay(3);
  182.   LCD1602_RS = 1;
  183.   LCD1602_RW = 0;
  184.   LCD1602_DB = dat;
  185.   Delay(3);
  186.   LCD1602_EN = 1;
  187.   Delay(3);
  188.   LCD1602_EN = 0;
  189. }
  190. void LCD1602_Dis_Str(U8 x, U8 y, U8 *str)
  191. {
  192.        
  193.   if(y) x |= 0x40;
  194.   x |= 0x80;
  195.   LCD1602_Write_Cmd(x);
  196.   while(*str != '\0')
  197. {
  198. LCD1602_Write_Dat(*str++);
  199. }
  200. }
  201. void Init_LCD1602()
  202. {
  203.   LCD1602_Write_Cmd(0x38); // 設置16*2顯示,5*7點陣,8位數據接口
  204.   LCD1602_Write_Cmd(0x0c); //開顯示
  205.   LCD1602_Write_Cmd(0x06); //讀寫一字節后地址指針加1
  206.   LCD1602_Write_Cmd(0x01); //清除顯示
  207. }
  208. void lcddisplay()
  209. {
  210.   U8 temperature[] = {"temp:           "};
  211.   U8 humidity [] = {"humi:         RH"};
  212.   DU = 0;
  213.   WE = 0;//關閉數碼管顯示
  214.   Init_LCD1602();//1602初始化
  215.   LCD1602_Dis_Str(0, 0, &temperature[0]); //顯示字符串
  216.   LCD1602_Dis_Str(0, 1, & humidity [0]); //顯示字符串
  217.   a1[0]=U8RH_data_H;
  218.   a1[1]=U8RH_data_L;
  219.   a1[2]=U8T_data_H;
  220.   a1[3]=U8T_data_L;
  221.   a1[4]=U8checkdata;
  222. temperature [5] =(0x30+a1[2]/10);
  223.         temperature [6] =(0x30+a1[2]%10);
  224.         /*temperature [7] ='.';
  225.         temperature [8] =(0x30+a1[3]/100);
  226.         temperature [9] =(0x30+(a1[3])/10);*/
  227.         temperature [14] =(0xdf);
  228.         temperature [15] =(0x43);
  229.         humidity [5] =(0x30+a1[0]/10);
  230.         humidity [6] =(0x30+a1[0]%10);
  231.         /*humidity [7] ='.';
  232.         humidity [8] =(0x30+a1[1]/100);
  233.         humidity [9] =(0x30+(a1[1])/10);*/
  234.         LCD1602_Dis_Str(5, 0, & temperature [5]);
  235.         LCD1602_Dis_Str(6, 0, & temperature [6]);
  236.         //LCD1602_Dis_Str(7, 0, & temperature [7]);
  237.         //LCD1602_Dis_Str(8, 0, & temperature [8]);
  238.         //LCD1602_Dis_Str(9, 0, & temperature [9]);
  239.         LCD1602_Dis_Str(14, 0, & temperature [14]);
  240.         LCD1602_Dis_Str(15, 0, & temperature [15]);
  241.         LCD1602_Dis_Str(5, 1, & humidity [5]);
  242.         LCD1602_Dis_Str(6, 1, & humidity [6]);
  243.         //LCD1602_Dis_Str(7, 1, & humidity [7]);
  244.         //LCD1602_Dis_Str(8, 1, & humidity [8]);
  245.         //LCD1602_Dis_Str(9, 1, & humidity [9]);

  246. }
  247. //----------------------------------------------
  248. //main()功能描述:  AT89C51  11.0592MHz 串口發
  249. //送溫濕度數據,波特率 9600
  250. //----------------------------------------------
  251. void main()
  252. {

  253.   //uchar str[5]={"12345"};
  254.         /* 系統初始化 */
  255.         TMOD = 0x20;  //定時器T1使用工作方式2
  256.         TH1 = 253;        // 設置初值
  257.         TL1 = 253;
  258.         TR1 = 1;          // 開始計時
  259.         SCON = 0x50;  //工作方式1,波特率9600bps,允許接收   
  260.         ES = 1;
  261.         EA = 1;           // 打開所以中斷   
  262.         TI = 0;
  263.         RI = 0;
  264.         SendData(str) ;   //發送到串口
  265.         Delay(1);         //延時100US(12M晶振)
  266.         while(1)
  267. {  

  268.   //------------------------
  269.   //調用溫濕度讀取子程序
  270.   RH();
  271.   //串口顯示程序
  272.   //--------------------------

  273.   str[0]=U8RH_data_H;
  274.   str[1]=U8RH_data_L;
  275.   str[2]=U8T_data_H;
  276.   str[3]=U8T_data_L;
  277.   str[4]=U8checkdata;
  278.   SendData(str) ;  //發送到串口  
  279.   //讀取模塊數據周期不易小于 2S
  280.         lcddisplay();
  281.                 Delay(20000);
  282. }//elihw
  283. }// main

  284.         void RSINTR() interrupt 4 using 2
  285. {
  286.         U8 InPut3;
  287.         if(TI==1) //發送中斷  
  288.         {
  289.         TI=0;
  290.         if(count!=5) //發送完5位數據  
  291. {
  292.         SBUF= outdata[count];
  293.         count++;
  294. }
  295. }

  296.         if(RI==1) //接收中斷  
  297. {
  298.         InPut3=SBUF;
  299.         indata[count_r]=InPut3;
  300.         count_r++;
  301.         RI=0;  
  302.         if (count_r==5)//接收完4位數據
  303. {
  304.         //數據接收完畢處理。
  305.         count_r=0;
  306.         str[0]=indata[0];
  307.         str[1]=indata[1];
  308.         str[2]=indata[2];
  309.         str[3]=indata[3];
  310.         str[4]=indata[4];
  311.         P0=0;
  312. }
  313. }
  314. }
復制代碼
回復

使用道具 舉報

ID:123289 發表于 2019-4-23 11:58 | 顯示全部樓層
再研讀過DHT11的數據手冊,與你的程序作個對比。
回復

使用道具 舉報

ID:512941 發表于 2019-4-23 14:54 | 顯示全部樓層
yzwzfyz 發表于 2019-4-23 11:58
再研讀過DHT11的數據手冊,與你的程序作個對比。

就是按照DHT11的時序圖來的 看了好幾天了。
回復

使用道具 舉報

ID:110606 發表于 2019-4-23 15:10 | 顯示全部樓層
我幫你分析一下,
如果你只改動顯示程序,其他的都沒有改動,那么串口輸出應該不會有問題
回復

使用道具 舉報

ID:110606 發表于 2019-4-23 15:15 | 顯示全部樓層
所以我有這樣的建議,你可以試一下
1.使用原程序,顯示肯定不對,不用管,看串口,如果串口發的數據也不對,那么要么就是你DHT11插的引腳不對,要么就是原程序不對
2.找一個串口好用的程序,把DHT11部分的程序復制過去,這樣DHT讀取是好用的,然后再研究1602
不要期望在網上找的東西都好用,學電子就是不斷的解決問題,加油!

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧洲av一区 | 精品1区 | 国产丝袜一区二区三区免费视频 | 日韩欧美亚洲一区 | 81精品国产乱码久久久久久 | 中文字幕在线观看一区二区 | 久久久av | 91免费观看 | 人碰人操 | аⅴ资源新版在线天堂 | 国产精品揄拍一区二区 | 三级黄片毛片 | 亚洲国产精品视频 | 成人夜晚看av | 久久亚洲国产 | 爱综合 | 一级毛片免费 | 久久国产日韩 | 日本不卡一区二区三区在线观看 | 久久亚洲国产 | 特黄一级 | 国产激情91久久精品导航 | 韩日视频在线观看 | 亚洲欧洲中文日韩 | 国产激情一区二区三区 | 一区二区三区在线电影 | 久久精品性视频 | 人人澡人人爱 | 在线看av网址 | 性网址| 精品国产91 | 成人高清视频在线观看 | 九九久久精品视频 | 888久久久 | 日韩无| 欧美日韩中文字幕 | 国产精品v | 精品日韩一区二区 | 91中文在线观看 | 亚洲欧美日韩中文字幕一区二区三区 | 男女精品网站 |