搜索
bottom↓
回复: 4

[求助]AD7190的初始化问题

[复制链接]

出0入0汤圆

发表于 2010-4-16 21:55:44 | 显示全部楼层 |阅读模式
最近在利用AD7190做数据采集,前向通道的输入电压范围为单端0-4V,在AD7190的初始化里配置AD7190为AIN1接+,AINCOM接信号地,同时选择unbuffer模式,打算参考电压为5V,所以Gain选择为1,望大虾们能否帮看下我的AD7190的初始化部分的编程是否正确,以下是我的源程序,最后利用查询方式串口传回数据,见mian()部分

#include"reg51.h"
#include"string.h"

sbit   AD_DIN=P1^7;
sbit   AD_RDY=P1^5;
sbit    AD_DOUT=P1^5;
sbit    AD_CLK=P1^6;
#define uchar unsigned char



/*********************延时函数**********************************/
void delay(unsigned int time)
{
  unsigned int s;
  for(s=0;s<time;s++);   
}

//=============写一个字节======================//  
   void  AD7190_Write( unsigned char temp)
  {  
    unsigned char   loop;
    for(loop=0;loop<8;loop++)
{   
     if(temp&0x80) AD_DIN=1;
  else  AD_DIN=0;
     AD_CLK=0;
  AD_CLK=1;
  temp=temp<<1 ;
    }
    AD_CLK=1;
    AD_DIN=0;
  }
//===============读一个字节==========================//
   unsigned  char  AD7190_Read(void)
   {   
  unsigned  char  recdata;
     unsigned  char   loop;
   recdata="0";
     for(loop=0;loop<8;loop++)
     {  
  AD_CLK=0;  
  recdata=recdata<<1;  
  if(AD_DOUT) recdata="recdata" +1;   
  AD_CLK=1;
  }
  return (recdata);  
   }
  
//==================AD7190初始化=================================//
void  AD7190_init (void)
{
    AD7190_Write(0Xff);
    AD7190_Write(0Xff);
    AD7190_Write(0Xff);
    AD7190_Write(0Xff);
    AD7190_Write(0Xff);//refer to datasheet P34 --reset
    delay(100); //延时函数

    while( AD_RDY);
    AD7190_Write(0X10);//选择Configuration  regisster(24 bit,with 3 turns)
    AD7190_Write(0x80);//chop enabled
    AD7190_Write(0x10);//选择AIN1 to AINCOM  channel
    AD7190_Write(0x08);//unbuffer model,current关闭,gain =1 ,单极性  

    while( AD_RDY);
    AD7190_Write(0x08);//选择模式寄存器,内部零点校准(24 bit,with 3 turns)
    AD7190_Write(0x88);//Internal zero-scale calibration  Model
    AD7190_Write(0x00);
    AD7190_Write(0x01);  
    while( AD_RDY);
    AD7190_Write(0x08);//选择模式寄存器,内部满量程校准(24 bit,with 3 turns)
    AD7190_Write(0xa8);//Internal full-scale calibration Model
    AD7190_Write(0x00);
    AD7190_Write(0x01);  

    while( AD_RDY);
    AD7190_Write(0x08);//选择模式寄存器(24 bit,with 3 turns)
    AD7190_Write(0x08);//连续转换模式
    AD7190_Write(0x00);
    AD7190_Write(0x18);//Filter output data rate select
}
//========================读数据=====================//
unsigned int Read_AD7190(void)
{
unsigned long AD_result;
    AD7190_Write(0x58);
    AD_result= AD7190_Read();
    AD_result=AD_result<<8;
    AD_result= AD7190_Read()+ AD_result;
    AD_result=AD_result<<8;
    AD_result= AD7190_Read()+ AD_result;
    return   AD_result;
}

/*************************串口发送数据****************/
void uart1(long temp)
{
    unsigned char c,d,e,f;
    c="temp";     //最低位
    d="temp">>8;  //倒数第二位
    e="temp">>16;
    f="temp">>24;  
    TI=0;
    SBUF=c;
    while(!TI);
    TI=0;
    SBUF=d;
    while(!TI);
    TI=0;
    SBUF=e;
    while(!TI);
    TI=0;
    SBUF=f;
   while(!TI);
}

void main(void)
{
    long  out;
    AD7190_init();

  //串行口的初始化;P196
    SCON="0X70";
    PCON="0X80";
    TMOD="0x21" ;
    TH1=0XF5;  
    TL1=0XF5;
    TR1=1;//启动计数
    EA="1";//开总中断

    while(1)
    {   
     while(AD_RDY);
     out= Read_AD7190();
     uart1(out);
  }
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2010-4-17 14:39:47 | 显示全部楼层
很深奥,我来帮小鹏人工置顶。

出0入0汤圆

发表于 2010-8-17 15:47:16 | 显示全部楼层
LZ是什么问题?  我目前也是在用这类AD  但读不出数据  就简单得ID号都读不出来

出0入0汤圆

发表于 2010-11-26 10:28:53 | 显示全部楼层
为什么我的AD7190数据总是写入不了ADC数据寄存器呢?

出20入25汤圆

发表于 2019-8-9 09:50:45 | 显示全部楼层
jingji 发表于 2010-11-26 10:28
为什么我的AD7190数据总是写入不了ADC数据寄存器呢?

一定注意有个复位,发送40个1
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 06:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表