打印
[资料分享]

ADS7841驱动-51单片机

[复制链接]
520|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xyz549040622|  楼主 | 2019-12-26 16:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/******************************************************************************
*
** 函数原型:unsigned int ADS7841_Read_Data(unsigned char Channel);
** 功    能:SPI总线的A/D ADS7841 驱动程序
** 入口参数:unsigned char Channel   表示选择读取通道
** 出口参数:unsigned int   返回所读取得12位数据。
** 说    明:ADS7841为12位A/D,先对其进行设置:数据位D0---D7,其中D0---D1是
**           设置ADC的功耗模式,D2是模拟输入通道设置,H为4个单通道,L为两个
**           差分输入,D3为mode,当mode(pin)接地时为12位采样方式,接高电平时
**           mode为1时8位采集,为0时12位采集,D4---D6为输入通道选择,D7为起始位
** 作   者: 绝鱼 nobody_008@163.com
** 日   期: 2006年11月11日
**-----------------------------------------------------------------------------
--------------------------
** 修 改 人: 绝鱼 nobody_008@163.com
** 日   期: 2006年11月06日
*******************************************************************************
/
unsigned int ADS7841_Read_Data(unsigned char
Channel)          //Channel=0:CH0;1:CH1;2:CH2;3:CH3;
{
        unsigned int ADCResult=0;
        unsigned char DataInput=0;
        unsigned char i,ADS7841_CHANNEL;
        
    switch (Channel)
    {
        case 0:ADS7841_CHANNEL=0x10;break;
        case 1:ADS7841_CHANNEL=0x50;break;
        case 2:ADS7841_CHANNEL=0x20;break;
        case 3:ADS7841_CHANNEL=0x60;break;
        default:ADS7841_CHANNEL=0x10;break;        
    }
    DataInput=ADS7841_S|ADS7841_CHANNEL|ADS7841_MODE|ADS7841_SGL_DIF|ADS7
841_POWER_DOWN;

        DCLK=0;
        DIN=0;
        CS=VALID;
        for(i=0; i<8; i++)
        {
          DIN=DataInput&0x80;
          DataInput=DataInput<<1;
          DCLK=0;
          NOP;
          DCLK=1;                       //模拟SPI串行接口 发送数据
        }
   NOP;
   DCLK=0;
              while(BUSY)
              {
   NOP;
   DCLK=1;
   NOP;
   DCLK=0;
             }  /*当BUSY脚由高变为低时,则开始数据输出*/
              NOP;
  for(i=0;i<12;i++)
  {
   DCLK=1;
  ADCResult=(ADCResult<<1)|DOUT;    //模拟SPI串行接口 接收数据
     DCLK=0;
     NOP;
   }
   for(i=0;i<4;i++)
  {
   DCLK=1;
   NOP;
   DCLK=0;
   NOP;
  }
        CS=INVALID;
        return ADCResult;
}


使用特权

评论回复

相关帖子

沙发
xyz549040622|  楼主 | 2019-12-26 16:17 | 只看该作者
ADS7841驱动-C51.doc (28.5 KB)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群: 嵌入式系统arm初学者 224636155←← +→→点击-->小 i 精品课全集,21ic公开课~~←←→→点击-->小 i 精品课全集,给你全方位的技能策划~~←←

2782

主题

19267

帖子

104

粉丝