adc.c
来自「单片机P89V51RD2在操纵系统RTX下的各个功能」· C语言 代码 · 共 89 行
C
89 行
//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 + =
减小字号Ctrl + -
显示快捷键?