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

📄 ad0832驱动程序.c

📁 AD0832驱动程序
💻 C
字号:
sbit ADCS=P1^3;
sbit ADCLK=P1^5;
sbit ADDO =P1^6;
sbit ADDI =P1^7;
// 读取温度信号 
unsigned char ReadADCH0(void) //把模拟电压值转换成8位二进制数并返回 
	{ 
	unsigned char i, ch;
	ch=0;
	ADCS=0;
	ADDO=0; //片选,DO为高阻态 
	Nop();
	Nop();
	ADCLK=0;
	Nop();
	Nop();
	ADDI=1; 
	ADCLK=1; 
	Nop();
	Nop(); //第一个脉冲,起始位 
	ADCLK=0; 
	Nop();
	Nop();
	ADDI=1; 
	ADCLK=1;
	Nop();
	Nop();//第二个脉冲,DI=1表示双通道单极性输入 
	ADCLK=0;
	Nop();
	Nop();
	ADDI=0; 
	ADCLK=1;
	Nop();
	Nop(); //第三个脉冲,DI=1表示选择通道1(CH2)  
	ADDI=0; 
	ADDO=1;//DI转为高阻态,DO脱离高阻态为输出数据作准备 
	ADCLK=1;
	Nop();
	Nop();
	ADCLK=0; 
	Nop();
	Nop();
	for (i=0; i<8; i++)
		{ 
		ADCLK=1; 
		Nop();
		Nop();
		ADCLK=0; 
		Nop();
		Nop();
		ch = (ch<<1)&0xfe;
		if (ADDO) ch |= 0x01;
		else      ch |= 0x00; //在每个脉冲的下降沿DO输出一位数据,最终ch为8位二进制数 
		}
	ADCS=1; //清除所有寄存器  
	return ch;
	}

// 读取湿度信号 
unsigned char ReadADCH1(void) //把模拟电压值转换成8位二进制数并返回 
	{ 
	unsigned char i,ch;
	ch=0;
	ADCS=0;
	ADDO=0;//片选,DO为高阻态 
	Nop();
	Nop();
	ADCLK=0;
	Nop();
	Nop();
	ADDI=1; 
	ADCLK=1; 
	Nop();
	Nop(); //第一个脉冲,起始位 
	ADCLK=0; 
	Nop();
	Nop();
	ADDI=1; 
	ADCLK=1;
	Nop();
	Nop();//第二个脉冲,DI=1表示双通道单极性输入 
	ADCLK=0;
	Nop();
	Nop();
	ADDI=1; 
	ADCLK=1;
	Nop();
	Nop();//第三个脉冲,DI=1表示选择通道1(CH2) 
	
	ADDI=0; 
	ADDO=1;//DI转为高阻态,DO脱离高阻态为输出数据作准备 
	ADCLK=1;
	Nop();
	Nop();
	ADCLK=0;
	Nop();
	Nop();

	for (i=0; i<8; i++)
		{ 
		ADCLK=1; 
		Nop();
		Nop();
		ADCLK=0; 
		Nop();
		Nop();
		ch = (ch<<1)&0xfe;
		if (ADDO) ch |= 0x01;
		else      ch |= 0x00;  //在每个脉冲的下降沿DO输出一位数据,最终ch为8位二进制数 
		}
	ADCS=1; //	 清除所有寄存器  
	return(ch);
	}

⌨️ 快捷键说明

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