/*******************************************************************************
\\\|///
\\ - - //
( @ @ )
+---------------------oOOo-(_)-oOOo-------------------------+
| |
| 因为专注,所以专业! |
| |
| 功能描述:ADC7606采集程序 |
| 创建时间: 2014.10.7 |
| 创 建 人: jnss |
| |
| |
| Oooo |
+-----------------------oooO--( )-------------------------+
( ) ) /
\ ( (_/
\_)
********************************************************************************/
/*===============================ADC7606=======================================*/
#include "AD7606.h" //端口的定义和外部函数的声明
int AD_rededata_16[8]; //用于存储有符号AD值
int AD_RecentDataXOUT[10],AD_RecentDataYOUT[10]; //保存10组AD数据
int AD_XOUTAverage,AD_YOUTAverage; //AD平均值
void init_AD7606_port() //430输入输出端口的初始化
{
P7DIR|=BIT2+BIT3; //P1作为输出
P8DIR|=0xff; //P2作为输出
PEDIR|=0x0000; //PE作为输入
P1OUT|=0xFF;
P2OUT|=0x7F;
PEOUT=0x0000;
}
void init_PAR_AD7606()//并行数据读取初始化
{
// nSTBY_1 //断开待机模式
RANGE_1 //设置输入范围为+-10V
//RANGE_0 //设置输入范围为+-5V
//ST1_1//
//ST2_1
OS0_0 //关掉过采样率
OS1_0
OS2_0
// nPAR_0 //并行数据读取要求nPAR为【低】电平
}
void init_SER_AD7606()//串行数据读取初始化
{
// nSTBY_1 //断开待机模式
RANGE_1 //设置输入范围为+-10V
//RANGE_0 //设置输入范围为+-5V
//ST1_1
//ST2_1
OS0_0//关掉过采样率
OS1_0
OS2_0
// nPAR_1//串行数据读取要求nPAR为【高】电平
}
//延时函数
void delay(unsigned int n)
{
int i,j;
for(j=0;j<n;j++)
{for(i=200;i>0;i--);}
return;
}
void Rede_AD7606()
{//始能数据转换时序
RD_1
CS_1
COV_A_1
COV_B_1
RST_0
RST_1
RST_0
COV_A_0
COV_B_0
COV_A_1
COV_B_1
// delay(5);
while(ADBUSY);
CS_0
//数据读取时序
RD_0 //总线输出16位数据时间 T10>32ns
AD_rededata_16[0]=PEIN; //AD输出值为补码,因此可以不用人为区分正负
RD_1
RD_0
AD_rededata_16[1]=PEIN;
RD_1
RD_0
AD_rededata_16[2]=PEIN;
RD_1
RD_0
// AD_rededata_16[3]=PEIN;
RD_1
RD_0
// AD_rededata_16[4]=PEIN;
RD_1
RD_0
// AD_rededata_16[5]=PEIN;
RD_1
RD_0
// AD_rededata_16[6]=PEIN;
RD_1
RD_0
// AD_rededata_16[7]=PEIN;
RD_1
CS_1
}