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

📄 adc0832.h

📁 完全实现AD的简单转换
💻 H
字号:
/*******************************************************************/
//   CAI
//    08.03.08
/*******************************************************************/
#ifndef __ADC0832_H__
#define __ADC0832_H__

sbit ADC_CS =P2^4;
sbit ADC_CLK=P2^5;
sbit ADC_DO =P2^6;
sbit ADC_DI =P2^7;

/*******************************************************************/

unsigned int vollage(bit bi);

/*******************************************************************/
 

void Delays(unsigned char x)
{ 		   
    unsigned char i;
    for(i=0;i<x;i++); //延时,脉冲一位持续的时间
}

/*******************************************************************/

unsigned char ReadADC(bit dat) //把模拟电压值转换成8位二进制数并返回,dat为通道选择。 
{ 	 
    unsigned char i,ch=0;
    ADC_CS=0;
    ADC_DO=0;//片选,DO为高阻态
    Delays(10);
    ADC_CLK=0;
    Delays(2);
    ADC_DI=1;	 
    ADC_CLK=1;	 
    Delays(2);//第一个脉冲,起始位 
    ADC_CLK=0;					  
    Delays(2);					  
    ADC_DI=1;					  
    ADC_CLK=1;					  
    Delays(2);//第二个脉冲,DI=1表示双通道单极性输入	 
    ADC_CLK=0;										 
    Delays(2);										 
    ADC_DI=dat;	/*******************************/											 
    ADC_CLK=1;
    Delays(2);//第三个脉冲,DI=1表示选择通道1(CH2)	  
    ADC_DI=0;										   
    ADC_DO=1;//DI转为高阻态,DO脱离高阻态为输出数据作准备
    ADC_CLK=1;									   													 
    Delays(2);									   
    ADC_CLK=0;									   
    Delays(2);//经实验,这里加一个脉冲AD便能正确读出数据, 
        //不加的话读出的数据少一位(最低位d0读不出)		  
    for(i=0;i<8;i++)									  
    { 
       ADC_CLK=1;
       Delays(2);
       ADC_CLK=0;
       Delays(2);
       ch=(ch<<1)|ADC_DO;//在每个脉冲的下降沿DO输出一位数据,最终ch为8位二进制数
	}

    ADC_CS=1;//取消片选,一个转换周期结束
    return(ch);//把转换结果返回
}

/*******************************************************************/

unsigned int vollage(bit bi)
{
	unsigned char vol;
	unsigned int dat;
   	vol=ReadADC(bi); 
	dat=(int)(100*vol)/51; //51是由5/255的倒数得来的,5是5V,255是8位AD。
	return(dat);
}
#endif

⌨️ 快捷键说明

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