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

📄 adc.c

📁 单片机P89V51RD2在操纵系统RTX下的各个功能
💻 C
字号:
//adc.c
//

#include "AppDefine.h"                 


//排序
void   bubble(unsigned short *item, unsigned char count)  
{  
	register   unsigned char   a,b;  
	register   unsigned short   t;  

	for(a=1;a<count;++a)  
		for(b=count-1;b>=a;--b){  
		if(item[b-1]>item[b]){  
			t=item[b-1];  
			item[b-1]=item[b];  
			item[b]=t;  
		}  
	}  
}   

unsigned short AD_acq(void)
{
	unsigned int   result;
	unsigned char i;
	unsigned char al=0,ah=0;

	DCS0=1;
	DCLK=1;
	DCLK=0;
	DOUT=1;
	DCS0=0;
	
	while(DOUT==1) 	{	 //if(DOUT==0)	  break;
		DCLK=1;
		DCLK=0;
		DOUT=1;
	}
	for(i=0;i<4;i++) {
		DOUT=1;
		DCLK=1;
		DCLK=0;
		ah<<=1;
		if(DOUT) {
			ah|=0x01;
		}
	}
	for(i=0;i<8;i++)
	{
		DOUT=1;
		DCLK=1;
		DCLK=0;
		al<<=1;
		if(DOUT){
			al|=0x01;
		}
	}
	DCS0=1;
	result=ah;result<<=8;result|=al;//得到AD值
	return (result);
}

//10----01,234567,8,9
unsigned short AD_result (void)  
{  
	unsigned short i,addata[10],sum;
	float temp;

	for(i=0;i<10;i++)
		addata[i] = AD_acq ();
	//sort
	bubble(addata, 10);

	//中间三个sum--平均
	sum=0;
	for(i=2;i<8;i++)
		sum += addata[i];
	temp = sum/6.0;

	//mV
	//temp = temp * 3300/1024.0;
	//temp *= 3.22265625 ;
	
	return (unsigned short)temp;

}

⌨️ 快捷键说明

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