/*<br /> ADC.C file<br /> The ADC0832 ADC driver <br /> Created by Computer-lov date: 2005.5.4<br /> Copyright (c) 2005 Computer-lov<br /> version 1.0<br />*/<br /><br />#include "MyType.h"<br />#include "ADC.H"<br />#include "at89x52.h"<br /><br />#define ADC_CS P2_0<br />#define ADC_CLK P3_6<br />#define ADC_DI P3_7<br />#define ADC_DO P3_7<br /><br />/********************************************************************<br />函数功能:读ADC函数。<br />入口参数:ch: 通道。<br />返 回:ADC结果。<br />备 注:无。<br />********************************************************************/<br />uint8 ReadAdc(uint8 ch)<br />{<br /> uint8 i;<br /> uint8 result;<br /><br />//写两条一样的,延时用<br /> ADC_CLK=0;<br /> ADC_CLK=0;<br /> ADC_CS=0;<br /> ADC_CS=0;<br /> ADC_DI=1; //Start bit<br /> ADC_DI=1;<br /> ADC_CLK=1;<br /> ADC_CLK=1;<br /> ADC_CLK=0;<br /> ADC_CLK=0;<br /> ADC_DI=1; //单端<br /> ADC_DI=1;<br /> ADC_CLK=1;<br /> ADC_CLK=1;<br /> ADC_CLK=0;<br /> ADC_CLK=0;<br /> if(ch==0) //通道选择<br /> {<br /> ADC_DI=0;<br /> ADC_DI=0;<br /> }<br /> else<br /> {<br /> ADC_DI=1;<br /> ADC_DI=1;<br /> }<br /> ADC_CLK=1;<br /> ADC_CLK=1;<br /> ADC_CLK=0;<br /> ADC_CLK=0;<br /> ADC_DO=1;<br /> for(i=0;i<8;i++) //读出8位数据<br /> {<br /> ADC_CLK=1;<br /> ADC_CLK=1;<br /> ADC_CLK=0;<br /> ADC_CLK=0;<br /> result<<=1;<br /> if(ADC_DO)result++;<br /> }<br /> ADC_CS=1;<br /> return result;<br />}<br />////////////////////////End of function//////////////////////////////
|