资源简介
AD7940 14位AD转换芯片 可准确读取模拟量数据 周期约为4us

代码片段和文件信息
/*
********************************************************************************************************
* All Rights Reserved
* Version : V1.00
* Data : AD7940.C
* By : skeletonwei
* For : MSP430F5438
* Toolchain : IAR EverEdit
*********************************************************************************************************
*/
#include “..\config.h“
//参考电压选择内部5V
uint channel_x_data[6][100]; //二维数组存储6哥通道读取的AD值,每个通道每次采集100次,在求平均值
//其中最后一组数据位每个通道256次采样的数据之和
UINT32 skeltonwei;
void ad7940_init() /*AD7940和*CD4051B端口初始化*/
{
/*CD4051B端口配置*/
P6DIR |= BIT5; /*AD_EN*/
P6OUT |= BIT5; /*输出为高*/
P6DIR |= BIT6; /*AD_A0*/
P6OUT |= BIT6;
P6DIR |= BIT7; /*AD_A1*/
P6OUT |= BIT7;
P7DIR |= BIT4; /*AD_A2*/
P7OUT |= BIT4;
/*AD7940端口配置*/
P7DIR |= BIT5; /*AD_CS*/
P7OUT |= BIT5; /*输出为高*/
P7DIR |= BIT6; /*AD_CLK*/
P7OUT |= BIT6;
P7DIR &= ~BIT7; /*AD_SDATA作为数据输入*/
/*以下管脚配置为普通I/O*/
P6SEL &= ~BIT5; P6SEL &= ~BIT6; P6SEL &= ~BIT7;
P7SEL &= ~BIT4; P7SEL &= ~BIT5; P7SEL &= ~BIT6;
P7SEL &= ~BIT7;
}
/********************各通道使能(0-6)***************************/
void CH0_Enable(void) /*CBA=000 使能*/
{
AD_EN_ENABLE; /*CD4051使能*/
AD_A2_L;
AD_A1_L;
AD_A0_L;
delay_ms(5);
}
void CH1_Enable(void)
{
AD_EN_ENABLE; /*CD4051使能*/
AD_A2_L;
AD_A1_L;
AD_A0_H;
delay_ms(5);
}
void CH2_Enable(void)
{
AD_EN_ENABLE; /*CD4051使能*/
AD_A2_L;
AD_A1_H;
AD_A0_L;
delay_ms(5);
}
void CH3_Enable(void)
{
AD_EN_ENABLE; /*CD4051使能*/
AD_A2_L;
AD_A1_H;
AD_A0_H ;
delay_ms(5);
}
void CH4_Enable(void)
{
AD_EN_ENABLE; /*CD4051使能*/
AD_A2_H;
AD_A1_L;
AD_A0_L;
delay_ms(5);
}
void CH5_Enable(void)
{
AD_EN_ENABLE; /*CD4051使能*/
AD_A2_H;
AD_A1_L;
AD_A0_H;
delay_ms(5);
}
/**************AD7040驱动程序*******************/
uint AD7940_Read(void)
{
uint dat;
AD_CS_H;//初始CS线置为1
AD_CLK_H;//初始时钟线置为0
delay_ms(2);
AD_CS_L;//初始CS置为0,AD转换和数据传输同时开始
dat=AD7940_ReadByte();//读取要得到数据
AD_CLK_H;//时钟线拉高
delay_ms(2);
AD_CS_H;//读取结束,CS置为1,结束数据的传输
delay_ms(2);
return dat;//返回得到数据
}
/*************读取AD7940的数据,高位在前、低位在后*********************/
uint AD7940_ReadByte(void)
{
uint idat_bit=0;
delay_ms(500);
for(i=0;i<16;i++)/*包括前置零点一共16位数据*/
{
dat_bit<<=1;//要返回的数据左移一位
if(data_7940!=0)//当数据线为高时,证明该位数据为1
{
dat_bit|=0x0001;
}//要传输数据的当前值置为1若不是则为0
delay_us(1);
AD_CLK_L;//拉低时钟线
delay_us(2);
AD_CLK_H;//制造上升沿
delay_us(1);
}
return dat_bit;//返回读取出的数据
}
/******************************************************************************************
获得通道X的AD转换值
********************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10780 2013-09-12 09:52 AD7940.c
文件 1647 2013-09-06 13:26 AD7940.h
相关资源
- 基于STM32RCT6的步进电机驱动程序
- elantech触控板驱动程序 v13.6.11 官方最
- USB转串口驱动,FT232R驱动程序,最新
- WinCE下CP210x的驱动程序
- RA8806液晶驱动程序
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- windows ce 系统的GPIO驱动程序
- 2440 cs8900a 网卡驱动程序
- 探讨研华32位DLL驱动程序
- 多普达USB Modem驱动(适用于818、828、
- SX126x_LORA驱动程序(包含完整的工程文
- ch452串口键盘驱动程序
- Vxworks下网卡驱动程序的开发
- USB转串口(RS232/RS485/RS422)驱动程序文
- 映泰Biostar TA870网
- ASUS华硕K45VD|A45VD主板驱动程序 v9.3.0
- 华硕ASUS K42JZ BIOS主板驱动程序 v9.1.1
- ASUS华硕B85主板BIOS驱动程序 官方版
- Samsung三星R439-DS系列网卡驱动程序 v
- 索尼SONY VPCM125JC网卡驱动程序 v6.0.14
- 清华同方手写板万能驱动程序
- ASUS华硕a550笔记本电脑网卡驱动程序
- oppo智能手机adb驱动程序
- ACS读卡器USB驱动程序 v4.0 官方版
- 基于STM32F103C8单片机的晶联讯电子JL
- 手机usb通用驱动程序(手机USB万能驱
- broadcom 802.11g 网络适配器驱动程序 v
- 英特尔USB3.0可扩展主机控制器驱动程
- TD-SCDMA网络测试仪中E1数据采集卡的驱
- Lenovo ThinkPad T42笔记本电脑声卡驱动程
评论
共有 条评论