adc.c
来自「80c51F020的开发程序 包括ADC DDS DAC」· C语言 代码 · 共 121 行
C
121 行
/*------------------------------------------------------------
File Name: timer.c
Auther: Samuel
Revision: R1
History: R1 Jul.05, 2007 Creation
------------------------------------------------------------*/
#include "adc.h"
void ADC0_Init(void)
{
REF0CN=0x07;
ADC0CF=0x40;
ADC0CN=0xC4;
EIE2=Reg_Field_Set(EIE2,BIT1); //允许ADC0中断
//EIE1=Reg_Field_Set(EIE1,BIT2); //允许ADC0窗口中断
}
void ADC0_Channel_Select(ADC_Channel_t ADC_Channel)
{
switch(ADC_Channel)
{
case CH0:
AMX0SL=0x00;
break;
case CH1:
AMX0SL=0x01;
break;
case CH2:
AMX0SL=0x02;
break;
case CH3:
AMX0SL=0x03;
break;
case CH4:
AMX0SL=0x04;
break;
case CH5:
AMX0SL=0x05;
break;
case CH6:
AMX0SL=0x06;
break;
case CH7:
AMX0SL=0x07;
break;
case T_SENSER:
AMX0SL=0x08;
break;
default:
break;
}
}
void ADC1_Init(void)
{
P1MDIN=0x00; /* P1口设为模拟输入 */
P1MDOUT=0x00; /* P1设为漏极开路 */
P1=0xFF; /* P1置高 */
REF0CN=0x07;
ADC1CF=0x1B; /* SAR=5.529600 MHz, 460800 Hz converting! */
ADC1CN=0x82;
EIE2=Reg_Field_Set(EIE2,BIT3); //允许ADC1中断
}
void ADC1_Channel_Select(ADC_Channel_t ADC_Channel)
{
switch(ADC_Channel)
{
case CH0:
AMX1SL=0x00;
break;
case CH1:
AMX1SL=0x01;
break;
case CH2:
AMX1SL=0x02;
break;
case CH3:
AMX1SL=0x03;
break;
case CH4:
AMX1SL=0x04;
break;
case CH5:
AMX1SL=0x05;
break;
case CH6:
AMX1SL=0x06;
break;
case CH7:
AMX1SL=0x07;
break;
default:
break;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?