ADS1118驱动代码测试

本文档详细介绍了ADS1118的驱动代码实现,包括初始化、读取电压和温度的函数。通过ADS1118.C和ADS1118.H文件的解析,展示了如何进行SPI通信,获取模拟输入通道的电压值,并提供了主函数的调用示例。请注意在实际应用中,ADS1118的DOUT引脚应连接适当阻值的限流电阻,如1K欧姆。
摘要由CSDN通过智能技术生成

首先看一下ADS1118.C文件

#include "ADS1118.H"
extern void  DelayMs(unsigned int i);
unsigned char ADS1118_Read(unsigned char data1);
void ADS1118_Get_Voltage(void);
/*
初始化ADS1118器件
*/
void ADS1118_init(void)
{
 u8 i=0;
 ADS1118_CS_OUT; //CS配置为推挽输出
 ADS1118_CLK_OUT; //CLK配置为推挽输出
 ADS1118_IN_OUT; //配置为推挽输出
 ADS1118_OUT_IN; //配置为数字输入模式
 SET_ADS1118_CS;
 CLR_ADS1118_CLK;
 DelayMs(10);
 CLR_ADS1118_IN;
 i=200;
 while(i--);
 CLR_ADS1118_CS;
 ADS1118_Get_Voltage();
}
/*
SPI为全双工通信方式
*/
unsigned char ADS1118_Read(unsigned char data1)
{
  unsigned char i;
unsigned char temp;
unsigned char Din;
  temp = data1;
  for(i=0;i<8;i++)
  {
Din = Din<<1;
if(0x80&temp)
SET_ADS1118_IN;
else
CLR_ADS1118_IN;
DelayMs(1);
SET_ADS1118_CLK;
DelayMs(1);
if(ADS1118_OUT)
Din |= 0x01;
 DelayMs(1);
 CLR_ADS1118_CLK;
DelayMs(1);
temp = (temp<<1);
  }
  return Din;
}
/*
ADS1118_Voltage : 用来记录ADS1118采样的电压
*/
float ADS1118_Voltage;
void ADS1118_Get_Voltage(void)
{
 unsigned int i=0;
 unsigned char Data_REG_H,D

  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值