网站公告列表

  没有公告

加入收藏
设为首页
联系本站
您现在的位置: AnalogCN安诺电子 >> 文章 >> 技术交流 >> 文章正文
  AD7714 C语言程序           ★★★ 【字体:
AD7714 C语言程序
作者:佚名    文章来源:Internet    点击数:    更新时间:2008-5-4    
//-----------------------------------------------------------------------------
// AD7714.C
//-----------------------------------------------------------------------------
// AUTH: wjxiao
// DATE: 2006.3.27
//
// (1) AD7714应用程序
// (2) CPU: C8051F020
// (3) SPI0 查询方式
// (4) 硬件连接
//        P0.0 - SCK  (connected to SCK on EEPROM)
//         P0.1 - MISO (connected to SI on EEPROM)
//         P0.2 - MOSI (connected to SO on EEPROM)
//         P0.3 - NSS  (unconnected, but pulled high by on-chip pull-up resistor)
//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------

#include <c8051f020.h>                 // SFR declarations

//======================================================================================
// SPI 写指令
//--------------------------------------------------------------------------------------

void SPI_Write(uchar dat)
{
   // transmit read MSB-first

   SPIF = 0;                           // transmit MSB of address
   SPI0DAT = dat;
   while (SPIF == 0);
}        
//======================================================================================
// SPI 读一个字节
//--------------------------------------------------------------------------------------
uchar SPI_Read(void)
{
   // initiate dummy transmit to read data
   SPIF = 0;
   SPI0DAT = 0xff;
   while (SPIF == 0);

   return SPI0DAT;
}
//======================================================================================
// AD7714 初始化
//--------------------------------------------------------------------------------------
sbit INT1 = P0^7;

uint AD7714_AD(char ch)
{
    uint idata ad;

    SPI_Write(0x58+ch);    
    while(!INT1);
    while(INT1);
    while(!INT1);
    while(INT1);
    ad = (SPI_Read())<<8;
    ad += SPI_Read();
    return ad;
}
void AD7714_Init(void)
{
    char i,a,b;
    INT1 = 1;                                    
    for(i=0;i<7;i++)    //    五个通道相同
    {
        if(i==4 || i==5) continue;

        SPI_Write(0x20 + i);    // 设置滤波器高寄存器:16位数据、单极性
        SPI_Write(0x81);
        SPI_Write(0x30 + i);    // 设置滤波器低寄存器:第一个凹口频率为50HZ
        SPI_Write(0x80);
    }
    
    for(i=0;i<3;i++)    
    {
        SPI_Write(0x10 + i);    // 模式寄存器: 自校准
        SPI_Write(0x28);        // 增益=4
        while(INT1);  
        while(!INT1);
    }
    /*
    SPI_Write(0x12);            // 模式寄存器: 自校准
    SPI_Write(0x20);            // 增益=1
    while(INT1);  
    while(!INT1);
    */
    SPI_Write(0x28);
    a=SPI_Read();
    SPI_Write(0x38);
    b=SPI_Read();    
}
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    前置放大器在移动医疗服务系
    便携式多通道大容量生理信号
    防腐监测仪的设计与应用
    基于AD1674的酶标仪的设计
    基于C/S模式的JRTPLIB库的测
    ffmpeg与jrtplib相结合应用
    blackfin模拟摄像头驱动中的
    可编程逻辑在数字信号处理系
    发现VDSP4.5一个BUG:单步调
    VDSP5.0双核工程下sml3中的变
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    版权所有:AnalogCN安诺电子 湘ICP备06016315号