基于51单片机的ADC0832的C语言程序.pdf
《基于51单片机的ADC0832的C语言程序.pdf》由会员分享,可在线阅读,更多相关《基于51单片机的ADC0832的C语言程序.pdf(6页珍藏版)》请在冰点文库上搜索。
#ifndef_ADC_0832_H#define_ADC_0832_H#include#include#includehubj.hsbitAD_Cs=P32;/ADC0832chipseclectsbitAD_Clk=P33;/ADC0832clocksignalsbitAD_Di=P36;/ADC0832datainsbitAD_Do=P36;/ADC0832dataoutstaticuintAD_Conv();voidADC_Fun();#endif#includeadc_0832.hexternuintReal_Temperature;externbitAdc_Flag;ucharcodeCH=0x02;doubleMN=M*N;staticuintAD_Conv()uchari=0;uintdata_f=0,data_c=0;AD_Di=1;AD_Cs=1;_nop_();AD_Cs=0;AD_Di=1;AD_Clk=1;_nop_();_nop_();AD_Clk=0;_nop_();_nop_();AD_Clk=1;AD_Di=(bit)(0x02&CH);_nop_();AD_Clk=0;_nop_();_nop_();AD_Clk=1;AD_Di=(bit)(0x01&CH);_nop_();_nop_();AD_Clk=0;/AD转换的初始化完成AD_Di=1;AD_Clk=1;_nop_();_nop_();AD_Clk=0;_nop_();AD_Clk=1;for(i=8;i0;i-)data_f|=AD_Do;data_f0;i-)data_c=1;data_c|=AD_Do;_nop_();AD_Clk=1;_nop_();_nop_();AD_Clk=0;_nop_();AD_Clk=0;_nop_();_nop_();AD_Clk=1;_nop_();_nop_();AD_Clk=0;_nop_();_nop_();AD_Clk=1;_nop_();AD_Cs=1;_nop_();_nop_();returndata_f;voidADC_Fun()ucharadc_data10;/定义一位数组,存放AD转化的10个值uchari;uintt,sum;doublerealT;/*连续转化10次,转化的值存于数组中*/for(i=0;i10;i+)adc_datai=AD_Conv();Delayms
(1);/*挑出10个值中的最大值与最小值*/for(i=0;iadc_datai)t=adc_data0;adc_data0=adc_datai;adc_datai=t;if(adc_data9adc_datai)t=adc_data9;adc_data9=adc_datai;adc_data9=t;/*求出剩余8个值的和*/sum=adc_data1+adc_data2+adc_data3+adc_data4+adc_data5+adc_data6+adc_data7+adc_data8;/*将AD转换值转变为对应的温度值,并赋值给实际温度变量*/realT=(1.0/127.0)*(sum/8)/MN;Real_Temperature=(uint)(realT);Adc_Flag=1;