模数转换器ADS112C04

本文详细介绍了使用IIC接口控制ADS112C04模数转换器的方法,包括写寄存器、读寄存器、启动、复位和读取数据等关键操作。通过具体的C语言函数实现,为嵌入式系统中ADC模块的配置与数据读取提供了实用的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IIC函数见前篇博客

#define ADD_ADS112C04_write 0x80
#define ADD_ADS112C04_read 0x81
#define START 0x08           
#define POWERDOWN 0x02         
#define RDATA 0x10        
#define RESET 0x06
#define WREG_0 0x40
#define WREG_1 0x44
#define WREG_2 0x48
#define WREG_3 0x4c
#define RREG_0 0x20
#define RREG_1 0x24
#define RREG_2 0x28
#define RREG_3 0x2c
void WriteReg(unsigned char adds,unsigned char val)
{	
	IIC_start();
	IIC_writebyte(ADD_ADS112C04_write);
	IIC_testACK();
	IIC_writebyte(adds);
	IIC_testACK();
	IIC_writebyte(val);
	IIC_testACK();
	IIC_stop();
}
unsigned char ReadReg(unsigned char adds)
{
	unsigned char v;
	IIC_start();
	IIC_writebyte(ADD_ADS112C04_write);
	IIC_testACK();
	IIC_writebyte(adds);
	IIC_testACK();
	IIC_start();    // Repeated START condition
	IIC_writebyte(ADD_ADS112C04_read);
	IIC_testACK();
	v=IIC_readebyte();
	IIC_masterNACK();
	IIC_stop();
	return v;
} 
void ADS_Start()
{
	IIC_start();
	IIC_writebyte(ADD_ADS112C04_write);
	IIC_testACK();
	IIC_writebyte(START);
	IIC_testACK();
	IIC_stop();
}
void ADS_PowerDown()
{
	IIC_start();
	IIC_writebyte(ADD_ADS112C04_write);
	IIC_testACK();
	IIC_writebyte(POWERDOWN);
	IIC_testACK();
	IIC_stop();
}
void ADS_Reset()
{
	IIC_start();
	IIC_writebyte(ADD_ADS112C04_write);
	IIC_testACK();
	IIC_writebyte(RESET);
	IIC_testACK();
	IIC_stop();
}

int ReadData()
{
	int v;unsigned char i=0,j=0;
	IIC_start();
    IIC_writebyte(ADD_ADS112C04_write);
    IIC_testACK();
    IIC_writebyte(RDATA);
    IIC_testACK();
    IIC_start();    // Repeated START condition
    IIC_writebyte(ADD_ADS112C04_read);
    IIC_testACK();
    i=IIC_readebyte();          
    IIC_masterACK();
    j=IIC_readebyte();          
    IIC_masterNACK();
    IIC_stop();
	v=i;
	v=v<<8;
	v=v|j;
	return v;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值