adc_0809.c

来自「模数转换」· C语言 代码 · 共 84 行

C
84
字号
//************************************************************
//Copyright(C)2008,桂林电子科技大学电子工程学院科技协会
//				     ADC_0809 驱动源文件
//文件名称:ADC_0809.c
//文件标识:(内参)
//摘    要:
//			1.配合头文件使用;
//			2.硬件参考作品;
//			3.
//
//当前版本:1.1
//作    者:覃秋霖
//完成日期:2008.10.10
//
//取代版本:1.0
//原 作 者:覃秋霖
//完成日期:2007.05.18
//
//		 	ADC0809_EN 	     ----------	P2^1
//			ADC0809_EOC 	 ---------- P2^2
//			ADC0809_ADD_A 	 ----------	P2^3
//			ADC0809_ADD_B 	 ----------	P2^4
//			ADC0809_ADD_C    ----------	P2^5
//			ADC0809_ALE      ---------- P2^6	
//			ADC0809_START    ---------- P2^7
//
//			ADC0809_DATA 	   ----------  P1
//			ADC0809_CONP	   ----------  P2
//***********************************************************

#include<reg52.h>
#include"Mylib.h"
#include"./ADC_0809_driver/ADC_0809.h"

//*******************模块内部函数声明************************
static  void  Set_ADC0809_channel(uchar channel);

//*******************************************
//函数名称:static  void  Set_ADC0809_channel(uchar channel)
//函数功能:设置 ADC_0809 的采集通道
//形式参数:	 uchar channel
//行参说明:	 通道号(从0 到 7)		
//返回参数:	 无
//使用说明:	 无
//*******************************************
static  void  Set_ADC0809_channel(uchar channel)
{
		channel <<= 3;  
		ADC0809_CONP |= channel;
}
//*******************************************
//函数名称:extern  uchar  Get_ADC0809_data(uchar channel)
//函数功能:获得 ADC_0809 指定通道的电压值
//形式参数:	 uchar channel
//行参说明:	 通道号(从0 到 7)		
//返回参数:	 uchar类型的电压值
//使用说明:	 无
//*******************************************
extern  uchar  Get_ADC0809_data(uchar channel)
{
	  uchar  ucFlg;
	  uchar  ucDB;

	  ADC0809_START = 0;
	  ADC0809_ALE   = 0;
	  //ADC0809_EN    = 0;

	  Set_ADC0809_channel(channel);
	  ADC0809_ALE   = 1;
	  ADC0809_START = 1;
	  ADC0809_ALE   = 0;
	  ADC0809_START = 0;

	  ADC0809_EOC = 1;
	  do{
	  	  ucFlg = ADC0809_CONP;
		  	  
	  }while(ucFlg & 0x04 == 0);
	  ADC0809_EN   = 1;
	  ucDB  =  	ADC0809_DATA;

	  return   ucDB;
}

⌨️ 快捷键说明

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