?? 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 + -