⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad7705c.c

📁 单片机C语言教程
💻 C
字号:
/******************************************************************/
/* 这是用C51语言编的双通道16位A/D转换器AD7705驱动程序,文件名     */
/* 为AD7705C.C                                                    */
/* 功能:本程序主要是读出AD7705芯片输入通道CH0(CH1)的模数转换值,  */
/*    转换值放在变量a中,AD7705芯片的2个通道可编程为单极性/双极性  */
/*    和差动/单端工作,这里采用单端\单极性输入。本例中AD7705连接的 */
/*    晶振为4MHZ,参考电压为5V,选择通道增益为1,采用自校准方式 。 */
/*******************************************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit DRDY=P1^3;
sbit CS=P1^4;
sbit SO=P1^5;
sbit SCK=P1^6;
sbit SI=P1^7;

void delay(uint z) //延时
{
 uchar p;
 while(z-->0)
 {for(p=0;p<125;p++);}
 }


void write(uchar x)  //写一个字节子程序
{
 uchar i;
 CS=0;
 SCK=1;
   for (i=0;i<8;i++)
   {
     SCK=0;
     delay(1);
     SI=(bit)(x&0x80);
     delay(1);
     SCK=1;
     delay(1);
     x<<=1;
   };
   SI=0;
   CS=1;
}

uint read(void)   //读转换数据子程序
{
  uchar i;
  uint w ;
    w=0;
    CS=0;
    SCK=1 ;
     for(i=0;i<16;i++)
     {
        SCK=0;
        delay(2);
        w<<=1;
        if(SO==1)
        w|=0x01;
        SCK=1;
        delay(2);
     };
    CS=1;
  return w;
}


void main()       //主程序
{
	uint a;
  write(0x20);   //AD7705初始化-读第1通道A/D转换值
  write(0x04);
  write(0x10);
  write(0x44);
  delay(3);
  while(1)
  {
  if(DRDY==0)   //等待DRDY变低
  {
  write(0x38);
  if(DRDY==0)   
   {
   a=read();   //把A/D转换值送给变量a
   }
  }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -