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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

學51單片機-基于PCF8591的AD采樣和DA輸出

  [復制鏈接]
跳轉到指定樓層
樓主
ID:74835 發表于 2015-4-8 22:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
      
      首先思考一個問題,我們的世界是數字的還是模擬的?
      當然是模擬的了,所有的量都是在一定范圍內連續變化的。我們為了能夠更加方便的描述這些量,對它們進行了數字化。而數字量就不一樣了,它是分立的的幾個值。
      舉個例子,我們形容一個人的身高,模擬的說法是一米七到一米七五之間,數字的說法就是一米七三。
接下來說AD轉換器,它的出現也是為了讓我們能更方便、更直接的描述電壓的高低。AD轉換器,英文全稱為Analog-to-Digital Converter,是模擬量到數字量的一個轉換過程,主要用于電壓的采集。它的出現就如同有了一把尺子,很容易就能量出電壓的高低。
在電子設備中,經常要檢測各種模擬量:溫度、壓力、速度、流量、重力加速度等等,這些模擬量都被相應的傳感器轉換為電壓信號,我們只需要測量電壓的高低,就能得到相應參數。
AD的主要參數有哪些?
1、AD的位數:表明這個AD共有2^n個刻度,8位AD,輸出的刻度是0~255.
2、分辨率:就是AD能夠分辨的最小的模擬量變化,假設5.10V的系統用8位的AD采樣,那么它能分辨的最小電壓就是5.10/255=0.02V。
3、INL:Interger NONliner 積分非線性度,表示了ADC器件在所有的數值點上對應的模擬值,和真實值之間誤差最大的那一點的誤差值。也就是,輸出數值偏離線性最大的距離。單位是LSB(即最低位所表示的量)。比如12位ADC:TLC2543,INL值為1LSB。那么,如果基準4.095V,測某電壓得的轉換結果是1000,那么,真實電壓值可能分布在0.999~1.001V之間。
4、DNL:Differencial NonLiner-差分非線性度,理論上說,模數器件相鄰量個數據之間,模擬量的差值都是一樣的。就相一把疏密均勻的尺子。但實際并不如此。一把分辨率1毫米的尺子,相鄰兩刻度之間也不可能都是1毫米整。那么,ADC相鄰兩刻度之間最大的差異就叫差分非線性值(Differencial NonLiner)。DNL值如果大于1,那么這個ADC甚至不能保證是單調的,輸入電壓增大,在某個點數值反而會減小。這種現象在SAR(逐位比較)型ADC中很常見。
5、基準源:有內部基準源、外部基準源等等。
6、轉換速率:也就是轉換周期的倒數,轉換周期就是完成一次AD轉換所需的時間。
今天要用到的器件是PCF8591,為什么選它?太多的開發板上用它做演示了,而且還是IIC總線通信的。既學習了AD采樣,又學習了IIC總線。
先上應用電路:
      如上圖所示,PCF8591的9腳和10腳,一個是數據線SDA,一個是時鐘線SCL。分別接到單片機的P2.0 , P2.1上面。
為什么選這兩個引腳?因為51單片機上沒有IIC總線接口,需要用普通的IO模擬,所以它隨便選了兩個IO接上就行。
VREF是什么?基準電壓,也是它能測量的最大電壓。
如何控制?今天先不說IIC總線,只說控制流程。
看器件手冊可以知道:
分四步:
1、發送地址字節,選擇該器件。
2、發送控制字節,選擇相應通道。               //
3、重新發送地址字節,選擇該器件。
4、接收目標通道的數據。
這次的程序流程是:AD采樣,串口發送,循環執行。
下面是AD采樣源代碼:
  1. /**********************51單片機學習例程************************
  2. *  平臺:Keil U4 + STC89C52
  3. *  名稱:AD采樣+串口發送
  4. *  編寫:起航
  5. *  晶體:11.0592MHZ
  6. ******************************************************************/
  7. #include <reg52.h>
  8. #include <intrins.h>

  9. typedef unsigned char uint8;
  10. typedef unsigned int uint16;

  11. #define SLAVEADDR  0x90                 //定義器件地址
  12. #define nops()  do{_nop_();_nop_();_nop_();_nop_();_nop_();} while(0) //定義空指令


  13. sbit SCL = P2^1;       //I2C  時鐘
  14. sbit SDA = P2^0;       //I2C  數據

  15. void delay(uint16 n)
  16. {
  17.         while (n--);
  18. }
  19. /**
  20. * 函數: i2c_start()
  21. * 功能: 啟動i2c                  起始信號
  22. */
  23. void i2c_start()
  24. {
  25.         SCL = 1;
  26.         nops();
  27.         SDA = 1;
  28.         nops();
  29.         SDA = 0;
  30.         nops();
  31.         SCL = 0;
  32. }

  33. /**
  34. * 函數: i2c_stop()
  35. * 功能: 停止i2c
  36. */
  37. void i2c_stop()
  38. {
  39.         SCL = 0;
  40.         nops();
  41.         SDA = 0;
  42.         nops();
  43.         SCL = 1;
  44.         nops();
  45.         SDA = 1;
  46.         nops();
  47. }

  48. /**
  49. * 函數: i2c_ACK(bit ck)
  50. * 功能: ck為1時發送應答信號ACK,
  51. *       ck為0時不發送ACK
  52. */
  53. void i2c_ACK(bit ck)
  54. {
  55.     if (ck)
  56.                 SDA = 0;
  57.     else
  58.                 SDA = 1;
  59.     nops();
  60.     SCL = 1;
  61.     nops();
  62.     SCL = 0;
  63.         nops();
  64.     SDA = 1;
  65.     nops();
  66. }

  67. /**
  68. * 函數: i2c_waitACK()
  69. * 功能: 返回為0時收到ACK
  70. *       返回為1時沒收到ACK
  71. */
  72. bit i2c_waitACK()
  73. {
  74.         SDA = 1;
  75.         nops();
  76.         SCL = 1;
  77.         nops();
  78.         if (SDA)
  79.         {   
  80.                 SCL = 0;
  81.                 i2c_stop();
  82.                 return 1;
  83.         }
  84.         else
  85.         {  
  86.                 SCL = 0;
  87.                 return 0;
  88.         }
  89. }

  90. /**
  91. * 函數: i2c_sendbyte(uint8 bt)
  92. * 功能: 將輸入的一字節數據bt發送
  93. */
  94. void i2c_sendbyte(uint8 bt)
  95. {
  96.     uint8 i;
  97.    
  98.     for(i=0; i<8; i++)
  99.     {  
  100.         if (bt & 0x80)
  101.                         SDA = 1;
  102.         else
  103.                         SDA = 0;
  104.         nops();
  105.         SCL = 1;
  106.         bt <<= 1;
  107.         nops();      
  108.         SCL = 0;
  109.     }
  110. }

  111. /**
  112. * 函數: i2c_recbyte( )
  113. * 功能: 從總線上接收1字節數據
  114. */
  115. uint8 i2c_recbyte()
  116. {
  117.         uint8 dee, i;
  118.        
  119.         for (i=0; i<8; i++)
  120.         {
  121.                 SCL = 1;   
  122.                 nops();
  123.                 dee <<= 1;
  124.                 if (SDA)
  125.                         dee = dee | 0x01;
  126.                 SCL = 0;
  127.                 nops();
  128.         }
  129.        
  130.         return dee;
  131. }

  132. /**
  133. * 函數: i2c_readbyte
  134. * 輸入: addr
  135. * 功能: 讀出一字節數據
  136. * 返回值: 0->成功  1->失敗
  137. */
  138. bit i2c_readbyte(uint8 com, uint8 *dat)
  139. {       
  140.         i2c_start();
  141.         i2c_sendbyte(SLAVEADDR);    //地址
  142.     if (i2c_waitACK())
  143.                 return 1;
  144.         i2c_sendbyte(com);        //控制字節
  145.     if (i2c_waitACK())
  146.                 return 1;
  147.         i2c_start();
  148.         i2c_sendbyte(SLAVEADDR+1); //地址
  149.     if (i2c_waitACK())
  150.                 return 1;
  151.         *dat = i2c_recbyte();      //讀數據
  152.         i2c_ACK(0);                //因為只讀一字節數據,不發送ACK信號
  153.         i2c_stop();   
  154.        
  155.         return 0;
  156. }

  157. /**
  158. * UART初始化
  159. * 波特率:9600
  160. */
  161. void uart_init(void)
  162. {
  163.     ET1=0;
  164.     TMOD = 0x21;        // 定時器1工作在方式2(自動重裝)
  165.     SCON = 0x50;        // 10位uart,允許串行接受

  166.     TH1 = 0xFD;
  167.     TL1 = 0xFD;

  168.     TR1 = 1;
  169. }

  170. /**
  171. * UART 發送一字節
  172. */
  173. void UART_Send_Byte(uint8 dat)
  174. {
  175.         SBUF = dat;
  176.         while (TI == 0);
  177.         TI = 0;
  178. }


  179. main()
  180. {
  181.         uint8 ans;

  182.         uart_init();

  183.         while(1)
  184.         {

  185.                 i2c_readbyte(0x43, &ans);
  186.             
  187.                 UART_Send_Byte(ans);
  188.                 delay(50000);
  189.         }
  190. }
復制代碼
本程序下載鏈接(附帶PCF8591中文資料pdf資料): PCF8591AD采樣.rar (459.16 KB, 下載次數: 948)
-------------------------------------------------------------------------------------

下面介紹PCF8591的DA輸出:

      忽然發現,已經寫到AD/DA這里來了。嚴格來說,已經不是51單片機的內容了,而是周邊應用電路的一些東西。這些東西涉及的知識面比較廣,什么都有可能提到。
      關于AD/DA,或者其它設備,我的學習思路是先模仿,再深究。
      因為無論是課本也好,器件手冊也好,大部分講的都是原理或者寄存器,起到的是一個工具書的作用,類似于語文課上用的字典。但是這就出現了一個問題,很多人想通過看課本或者看器件手冊的方式來掌握這些設備。
      這個思路有問題嗎?沒有問題嗎?
      還記得我剛才說的話么,它們就類似于語文課上用的字典,但是,有誰是通過看字典學會說話的!!!
      我們都是通過模仿別人學會說話的,遇到不認識的字才去查字典!但是很多人或者很多學校都把這兩件事的順序搞反了。
      記得之前我在英飛凌官網進行芯片選型,網頁都翻爛了,找不到合適的。因為英飛凌不是我家開的,我不能保證每次都能順利的找到我想要的東西。
      但是,我同事參加了一次電子展,在展會上遇到了英飛凌的展臺,然后問他們,他們一聽我們的需求,馬上找出一堆能滿足我們要求的芯片。
      這就是思路的問題!
      扯遠了,說回到DA控制。
DA轉換(Digital to Analog),是將數字量變成模擬量的一個過程。AD與DA剛好是相反的兩個過程,AD是把模擬信號變成單片機可識別的數字信號;DA是把單片機可識別的數字信號變成連續變化的模擬量。這兩種功能的應用范圍都非常廣泛!
      主要參數如下,具體什么意思就不講了,大家可以百度一下。(因為我編不出來了...)
1)分辯率(Resolution)
2) 轉換速率(Conversion Rate)
3)量化誤差 (Quantizing Error)
4)偏移誤差(Offset Error)
5)滿刻度誤差(Full Scale Error)
6)線性度(Linearity)
其他指標還有:絕對精度(Absolute Accuracy) ,相對精度(Relative Accuracy),微分非線性,單調性和無錯碼,總諧波失真(Total Harmonic Distotortion縮寫THD)和積分非線性。
看到這么多參數,是不是很暈?
搞了這些年電子,感觸最深的有一點是:無論做什么,先求有,再求好!
不要總想一口吃個胖子,沒那么多天才。參數是很多,但是沒要求你一下子全都記住,甚至你可以只記一兩個。先把大致的應用流程跑一遍,跑下來,你才對這個設備有一個整體的概念,然后針對你的要求,比對相應的參數,進行修改、調試。
哪怕是在工作中,也不一定會考慮全部的參數。例如轉換時間,我到現在也沒認真看PIC內部的AD采樣轉換時間有多久,因為有些設備對實時性要求很低,速度慢一些也沒事。
然后是控制流程,認真看器件手冊的,或者看了昨天日志的,都知道是怎樣一個流程:
第一步:寫器件地址;
第二步:寫控制位。
第三步:寫入數據。
好了,上程序。通過DA輸出漸變電壓控制LED,形成呼吸燈的效果。里面有個警告:
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
      大家可以研究下,如何消除警告。
程序源碼如下:
  1. /**********************51單片機學習例程************************
  2. *  平臺: Keil U34 + STC89C52RD
  3. *         名稱:IIC協議 PCF8591ADDA轉換        ,此程序通過IIC協議對DAAD芯片操作, 并輸出模擬量,用LED亮度漸變指示
  4. *  編寫:起航
  5. *  晶振:11.0592MHZ
  6. ******************************************************************/

  7. #include<reg52.h>    //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
  8. #include <intrins.h> //包含NOP空指令函數_nop_();

  9. #define AddWr 0x90   //寫數據地址
  10. #define AddRd 0x91   //讀數據地址

  11. sbit RST=P2^4;   //關掉時鐘芯片輸出
  12. sbit Sda=P2^0;      //定義總線連接端口
  13. sbit Scl=P2^1;
  14. sbit Fm=P2^3;          //FM
  15. sbit dula=P2^6;
  16. sbit wela=P2^7;
  17. // bit ADFlag;          //定義AD采樣標志位
  18. unsigned char code Datatab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//7段數共陰碼管段碼表
  19. data unsigned char  Display[8];//定義臨時存放數碼管數值
  20. /*------------------------------------------------
  21.                     延時程序
  22. ------------------------------------------------*/
  23. void mDelay(unsigned char j)
  24. {
  25.   unsigned int i;
  26.   for(;j>0;j--)
  27.      {
  28.           for(i=0;i<125;i++)
  29.              {;}
  30.           }
  31.   }
  32. /*------------------------------------------------
  33.                     初始化定時器1
  34. ------------------------------------------------*/
  35. void Init_Timer1(void)
  36. {
  37. TMOD |= 0x10;                             
  38. TH1=0xff;                              /* Init value */
  39. TL1=0x00;
  40. //PT1=1;                   /* 優先級    */
  41. EA=1;                      /* interupt enable */
  42. ET1=1;                     /* enable timer1 interrupt */
  43. TR1=1;  
  44. }
  45. /*------------------------------------------------
  46.                     啟動IIC總線
  47. ------------------------------------------------*/
  48.   void Start(void)
  49.   {
  50.    Sda=1;
  51.    _nop_();
  52.    Scl=1;
  53.    _nop_();
  54.    Sda=0;
  55.    _nop_();
  56.    Scl=0;
  57.   }


  58. /*------------------------------------------------
  59.                     停止IIC總線
  60. ------------------------------------------------*/
  61.   void Stop(void)
  62.   {
  63.    Sda=0;
  64.    _nop_();
  65.    Scl=1;
  66.    _nop_();
  67.    Sda=1;
  68.    _nop_();
  69.    Scl=0;
  70.    }


  71. /*------------------------------------------------
  72.                    應答IIC總線
  73. ------------------------------------------------*/
  74.    void Ack(void)
  75.    {
  76.     Sda=0;
  77.         _nop_();
  78.         Scl=1;
  79.         _nop_();
  80.         Scl=0;
  81.         _nop_();
  82.         }

  83. /*------------------------------------------------
  84.               發送一個字節
  85. ------------------------------------------------*/
  86.          void Send(unsigned char Data)
  87.          {
  88.           unsigned char BitCounter=8;
  89.           unsigned char temp;

  90.           do
  91.             {
  92.                  temp=Data;
  93.                  Scl=0;
  94.                  _nop_();
  95.                  if((temp&0x80)==0x80)
  96.                     Sda=1;
  97.                  else
  98.                     Sda=0;

  99.                         Scl=1;
  100.                         temp=Data<<1;
  101.                         Data=temp;
  102.                         BitCounter--;
  103.                   }
  104.           while(BitCounter);
  105.               Scl=0;
  106.           }

  107. /*------------------------------------------------
  108.                     寫入DA數模轉換值
  109. ------------------------------------------------*/
  110.           void DAC(unsigned char Data)
  111.           {
  112.                    Start();
  113.                    Send(AddWr); //寫入芯片地址
  114.                    Ack();
  115.                    Send(0x40);  //寫入控制位,使能DAC輸出
  116.                    Ack();
  117.                    Send(Data);  //寫數據
  118.                    Ack();
  119.                    Stop();
  120.                  
  121.            }


  122.         void fmg(void)//fm關
  123.         {       
  124.         Fm=1;        //                關 fm
  125.         }
  126.                  void cmg(void)//數碼管鎖存函數                   關時鐘DS1302
  127.         {
  128.         dula=1;
  129.         P0=0x00;
  130.         dula=0;
  131.         wela=1;
  132.         P0=0x00;
  133.         wela=0;
  134.         RST=0;                //                關時鐘DS1302
  135.         }
  136. /*------------------------------------------------
  137.                    主程序
  138. ------------------------------------------------*/
  139.         void main()
  140.         {
  141.          unsigned char num;                   //DA數模輸出變量
  142.    Init_Timer1();
  143.          cmg();//數碼管鎖存
  144.          fmg();
  145.          while(1)
  146.            {
  147.        DAC(num);       //DA輸出,可以用LED模擬電壓變化
  148.                    num++;          //累加,到256后溢出變為0,往復循環。顯示在LED上亮度逐漸變化
  149.                    mDelay(20);     //延時用于清晰看出變化
  150.            }
  151.         }

復制代碼
下載鏈接: PCF8591DAC_LED.zip (29.03 KB, 下載次數: 409)





評分

參與人數 3黑幣 +15 收起 理由
愛拉屎 + 5 絕世好帖!
勇猛的大表哥 + 5 共享資料的黑幣獎勵!
vancee + 5 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:81389 發表于 2015-5-28 18:23 | 只看該作者
請問樓主,PCF8591適合做心電信號的AD采樣嗎?求指導啊
回復

使用道具 舉報

板凳
ID:84098 發表于 2015-6-27 19:37 | 只看該作者
看了一下,剛學哎
回復

使用道具 舉報

地板
ID:86381 發表于 2015-7-21 16:47 | 只看該作者
正在學習AD/DA!謝謝
回復

使用道具 舉報

5#
ID:86664 發表于 2015-7-26 11:15 | 只看該作者
不錯,正在學ad/da
回復

使用道具 舉報

6#
ID:87908 發表于 2015-8-8 11:18 | 只看該作者
很好很強大
回復

使用道具 舉報

7#
ID:88201 發表于 2015-8-12 17:43 | 只看該作者
//unsigned char code Datatab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//data unsigned char  Display[8];
警告應該是因為這兩句是多余的
回復

使用道具 舉報

8#
ID:91409 發表于 2015-10-6 16:04 | 只看該作者
樓主,我是小白。收獲好多,謝謝
回復

使用道具 舉報

9#
ID:96325 發表于 2015-11-19 11:13 | 只看該作者
很好的東西~謝謝樓主
回復

使用道具 舉報

10#
ID:96325 發表于 2015-11-19 11:14 | 只看該作者
很好的東西,謝謝樓主
回復

使用道具 舉報

11#
ID:96909 發表于 2015-11-27 11:35 | 只看該作者
    請問“發送一個字節”這一段程序是干啥用的,為啥要用著個程序呢,謝謝我是小白
回復

使用道具 舉報

12#
ID:97468 發表于 2015-11-28 15:52 | 只看該作者
很好的東西~謝謝樓主
回復

使用道具 舉報

13#
ID:97896 發表于 2015-12-1 19:31 | 只看該作者
剛開始學數模轉換,謝謝樓主啦。
回復

使用道具 舉報

14#
ID:65439 發表于 2015-12-3 10:47 | 只看該作者
深度好貼,謝謝樓主了。
回復

使用道具 舉報

15#
ID:97051 發表于 2015-12-21 10:50 | 只看該作者
很好的文章,剛好要用……
回復

使用道具 舉報

16#
ID:102731 發表于 2016-1-11 10:51 | 只看該作者
樓主東西很好,對我幫助很大
回復

使用道具 舉報

17#
ID:103715 發表于 2016-1-18 23:35 | 只看該作者
學習了,學習了,感謝樓主
回復

使用道具 舉報

18#
ID:97171 發表于 2016-2-23 11:13 | 只看該作者

樓主,這兩個圈里的器件指的應該是同一個器件吧?那為什么第152行代碼中器件地址是SLAVEADDR,而第159行代碼中器件地址是SLAVEADDR+1?為什么要加1呢?
回復

使用道具 舉報

19#
ID:97171 發表于 2016-2-24 08:39 | 只看該作者
我突然明白了,152行的SLAVEADDR是要寫,159行的SLAVEADDR+1是要讀,所以要加1

評分

參與人數 1黑幣 +3 收起 理由
勇猛的大表哥 + 3 贊一個!

查看全部評分

回復

使用道具 舉報

20#
ID:119828 發表于 2016-5-10 16:27 | 只看該作者
學習了,謝謝!
回復

使用道具 舉報

21#
ID:120508 發表于 2016-5-13 11:56 | 只看該作者
DA輸出之前沒怎么了解  今天惡補  謝謝
回復

使用道具 舉報

22#
ID:122310 發表于 2016-5-21 09:52 | 只看該作者
謝謝分享!!
回復

使用道具 舉報

23#
ID:123329 發表于 2016-5-26 14:33 | 只看該作者
很好,十分有用。感謝分享。
回復

使用道具 舉報

24#
ID:123955 發表于 2016-5-30 10:45 | 只看該作者
請問,你們有遇到DA輸出的時候電壓不夠的情況嗎?測到VCC有5.19V,但是輸出最大只能到4.42V,
回復

使用道具 舉報

25#
ID:126889 發表于 2016-6-15 18:09 | 只看該作者
請問轉換周期怎么計算,或者說具體采樣頻率怎么計算
回復

使用道具 舉報

26#
ID:127352 發表于 2016-6-21 15:41 | 只看該作者
PCF8591和PCF8591T有什么區別嗎?是不是管腳不同?
回復

使用道具 舉報

27#
ID:141194 發表于 2016-10-3 11:57 | 只看該作者
樓主威武  樓主萬歲萬歲萬萬歲
回復

使用道具 舉報

28#
ID:146352 發表于 2016-11-5 23:58 | 只看該作者
終于在這找到了,正需要
回復

使用道具 舉報

29#
ID:147122 發表于 2016-11-9 20:30 | 只看該作者
漲姿勢
回復

使用道具 舉報

30#
ID:147122 發表于 2016-11-9 20:31 | 只看該作者
加油啊
回復

使用道具 舉報

31#
ID:147740 發表于 2016-11-17 17:25 | 只看該作者
貌似很不錯
回復

使用道具 舉報

32#
ID:129418 發表于 2016-12-17 21:40 | 只看該作者
感謝分享
回復

使用道具 舉報

33#
ID:170948 發表于 2017-3-27 15:50 | 只看該作者
沒有黑幣啊,好苦惱。。。。。。。
回復

使用道具 舉報

34#
ID:190947 發表于 2017-4-19 22:15 | 只看該作者
w2 w3是什么東西??
回復

使用道具 舉報

35#
ID:192309 發表于 2017-4-22 13:26 | 只看該作者
很給力!!
回復

使用道具 舉報

36#
ID:73234 發表于 2017-5-7 09:52 | 只看該作者
謝謝樓主,畢設正好需要這個器件
回復

使用道具 舉報

37#
ID:73234 發表于 2017-5-12 10:59 | 只看該作者
謝謝樓主,!!!
回復

使用道具 舉報

38#
ID:184237 發表于 2017-8-22 11:06 | 只看該作者
請問,我沒加上拉電阻,數值一直在跳,等我加上上拉電阻,求平均值后  數據會穩定下來嗎
回復

使用道具 舉報

39#
ID:279557 發表于 2018-2-7 09:45 | 只看該作者
厲害啊,好東西
回復

使用道具 舉報

40#
ID:314244 發表于 2018-4-23 10:00 | 只看該作者
還沒看見 不知道是不是深度好文,現在正在登陸
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www日本高清 | 亚洲欧美一区在线 | 日韩在线观看网站 | 天天爽综合网 | 欧美性大战久久久久久久蜜臀 | 久久久久久国产精品 | 插插插干干干 | 一级黄色夫妻生活 | 精品国产免费人成在线观看 | 人人干在线 | 国产亚洲精品精品国产亚洲综合 | 韩日一区二区 | 国产一区二 | 国产日韩视频在线 | 国产成人精品免费视频大全最热 | 日韩精品一区二区三区中文字幕 | 在线观看国产视频 | 欧美激情视频一区二区三区在线播放 | 色天堂影院 | 黄色在线观看网站 | 91新视频| 美女爽到呻吟久久久久 | 欧美一区二区在线看 | 成人欧美日韩一区二区三区 | 成人av一区二区在线观看 | 欧美一区二区三区国产 | 日韩三级 | 麻豆av在线免费观看 | 亚洲性在线 | 久久久久久久久久久久一区二区 | 国产成人小视频 | a级片在线 | 日韩一区二区免费视频 | 国产精品一卡二卡三卡 | 日韩高清一区二区 | 日韩视频一区二区 | 黄色免费网站在线看 | 日本成人区 | 色香蕉在线 | 久久蜜桃av一区二区天堂 | 99久9|