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

標題: ADS1115模塊原理圖PCB以及單片機程序源碼分享 [打印本頁]

作者: HEIzh    時間: 2021-9-25 13:59
標題: ADS1115模塊原理圖PCB以及單片機程序源碼分享
這是前段時間我個人制作的一塊ADS1115模塊
測試性能良好,誤差較小
附件有原理圖PCB和測試數(shù)據(jù)
屬個人制作,請多多指教

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)

單片機源程序如下:
  1. #include "STC8.h"
  2. #include "uart.h"
  3. #include "ADS1115.h"
  4. #include "stdio.h"

  5. pdata uint ADC_Result[20];
  6. extern char dac_str[16];

  7. /***********************************************************************************/
  8. uint    result=0;
  9. uchar   Initdata[4]={0};

  10. void delay1(uchar T)
  11. {
  12.   while(--T);
  13. }

  14. /*************************************函數(shù)功能:開始ADC通信 **************************************/
  15. void StartADcom()
  16. {
  17.   SDA =0;
  18.   SCL=1;
  19.   delay1(100);
  20.   SDA =1;
  21.   delay1(20);
  22.   SDA =0;
  23.   SCL=0;  
  24.   delay1(10);
  25. }

  26. /***********************************函數(shù)功能:停止ADC通信 **************************************/
  27. void StopADcom()
  28. {
  29.   SDA=0;
  30.   delay1(10);
  31.   SCL=1;
  32.   delay1(20);
  33.   SDA=1;
  34.   delay1(10);
  35. }
  36. /******************************** 函數(shù)功能:單字節(jié)SPI傳輸 **************************************/
  37. void Send_Byte(uchar byte)
  38. {
  39.   uchar i;
  40.   for(i=0;i<8;i++)
  41.     {
  42.           if((byte<<i)&0x80)
  43.                   SDA=1;
  44.       else
  45.                   SDA=0;
  46.           delay1(5);
  47.           SCL=1;
  48.           delay1(10);
  49.       SCL=0;        
  50.       delay1(10);              
  51.         }
  52.   delay1(5);
  53.   SDA=1;
  54.   delay1(5);
  55.   SCL=1;
  56.   delay1(10);
  57.   SCL=0;
  58.   delay1(10);  
  59. }
  60. /***************************函數(shù)功能:讀取一個字節(jié) *******************************/
  61. uchar Read_Byte()
  62. {
  63.   uchar temp=0;
  64.   uchar i;
  65.   for(i=0;i<8;i++)
  66.     {
  67.           temp=temp<<1;           //shift left to receive next bit
  68.           SCL=0;                        //set clock high
  69.           delay1(10);
  70.           SCL=1;
  71.           delay1(5);
  72.           if(SDA==1)                //check if Data=high  如果有數(shù)據(jù)到來               
  73.           temp|=0x01;            //yes - set bit high
  74.       delay1(10);               
  75.     }
  76.   SCL=0;
  77.   delay1(5);
  78.   SDA=0;
  79.   delay1(5);
  80.   SCL=1;
  81.   delay1(20);
  82.   SCL=0;
  83.   delay1(5);
  84.   SDA=1;
  85.   return temp;
  86. }
  87. /**************************函數(shù)功能:配置AD轉(zhuǎn)換芯片 *************************************/
  88. void Confige1115(uint config)
  89. {
  90.   uchar i=0;

  91.   Initdata[0] =0x90;       // 地址 + 寫命令
  92.   Initdata[1] =0x01;       // 指向配置寄存器
  93.   Initdata[2] = (uchar)(config>>8);   // 配置字高字節(jié)
  94.   Initdata[3] = (uchar)config;       // 配置字低字節(jié),860sps,disable comparator
  95.   SCL=1;
  96.   StartADcom();
  97.   for(i=0;i<4;i++)
  98.     {
  99.           Send_Byte(Initdata[i]);
  100.       delay1(20);
  101.         }
  102.   StopADcom();
  103. }
  104. /*********函數(shù)功能:指向轉(zhuǎn)換結(jié)果寄存器 ***************************/
  105. void Pointregister(void)
  106. {
  107.   uchar i=0;
  108.   Initdata[0] =0x90;           // 地址 + 寫命令
  109.   Initdata[1] =0x00;            // 指向轉(zhuǎn)換結(jié)果寄存器
  110.   SCL=1;
  111.   StartADcom();
  112.   for(i=0;i<2;i++)
  113.     {
  114.           Send_Byte(Initdata[i]);
  115.       delay1(20);
  116.         }
  117.   StopADcom();
  118.   delay1(10);
  119. }
  120. /***********************************************************************************************
  121. 函數(shù)功能:讀AD轉(zhuǎn)換結(jié)果
  122. ************************************************************************************************/
  123. uint Read1115(void)
  124. {
  125.   uchar   ResultL,ResultH;
  126.   uint    Result;
  127.   Initdata[0] =0x91;         // 地址 + 讀命令
  128.   SCL=1;
  129.   StartADcom();
  130.   delay1(10);
  131.   Send_Byte(Initdata[0]);
  132.   delay1(20);
  133.   ResultH=Read_Byte();
  134.   delay1(10);
  135.   ResultL=Read_Byte();         
  136.   StopADcom();
  137.   Result=ResultH*256+ResultL;   
  138.   return   Result;
  139. }

  140. /*****模擬量采集轉(zhuǎn)化為數(shù)字量*****************/
  141. uint Ad_1115()                        
  142. {
  143.     uint result_gd;
  144.     Pointregister();               
  145.     delay1(10);
  146.         result_gd=Read1115();             //結(jié)果存儲AD轉(zhuǎn)化值
  147.     return result_gd;
  148. }

  149. uint ADC_GET_AV(uchar num)
  150. {
  151.         uchar i, j;
  152.         uint adc, temp;
  153.         ulong Result_sum;
  154.         
  155.         Result_sum = 0;
  156.         
  157.         for(i = 0; i < num; i++)
  158.                 ADC_Result[i] = Ad_1115();
  159.         
  160.         for (i = 0; i < num - 1; i++)
  161.                 for (j = 0; j < num - 1 - i; j++)
  162.                         if (ADC_Result[j] > ADC_Result[j + 1])
  163.                         {
  164.                                 temp = ADC_Result[j];
  165.                                 ADC_Result[j] = ADC_Result[j + 1];
  166.                                 ADC_Result[j + 1] = temp;
  167.                         }
  168.                                 
  169.         for(i = 8; i < 12; i++)
  170.                 Result_sum += ADC_Result[i];
  171.         adc = Result_sum / 4;
  172.         
  173.         return adc;
  174. }
復制代碼



上圖資料51hei附件下載:
ADS1115資料.7z (3.22 MB, 下載次數(shù): 162)


作者: love51_hello123    時間: 2021-10-7 09:48
你的ADS1115的板子弄好了嗎,差分電壓精度如何?是否供電5V,才能測量5V?
作者: AiceQueen    時間: 2021-11-1 12:43
你好,你的uart.c .h能分享一下么




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 在线91 | 久久久一二三 | 麻豆国产一区二区三区四区 | 久久99精品视频 | 中文字幕av中文字幕 | 国产精品成人在线播放 | 成人亚洲视频 | 欧美mv日韩mv国产网站91进入 | 中文字幕乱码一区二区三区 | 狠狠操婷婷 | 成人在线免费观看av | 欧美日韩在线精品 | 五月激情婷婷在线 | 久久人体视频 | 嫩草懂你的影院入口 | 国产精品国产成人国产三级 | 黄色av网站在线观看 | 久久久久久蜜桃一区二区 | 午夜免费观看网站 | 亚洲九九精品 | 成人免费淫片aa视频免费 | 一区二区三区中文字幕 | 久久国产精品网 | 亚洲第一免费播放区 | 日韩色在线 | 伊人免费在线观看高清 | 欧美亚洲激情 | 99热精品国产 | 欧美一级在线观看 | 午夜合集 | 99精品99久久久久久宅男 | 日本久久精品视频 | 99久久久无码国产精品 | 久久草在线视频 | 欧美日韩最新 | hsck成人网 | 久久久久国产精品人 | 欧州一区 | 国产成人精品999在线观看 | 精品一区二区电影 | 久久久久久久久国产 |