include <reg52.h>
#include <stdio.h>
sbit ADC_CLK=P1^4;
sbit ADC_DI=P1^5;
sbit ADC_DO=P1^6;
sbit ADC_CS=P1^7;
unsigned char a;
void Delay(unsigned char x)
{
unsigned char i;
for(i=0;i<x;i++);
}
unsigned char ADC0832(void)
{
unsigned char i,data_c;
data_c=0;
ADC_CS=0; //启用
ADC_DO=0;
for(i=0;i<10;i++)
{;}
ADC_CLK=0;
Delay(2);
ADC_DI=1;
ADC_CLK=1;
Delay(2);
ADC_CLK=0; //启动
Delay(2);
ADC_DI=1; //单极
ADC_CLK=1;
Delay(2);
ADC_CLK=0; //下降1
Delay(2);
ADC_DI=1; //ch1。若ch0则为0。
ADC_CLK=1;
Delay(2);
ADC_CLK=0; //下降2
ADC_DI=0;
ADC_DO=1; //脱离高阻态,作准备
ADC_CLK=1;
Delay(2);
ADC_CLK=0; //第三个下降沿di失去作用
Delay(2);
for (i=0; i<8; i++)
{
ADC_CLK=1;
Delay(2);
ADC_CLK=0;
Delay(2);
data_c=(data_c<<1)|ADC_DO;
}
ADC_CS=1; //关adc
return(data_c); //输出8位二进制数字
}
void main()
{
a= ADC0832();
while(1)
{
a=a;
}
}