日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀] #include"STC12C4052AD.h"typedefstruct{BOOLRun;//BOOL量作為定時采樣標志,比如每隔3秒,置位一次該標志BYTECurch;//當前通道BYTEtempCvData[6];//轉(zhuǎn)換結(jié)果臨時緩沖 BYTECvTimes;//采樣次數(shù)采樣4次,

#include"STC12C4052AD.h"
typedefstruct
{
BOOLRun;//BOOL量作為定時采樣標志,比如每隔3秒,置位一
次該標志
BYTECurch;//當前通道
BYTEtempCvData[6];//轉(zhuǎn)換結(jié)果臨時緩沖

BYTECvTimes;//采樣次數(shù)采樣4次,去最大最小,保留4個取平均值
BYTEADData[MAX_ADCH];//MAX_ADCH保存各通道最終采樣數(shù)據(jù)
}STADC;
STADCADC;
voidInitADC()
{
Uint16i;
ADC_CONTR=0xC0;//ADC模塊加電,420周期轉(zhuǎn)換一次
for(i=0;i<20000;i++);//ADC電源開啟后,延時
//設置P口外AD模式
P1M0=0x03;//ADC0/1高阻輸入
P1M1=0x00;
EADC_SPI=1;//開放ADCSPI總中斷
ADC_DATA=0;
AUXR=EADCI;//開放ADC中斷
MEMSet(&ADC,0,sizeof(STADC));
//啟動0號通道
ADC.Curch=0;
ADC_CONTR|=ADC.Curch;//設置下一通道
ADC.Run=TRUE;//標志ADC正在轉(zhuǎn)換
ADC_CONTR|=ADC_START;//啟動AD轉(zhuǎn)換器
}
voidADCISR()interruptADC_VECTOR
{
ADC_CONTR&=ADC_STOP;//stopAD
ADC.Run=FALSE;
ADC.tempCvData[ADC.CvTimes]=ADC_DATA;//取轉(zhuǎn)換值
ADC_DATA=0;
ADC.CvTimes++;
ADC.CvTimes%=6;
if(ADC.CvTimes!=0)
{
ADC_CONTR|=ADC_START;//啟動AD轉(zhuǎn)換器
ADC.Run=TRUE;

}
ADC_CONTR&=ADC_FLAG;//清除ADC_FLAG中斷標志
}
voidProc_ADC()
{
Uint16CvSum=0,i;
BYTEMaxCv=0,MinCv=0;
if(ADC.Run||ADC.CvTimes!=0)//AD還在進行,等待
return;
for(i=0;i<6;i++)
{
if(ADC.tempCvData[i]>MaxCv)
MaxCv=ADC.tempCvData[i];
if(ADC.tempCvData[i]MinCv=ADC.tempCvData[i];
}
for(i=0;i<4;i++)
CvSum+=ADC.tempCvData[i];
CvSum=CvSum-MaxCv-MinCv;
ADC.ADData[ADC.Curch]=(CvSum>>2);
ADC.Curch++;
ADC.Curch%=MAX_ADCH
ADC_CONTR&=0xF8;//先清除當前通道值
ADC_CONTR|=ADC.Curch;//設置下一通道
ADC.Run=TRUE;//標志ADC正在轉(zhuǎn)換
for(i=0;i<500;i++);//通道切換延時100us左右
ADC_CONTR|=ADC_START;//啟動AD轉(zhuǎn)換器
}


本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉