资源简介
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
- 上一篇:山石防火墙模拟器
- 下一篇:51单片机开发板原理图及PCB版图.rar
评论
共有 条评论