51 单片机实战教程(15 外围芯片驱动程序之AD7683芯片驱动)

48 篇文章 20 订阅

        前面已经介绍过AD芯片CS1237,这里再介绍一款ADC芯片AD7683。AD7683是一款16bit ADC芯片,虽然位数比CS1237少,但速度比CS1237快,标称是100kSPS。供电电压为2.5~5.5V,封装有MSOP与QFN两种。通信接口也是串口,兼容SPI/QSPI/MICROWIRE。应用场景为:数据获取、仪器仪表、医药仪器、电池供电的设备等。这款ADC芯片也比较适合用51单片机系统。它的管脚图如下:

Pin 脚功能如下:

SPI的时序图如下:

 相关时间参数如下:

 

现在来写他的驱动库函数。新建两个文件分别以ad683.h,ad683.c存入C51 Template文件夹下Library文件夹中。完成后的头文件如下:

/*ad7683.h
  Designed by Bill Liu
  Version 0.0 
  Modified last by Bill Liu on 12/12/2021
*/
#ifndef __AD7683_H__
#define __AD7683_H__


#include "mtype.h"
#include "delay.h"
#include "myport.h"//AD7863DCLK,AD7863CS,AD7863DOUT were defined

extern FSYSCLOCK FSCLK; //FSCLK was defined in main.h

/****************************************
Function: AD7683_InClk();
Return value: void
Discription: AD7683 input a clk
Example:
  AD7683_InClk();
****************************************/
void AD7683_InClk();

/****************************************
Function: AD7683_GetResult();
Return value: ui16
Discription: get AD7683 adc result
Example:
  ui16 tem = AD7683_GetResult();
****************************************/
ui16 AD7683_GetResult();

#endif

现在来完成源代码,在完成源代码之前,写注意这点:

 完成后的源代码如下:

/*ad7683.c
  Designed by Bill Liu
  Version 0.0 
  Modified last by Bill Liu on 12/12/2021
*/

#include "ad7683.h"

void AD7683_InClk()
{
	
		AD7863DCLK = 0;
		Delayxus(1,FSCLK);
		AD7863DCLK = 1;
		Delayxus(1,FSCLK);
}
//End of AD7683_InClk()

ui16 AD7683_GetResult()
{
	  ui8 i = 0;
		ui16 result = 0;
		AD7863CS = 0;
		Delayxus(1,8);
		for(i = 0; i< 6; i++)
		{
			AD7683_InClk();
		}
		for(i = 0; i < 16; i++)
		{
			result = result << 1;
			AD7683_InClk();
			if(AD7863DOUT)
				result++;
		}
		AD7863CS = 1;
		AD7683_InClk();
		AD7683_InClk();
	return result;
}
//End of AD7683_GetResult()

以上演示代码及AD7683的datasheet已打包上传到CSDN,文件名为AD7683 Driver Code.rar,如需离线查看可去下载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bill66

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值