天天看点

单片机c语言ad程序,基于51单片机的ADC0832的C语言程序.pdf

#ifndef __ADC_0832_H

#define __ADC_0832_H

#include

#include

#include "hubj.h"

sbit AD_Cs = P3^2; //ADC0832 chip seclect

sbit AD_Clk = P3^3; //ADC0832 clock signal

sbit AD_Di = P3^6; //ADC0832 data in

sbit AD_Do = P3^6; //ADC0832 data out

static uint AD_Conv ( );

void ADC_Fun ( );

#endif

#include "adc_0832.h"

extern uint Real_Temperature;

extern bit Adc_Flag;

uchar code CH = 0x02;

double MN = M * N;

static uint AD_Conv ( )

{

uchar i=0;

uint data_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; i > 0; i --)

{

data_f |= AD_Do;

data_f <<= 1;

AD_Clk = 1;

_nop_ ( );

_nop_ ( );

AD_Clk = 0;

_nop_ ( );

}

for (i = 8; i > 0; i --)

{

data_c <<= 1;

data_c |= AD_Do;

_nop_ ( );

AD_Clk = 1;

_nop_ ( );

_nop_ ( );