adc0809.c

来自「通过adc0809采集电压」· C语言 代码 · 共 57 行

C
57
字号
#include <reg52.H>
#include "Typedef.H"
#include "UserDef.H"
#include "ADC0809.H"

/*  端口定义 */
#define P_Data	P0
sbit AD0809_OTEN = P3^4;
sbit AD0809_EOC = P3^2;
sbit AD0809_START = P3^3;
sbit AD0809_ALE = P3^5;

/***************************************
	初始化函数
****************************************/
void AD0809_init(void)
	{
	AD0809_OTEN = 0;
	AD0809_EOC = 1;
	AD0809_START = 0;
	AD0809_ALE = 0;
	}

/***************************************
	AD转换函数
	入口参数:选择的通道ch
****************************************/
INT8U AD0809(INT8U ch)
	{
	INT8U adv,i;

	P_Data = ch;
	AD0809_ALE = 1;		   //上升沿锁存A,B,C的地址,即选定通道
	AD0809_ALE = 0;

	AD0809_START = 1;	   //上升沿清楚内部各寄存器,其下降沿的时候开始转换
	AD0809_START = 0;

	
	for (i=0;i<10;i++)		  //等待
		{}

	while (AD0809_EOC == 0)	   //等待转换完成信号
		{}

	P_Data = 0xFF;
	AD0809_OTEN = 1;			//允许输出锁存器输出数据
	adv = P_Data;
	AD0809_OTEN = 0;

	return adv;
	}



	

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?