//单片机型号:STC15W408AS
// 电压 :3.3V
//内部RC振荡:11.0592M
#include "STC15F2K60S2.H"
#include "ADS1115.h"
#include "stdio.h"
#include "uart.h"
#define RATIO 0.1877
#define u8 unsigned char
#define u16 unsigned int
#define s16 signed int
sbit LED = P3^0;
sbit LCD_EN=P0^0;
sbit LCD_RW=P0^1;
sbit LCD_RS=P0^2;
#define LINE1_COLUMN(x) 0x7f+x
#define LINE2_COLUMN(x) 0xbf+x
#define LCD_DATAPORT P2
void delay_ms(u16 nms)
{
u16 x,y;
for(x=nms;x>0;x--)
for(y=120;y>0;y--);
}
void LCD1602_WriteCMD(u8 cmd)//LCD1602写命令函数
{
LCD_RS=0;
LCD_DATAPORT=cmd;
delay_ms(1);
LCD_EN=1;
delay_ms(1);
LCD_EN=0;
}
void LCD1602_WriteData(u8 dat)//LCD1602写数据函数
{
LCD_RS=1;
LCD_DATAPORT=dat;
delay_ms(1);
LCD_EN=1;
delay_ms(1);
LCD_EN=0;
}
void display_char(u8 addr,u8 chr)
{
LCD1602_WriteCMD(addr);
LCD1602_WriteData(chr);
}
/**void clear_char(u8 addr,u8 n)
{
u8 i;
// if(dir==1)
LCD1602_WriteCMD(0x06);//地址指针自动加一
// else
// LCD1602_WriteCMD(0x04);//地址指针自动减一
LCD1602_WriteCMD(addr);//设置地址
for(i=0;i<n;i++)
LCD1602_WriteData(' ');
}
******往指定位置显示字符串*****************
void display_string(u8 addr,u8 *p)
{
LCD1602_WriteCMD(0x0c);//关闭光标显示
LCD1602_WriteCMD(0x06);//地址指针自动加一
LCD1602_WriteCMD(addr);//设置地址
while(*p)//由于字符串的末尾是一个ASCII值为的0符号,当*p==0时,代表该字符串写完
{
LCD1602_WriteData(*p);//写入要显示的字符
p++;
}
}
*******************************************/
void display_num4(u8 addr,u16 num)
{
u8 qian,bai,shi,ge;
qian= num/1000;
bai = num/100%10;
shi = num/10%10;
ge = num%10; //变量分离
display_char(addr,qian+'0');
display_char(addr+1,'.');
display_char(addr+2,bai+'0');
display_char(addr+3,shi+'0');
display_char(addr+4,ge+'0');
}
void LCD_Init(void)
{
LCD_EN=0;//打开片选
LCD_RW=0;//读写控制,1:读
// 0:写 这里只写,不读
LCD1602_WriteCMD(0x38);
LCD1602_WriteCMD(0x0e);
LCD1602_WriteCMD(0x06);//地址指针自动加一,且光标加一
LCD1602_WriteCMD(0x01);
LCD1602_WriteCMD(0x80);
}
/*
*********************************************************************************************************
* 函 数 名: DelayMs
* 功能说明: 时钟延时
* 形 参: ms 以毫秒为单位.
* 返 回 值: 无
*********************************************************************************************************
*/
void DelayMs( unsigned int ms)
{
unsigned int i,j;
for (i = 0; i < ms; i++)
for(j=0;j<125;j++);
}
void main()
{
u16 adc;
LCD_Init();
display_num4(LINE1_COLUMN(1),1698);
while(1)
{
LED =!LED;
adc = Read_ADS1115(BASE| MUX_A0|SPS128|PGA_6144); //读取A0 通道,单端模式,速率 128,PGA +-6.144V
display_num4(LINE1_COLUMN(1),adc*RATIO);
adc = Read_ADS1115(BASE| MUX_A1|SPS128|PGA_6144);//读取A1 通道,单端模式,速率 128,PGA +-6.144V
// display_num4(LINE1_COLUMN(6),adc/10);
display_num4(LINE1_COLUMN(8),adc*RATIO);
adc = Read_ADS1115(BASE| MUX_A2|SPS128|PGA_6144);//读取A2 通道,单端模式,速率 128,PGA +-6.144V
display_num4(LINE2_COLUMN(1),adc*RATIO);
adc = Read_ADS1115(BASE| MUX_A0A3|SPS128|PGA_6144);//读取A3 通道,单端模式,速率 128,PGA +-6.144V
display_num4(LINE2_COLUMN(8),adc*RATIO);
DelayMs(2000); //延时
}
}
ADS1115模数转换模块
需积分: 0 198 浏览量
更新于2024-05-10
收藏 106KB ZIP 举报
**ADS1115模数转换模块**是用于将模拟信号转换为数字信号的设备,广泛应用于各种电子系统中,特别是在物联网(IoT)、工业自动化、医疗设备和智能家居等领域。该模块基于德州仪器(Texas Instruments)的ADS1115芯片,这是一款高精度、低功耗的12位模数转换器(ADC)。
ADS1115的主要特点包括:
1. **12位分辨率**:提供高达24位有效分辨率的内部增益设置,可以精确地测量微小的电压变化。
2. **4个输入通道**:支持4个独立的模拟输入通道(CH0-CH3),可以同时或单独进行测量。
3. **多种可配置增益**:增益设置范围为±6.144V到±0.625V,适用于不同量程的信号。
4. **低功耗**:在低功耗模式下,电流消耗仅为μA级别,适合电池供电或能量受限的系统。
5. **I²C接口**:通过标准的I²C串行接口与微控制器通信,简化了系统集成。
6. **高速转换速率**:转换速率可设置为8.6次/秒至860次/秒,可根据应用需求灵活选择。
7. **温度感应**:内置温度传感器,可测量芯片自身的温度。
**软件/插件**标签表明,该压缩包可能包含了用于编程和控制ADS1115模块的软件工具,如驱动程序、库文件和示例代码。这些资源通常帮助开发者快速集成ADS1115到他们的项目中,无论是嵌入式系统还是PC应用。
在实际应用中,开发人员通常会使用如Arduino、Raspberry Pi或Python等平台来编写代码,利用I²C库与ADS1115通信。代码可能包括初始化ADC、配置通道、读取转换结果和处理数据等功能。同时,原理图文件可以帮助硬件工程师理解模块的电路设计,以便于在系统级进行适配和调试。
例如,`艾尔赛ADS1115模数转换模块`的压缩包中可能包含以下文件:
1. `ADS1115.h` - C语言或C++库头文件,定义了ADS1115的接口函数。
2. `ADS1115.cpp` - 实现库函数的源代码。
3. `ADS1115_example.ino` - Arduino平台的示例代码,展示如何使用库进行基本操作。
4. `ADS1115_schematic.pdf` - 原理图文件,显示了模块的电路布局。
5. `README.md` - 文件说明文档,介绍如何安装和使用软件资源。
通过这些文件,开发者能够快速了解并开始使用ADS1115模数转换模块,将其功能充分利用到自己的设计中。无论是在实时监控环境变量、获取传感器数据还是实现其他需要精确模拟信号数字化的应用,ADS1115都是一个可靠且经济的选择。
sunsoldeir1
- 粉丝: 6819
- 资源: 21
最新资源
- java全大撒大撒大苏打
- pca20241222
- LabVIEW实现LoRa通信【LabVIEW物联网实战】
- CS-TY4-4WCN-转-公版-XP1-8B4WF-wifi8188
- 计算机网络期末复习资料(课后题答案+往年考试题+复习提纲+知识点总结)
- 从零学习自动驾驶Lattice规划算法(下) 轨迹采样 轨迹评估 碰撞检测 包含matlab代码实现和cpp代码实现,方便对照学习 cpp代码用vs2019编译 依赖qt5.15做可视化 更新:
- 风光储、风光储并网直流微电网simulink仿真模型 系统由光伏发电系统、风力发电系统、混合储能系统(可单独储能系统)、逆变器VSR+大电网构成 光伏系统采用扰动观察法实现mppt控
- (180014016)pycairo-1.18.2-cp35-cp35m-win32.whl.rar
- (180014046)pycairo-1.21.0-cp311-cp311-win32.whl.rar
- DS-7808-HS-HF / DS-7808-HW-E1