📄 adc.h
字号:
/***********************************************************************************
* Copyright (c) 2004,西安铭朗电子科技有限责任公司
* All rights reserved.
*
* 文件名称: ADC0.H
* 文件标识: none
* 适用器件: C8051F020
*
* 摘 要: 本文件是AD子程序头文件;使用外部22.1184MHz晶振
*
* 当前版本:1.1
* 作 者:刘大伟
* 完成日期:2007年2月9日
*
* 历史版本:1.0
* 作 者:卢 阳
* 完成日期:2004年11月14日
*
* 历史版本:0.9
* 原作者 : 李林利
* 完成日期:2004年1月1日
************************************************************************************/
#ifndef __ADC_h__
#define __ADC_h__
/************************************************************************************
* 常量及全局变量定义
*************************************************************************************/
static unsigned int xdata ADC0_result[9]; // AIN0-7和温度传感器数值寄存数组
static unsigned int xdata ADC1_result[8]; // 8Bit ADC1 数值寄存数组
sfr16 TMR3RL = 0x92; // Timer3 reload value
#define Timer3_Reload_init TMR3RL // 定时器3重装载数值寄存器
sfr16 TMR3 = 0x94; // Timer3 counter
#define TMR3_Count_Start TMR3=0xffff // 设置定时器3计满溢出,立即装载.
#define SYSCLK 22118400 // SYSCLK frequency in Hz
#define BAUDRATE 115200 // Baud rate of UART in bps
#define SAMPLERATE0 50000 // ADC0 Sample frequency in Hz
#define VREF0 2500 // VREF voltage in millivolts
#define ADC0_IntFlag_Clear AD0INT=0 // 清零AD中断标志位
#define ADC0_Start AD0EN=1 // ADC0中断使能
#define ADC0_Stop AD0EN=0 // ADC0中断使能关闭
#define DISABLE_INTERRUPTS EA=0 // 中断禁止
#define ENABLE_INTERRUPTS EA=1 // 中断允许
#define ADC0_Channel AMX0SL // ADC0通道寄存器
#define ADC0_Channel_0 AMX0SL=0x00 // ADC0使用"0"通道
#define Timer3_Stop TMR3CN = 0x02 // 清除定时器3中断标志位,定时器3禁止。
#define Timer3_Start TMR3CN|= 0x04 // 定时器3开启
#define DISABLE_Tmr3 EIE2&=0xFE // 定时器3中断允许
#define ENABLE_ADC3 EIE2|=0x02 // 打开ADC0中断
#define ADC0_Ctr_Set ADC0CN = 0x45 // ADC0控制设置,定时器3溢出启动AD转换,数据左对齐
#define REF_Ctr_Set REF0CN = 0x07 // 打开温度传感器, on-chip VREF
#define ADC0_Gain ADC0CF&=0xf8 // ADC0增益设置
#define SAR0_Clk 2500000 // ADC0 SAR转换时钟数值
#define SAR0_Clk_Set ADC0CF=(SYSCLK/SAR0_Clk)<<3 // ADC0 SAR转换时钟数值设置
// 请参考C8051F020.PDF
/******************************函数外部引用声明**************************************/
/***********************************************************************************
* 函数名称:ADC0_Init;
*
* 函数功能描述:设置ADC0使用定时器Timer3溢出作为转换源,转换完成后产生中断,使用左对齐输出模式
*
* 输入参数:unsigned int类型指针,是ADC0使用时存放返回数据数组的指针;
*
* 返回数据:none;
*
* 注意: none;
************************************************************************************/
void ADC0_Init (void);
/***********************************************************************************
* 函数名称:Timer3_Init;
*
* 函数功能描述:lcd_init;
*
* 输入参数:none;
*
* 返回数据:none;
*
* 注意: none;
************************************************************************************/
void Timer3_Init (int counts);
/***********************************************************************************
* 函数名称:ADC0_enable
*
* 函数功能描述:ADC0开关,1:打开;0:关闭
*
* 输入参数:1:打开;0:关闭
*
* 返回数据:none;
*
* 注意: none;
************************************************************************************/
void ADC0_enable(unsigned char flag);
/***********************************************************************************
* 函数名称:ADC_Value;
*
* 函数功能描述:ADC0,ADC1转换完成后数据寄存器数据转换成unsigned int型
*
* 输入参数:unsigned char类型,"0"为选择转换ADC0数据格式,非"0"为选择转换ADC1数据格式;
*
* 返回数据:unsigned int类型,当前AD转换完成后的unsigned int类型数据量;
*
* 注意: none;
************************************************************************************/
unsigned int ADC_Value (unsigned char Flag);
/***********************************************************************************
* 函数名称:ADC_Value_Return;
*
* 函数功能描述:主程序通过此函数取得ADC0目标通道数据
*
* 输入参数:unsigned char类型,ADC0通道号;
*
* 返回数据:unsigned int类型,ADC0通道对应的数据;
*
* 注意: ADC0共有9个通道(包括温度通道),注意范围,超出范围返回0XFFFF;
************************************************************************************/
unsigned int ADC_Valud_Return (unsigned char channel);
/************************************************************************************/
#endif
/*************************************************************************************
* 文件结束
**************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -