• 大小: 13KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: 其他
  • 标签: ADS1252  24bitAD  

资源简介

ADS1252 高精度的24bitAD 在430上测试过,希望对大家有帮助啊,好东西大家一起分享啊

资源截图

代码片段和文件信息

#include 
#include 
#include 
#define uint unsigned int
#define uchar unsigned char


sbit CPU_CLK=P1^0;
sbit SCLK=P3^5;
sbit Dout=P3^3;

//24位的数据分别存放于ads_data3/ads_data2/ads_data1
unsigned char idata ads_data3; //define variable in internal RAM
unsigned char idata ads_data2; //define variable in internal RAM
unsigned char idata ads_data1; //define variable in internal RAM

void Read_chip(void);

void main(void)

unsigned long int a=0;
uint j=0; 
while(1) 
{
_nop_();
Read_chip(); 
 
UART_init();  //初始化串口
  if(point==10)  //判断数据是否接收完成
  checkdata=CLU_checkdata;  //调用求校验和函数
  if(checkdata==buffer[9])      //判断校验和是否正确
  COM_send();
               //正确则调用发送程序

point=0;




a+=ads_data3; 
a=(a<<8);
a+=ads_data2;
a=(a<<8);
a+=ads_data1;
_nop_();

}
}

void Read_chip(void)
{
unsigned char data i;
unsigned char data temp1;
// temp1=0x01;
temp1=0x80; 

SCLK=0;
CPU_CLK=0;
//DRDY 模式 
for(i=0;i<48;i++) CPU_CLK=~CPU_CLK; //t4
for(i=0;i<12;i++) CPU_CLK=~CPU_CLK; //t2
for(i=0;i<12;i++) CPU_CLK=~CPU_CLK; //t3
//DOUT 模式 
//在SCLK 的下降沿获取数据 
// CPU_CLK=1;
// CPU_CLK=0;
SCLK=1;
CPU_CLK=1;
CPU_CLK=0;
SCLK=0; //++++++
if(Dout==1) ads_data3+=temp1; 
temp1=(temp1>>1);
for(i=0;i<7;i++)

SCLK=1;
// SCLK=0;
CPU_CLK=1;
CPU_CLK=0;
CPU_CLK=1;
CPU_CLK=0;
// SCLK=1;
SCLK=0;
CPU_CLK=1;
CPU_CLK=0; 
if(Dout==1) ads_data3+=temp1;
// temp1=(temp1<<1);
// ads_data3=(ads_data3<<1);
CPU_CLK=1;
CPU_CLK=0;
temp1=(temp1>>1);
}
// temp1=0x01;
temp1=0x80;
for(i=0;i<8;i++)

SCLK=1;
// SCLK=0;
CPU_CLK=1;
CPU_CLK=0;
CPU_CLK=1;
CPU_CLK=0;
// SCLK=1;
SCLK=0;
CPU_CLK=1;
CPU_CLK=0; 
if(Dout==1) ads_data2+=temp1;
// temp1=(temp1<<1);
// ads_data3=(ads_data2<<1);
CPU_CLK=1;
CPU_CLK=0;
temp1=(temp1>>1);
}
// temp1=0x01;
temp1=0x80;
for(i=0;i<8;i++)

SCLK=1;
// SCLK=0;
CPU_CLK=1;
CPU_CLK=0;
CPU_CLK=1;
CPU_CLK=0;
// SCLK=1;
SCLK=0;
CPU_CLK=1;
CPU_CLK=0; 
if(Dout==1) ads_data1+=temp1;
// temp1=(temp1<<1);
// ads_data3=(ads_data1<<1);
CPU_CLK=1;
CPU_CLK=0;
temp1=(temp1>>1);
}
SCLK=0;
for(i=0;i<176;i++)
CPU_CLK=~CPU_CLK;
for(i=0;i<176;i++)
CPU_CLK=~CPU_CLK;
for(i=0;i<176;i++)
CPU_CLK=~CPU_CLK;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2331  2006-09-10 13:30  ads1252\ads1252.c

     文件         62  2006-09-05 16:22  ads1252\ads1252.lnp

     文件       5390  2006-09-10 13:30  ads1252\ads1252.LST

     文件       8282  2006-09-05 16:22  ads1252\ads1252.M51

     文件       1030  2006-09-10 13:31  ads1252\ads1252.Opt

     文件        231  2006-09-10 13:41  ads1252\ads1252.plg

     文件       2154  2006-09-10 13:31  ads1252\ads1252.Uv2

    .......      1029  2006-09-05 16:24  ads1252\ads1252_Opt.Bak

    .......      2154  2006-09-05 16:24  ads1252\ads1252_Uv2.Bak

     文件       6376  2005-03-22 15:22  ads1252\STARTUP.A51

     文件      14051  2006-09-10 13:30  ads1252\STARTUP.LST

     文件        758  2006-09-10 13:30  ads1252\STARTUP.OBJ

     目录          0  2006-09-10 13:31  ads1252

----------- ---------  ---------- -----  ----

                44066                    14


评论

共有 条评论