📄 adc1.h
字号:
/************************************************************************************
* Copyright (c) 2004,西安铭朗电子科技有限责任公司
* All rights reserved.
*
* 文件名称: ADC0.H
* 文件标识: none
* 适用器件: C8051F020
*
* 摘 要: 本文件是AD子程序头文件;使用外部22.1184MHz晶振
*
* 当前版本:1.1
* 作 者:刘大伟
* 完成日期:2007年2月9日
*
*************************************************************************************/
#ifndef __ADC1_h__
#define __ADC1_h__
/************************************************************************************
* 常量及全局变量定义
*************************************************************************************/
static unsigned char 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 // ADC1 Sample frequency in Hz
#define VREF0 2500 // VREF voltage in millivolts
#define ADC1_IntFlag_Clear ADC1CN&=0XDF // 清零AD中断标志位
#define ADC1_Start ADC1CN|=0X80 // ADC1中断使能
#define ADC1_Stop ADC1CN&=0X7F // ADC1中断使能关闭
#define DISABLE_INTERRUPTS EA=0 // 中断禁止
#define ENABLE_INTERRUPTS EA=1 // 中断允许
#define ADC1_Channel AMX1SL // ADC1通道寄存器
#define ADC1_Channel_0 AMX1SL=0x00 // ADC1使用"0"通道
#define Timer3_Stop TMR3CN = 0x02 // 清除定时器3中断标志位,定时器3禁止。
#define Timer3_Start TMR3CN|= 0x04 // 定时器3开启
#define DISABLE_Tmr3 EIE2&=0xFE // 定时器3中断允许
#define ENABLE_ADC3 EIE2|=0x08 // 打开ADC1中断
#define ADC1_Ctr_Set ADC1CN = 0x02 // ADC1控制设置,定时器3溢出启动AD转换,数据左对齐
#define REF_Ctr_Set REF0CN = 0x03 // 打开温度传感器, on-chip VREF
#define ADC1_Gain ADC1CF|=0x01 // ADC1增益设置
#define SAR1_Clk 2500000 // ADC1 SAR转换时钟数值
#define SAR1_Clk_Set ADC1CF=(SYSCLK/SAR1_Clk)<<3 // ADC1 SAR转换时钟数值设置
// 请参考C8051F020.PDF
/******************************函数外部引用声明**************************************/
/***********************************************************************************
* 函数名称:ADC1_Init;
*
* 函数功能描述:设置ADC0使用定时器Timer3溢出作为转换源,转换完成后产生中断,使用左对齐输出模式
*
* 输入参数:unsigned int类型指针,是ADC0使用时存放返回数据数组的指针;
*
* 返回数据:none;
*
* 注意: none;
***********************************************************************************/
void ADC1_Init (void);
/***********************************************************************************
* 函数名称:Timer3_Init;
*
* 函数功能描述:lcd_init;
*
* 输入参数:none;
*
* 返回数据:none;
*
* 注意: none;
***********************************************************************************/
void Timer3_Init (int counts);
/***********************************************************************************
* 函数名称:ADC1_enable
*
* 函数功能描述:ADC1开关,1:打开;0:关闭
*
* 输入参数:1:打开;0:关闭
*
* 返回数据:none;
*
* 注意: none;
***********************************************************************************/
void ADC1_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 + -