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

📄 ad7705.c

📁 KEILC RTX51tiny开发的程序
💻 C
字号:
#include<STC12C5410AD.H>
#include<MATH.H>
#define byte unsigned char

  //函数声明 
void initspi(void);
void send(byte s);
void reset7705(void);
long zero(void);
unsigned int get(unsigned char chanNo);  //读取AD7705的采样值 
void delay();
void adInit(void); //AD转换初始化 
void selectChan0(void);   //选择通道0
void selectChan1(void);   //选择通道1

  //管脚定义 
sbit cs=P1^4;   //AD7705片选 
sbit dr=P3^3;  //AD7705转换标志 



//AD转换初始化 
void adInit(void)
{
    initspi();
    reset7705();//连续40个串行周期写入1,复位7705的数据接口
    send(0x20);
    send(0x0C);
	send(0x21);
    send(0x0C);
	send(0x10);
	send(0x44);
	send(0x11);
	send(0x44);
}
//选择通道0
void selectChan0(void)
{
    send(0x20);
    send(0x0C);
	send(0x10);
	send(0x44);
}  	   
//选择通道1
void selectChan1(void)
{
    send(0x21);
    send(0x0C);
	send(0x11);
	send(0x44);
}
void initspi(void)
{
    SPCTL=0xDE;//主机,先传MSB,允许工作 ,时钟频率(1/64)CPUclock)
    SPSTAT=0xC0;//清零 
	P1M0=P1M0&(0xEF);  //CS(P1.4)设置为输出 
	P1M1=P1M1|(0x10);
	P3M0=P3M0|(0x08);   //DRDY(P3.3)设置为输入 
	P3M1=P3M1&(0xF7);
}
void send(byte s)
{
    cs=0;
    SPDAT=s;
    while(!(SPSTAT&0x80))
    {;}
	SPSTAT=0xC0;
	cs=1;
}
unsigned int get(unsigned char chanNo)
{
    byte a1,b1;
	while(!dr)
    {;}
    while(dr)
    {;}

	switch(chanNo)
    {
        case 0: send(0x38);break; 
        case 1: send(0x39);break; 
    } 
	cs=0;
	SPDAT=0;
    while(!(SPSTAT&0x80))
    {;}
	a1=SPDAT;
    SPSTAT=0xC0;
	SPDAT=0;
    while(!(SPSTAT&0x80))
    {;}
	b1=SPDAT;
    SPSTAT=0xC0;
	cs=1;
    return(a1*256+b1);
}
void reset7705(void)
{
    cs=0;
    SPDAT=0xFF;
    while(!(SPSTAT&0x80))
    {;}					 
	SPSTAT=0xC0;
    SPDAT=0xFF;
    while(!(SPSTAT&0x80))
    {;}
	SPSTAT=0xC0;
    SPDAT=0xFF;
    while(!(SPSTAT&0x80))
    {;}
	SPSTAT=0xC0;
    SPDAT=0xFF;
    while(!(SPSTAT&0x80))
    {;}
	SPSTAT=0xC0;
    SPDAT=0xFF;
    while(!(SPSTAT&0x80))
    {;}
	SPSTAT=0xC0;
	cs=1;
} 





⌨️ 快捷键说明

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