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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

ADS1115模塊原理圖PCB以及單片機程序源碼分享

[復制鏈接]
跳轉到指定樓層
樓主
這是前段時間我個人制作的一塊ADS1115模塊
測試性能良好,誤差較小
附件有原理圖PCB和測試數據
屬個人制作,請多多指教

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. /*************************************函數功能:開始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. /***********************************函數功能:停止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. /******************************** 函數功能:單字節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. /***************************函數功能:讀取一個字節 *******************************/
  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  如果有數據到來               
  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. /**************************函數功能:配置AD轉換芯片 *************************************/
  88. void Confige1115(uint config)
  89. {
  90.   uchar i=0;

  91.   Initdata[0] =0x90;       // 地址 + 寫命令
  92.   Initdata[1] =0x01;       // 指向配置寄存器
  93.   Initdata[2] = (uchar)(config>>8);   // 配置字高字節
  94.   Initdata[3] = (uchar)config;       // 配置字低字節,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. /*********函數功能:指向轉換結果寄存器 ***************************/
  105. void Pointregister(void)
  106. {
  107.   uchar i=0;
  108.   Initdata[0] =0x90;           // 地址 + 寫命令
  109.   Initdata[1] =0x00;            // 指向轉換結果寄存器
  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. 函數功能:讀AD轉換結果
  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. /*****模擬量采集轉化為數字量*****************/
  141. uint Ad_1115()                        
  142. {
  143.     uint result_gd;
  144.     Pointregister();               
  145.     delay1(10);
  146.         result_gd=Read1115();             //結果存儲AD轉化值
  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, 下載次數: 162)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:961328 發表于 2021-10-7 09:48 | 只看該作者
你的ADS1115的板子弄好了嗎,差分電壓精度如何?是否供電5V,才能測量5V?
回復

使用道具 舉報

板凳
ID:957480 發表于 2021-11-1 12:43 | 只看該作者
你好,你的uart.c .h能分享一下么
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品日韩一区二区 | 亚洲巨乳自拍在线视频 | 国产精品区一区二区三区 | 国产一区免费 | 免费观看一级特黄欧美大片 | 欧美一a一片一级一片 | 色综合一区二区三区 | 特黄毛片 | 久久亚洲一区 | 免费黄色a级毛片 | 中文字幕日韩欧美一区二区三区 | 夜夜爽99久久国产综合精品女不卡 | 精品国产乱码一区二区三区a | 91精品国产91久久久久久吃药 | 午夜电影一区 | 久久不射电影网 | 做a视频 | 欧美激情网站 | 精品一二三 | 奇米av| 亚洲午夜精品一区二区三区他趣 | 午夜精品久久久 | 欧美一级大片 | 日韩福利在线 | 国产成人短视频在线观看 | 亚洲欧美视频一区二区 | 美女爽到呻吟久久久久 | 久久久亚洲综合 | 免费在线黄 | 国产视频1区2区 | 亚洲精品在线观看网站 | 美日韩免费视频 | 久久69精品久久久久久久电影好 | 精品一区电影 | 日韩精品一区二区三区中文在线 | 99精品一区二区三区 | 国产精品一区二区不卡 | 国产免费观看一区 | 免费激情av | 久草视频在线播放 | 国产精品精品久久久 |