?? ad7705c.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 + -