PIC12F617单片机ADC初始化配置
扫描二维码
随时随地手机看文章
#include
#include
#include"ADC.h"
/**************************************************************
@beep_;
voidAdc_Init(void);//完成ADC初始化
ADC配置过程:
>1:端口设置:模拟输入无上拉
TRISIO<5:0>:
1:GPIO引脚配置为输入
0:GPIO引脚配置为输出
*TRISIO3=1.只能输入.
ANSEL:bit3:0
ANS<3:0>:GP4|GP2|GP1|GP0
1:模拟输入
0:I/O
>2:ADC设置
转换时钟(TAD/bit),一次ADC转换需要11TAD周期.
ANSEL:bit6:4
ADCS<2:0>:
000:FOSC/2
001:FOSC/8(FOSC=4MHZ,TAD=2us)
101:FOSC/16(FOSC=4MHZ,TAD=4us)
...
ADCON0:A/D控制寄存器0
bit7bit6bit5bit4bit3bit2bit1bit0
ADFMVCFG-CHS2CHS1CHS0GO/DOWNADON
配置参考电压:
ADCON0:bit6
VCFG:
1:VREF引脚
0:VDD
选择ADC通道:
ADCON0:bit4:2
CHS<2:0>:
000:AN0(GP0)100:CVREF
001:AN1(GP1)101:0.6V
010:AN2(GP2)110:1.2V
011:AN3(GP4)111:RES
选择结果格式:
ADCON0:bit7
ADFM:
1:右对齐(高2位放在ADRESH,低8位放在ADRESL)
0:左对齐
开启ADC:
ADCON0:bit0
ADON:
1:使能
0:关闭
>3:清除中断标志,使能中断
PIE1:bit6
ADIE:
1:中断允许
0:中断禁止
PIR1:bit6
ADIF:
1:A/D转换完成
0:A/D转换未完成或未开始
INTCON:中断寄存器
bit7:GIE全局中断使能/禁止
bit6:PEIE外设中断使能/禁止
>4:等待采集时间
NOP();NOP();NOP();NOP();
>5:启动转换
ADCON0:bit1
GO/DOWN:
1:启动转换或AD转换正在进行.
0:AD转换完成,由硬件清零.
>6:读取结果
*查询GO/DOWN
*等待中断
ADC=(ADRESH,ADRESL)
*清除中断标志
**************************************************************/
voidAdc_Init(void)
{
GIE=0;//关闭全局中断
TRISIO4=1;
ANSEL=0x18;
ADCON0=0x8D;
ADIF=0;
ADIE=1;
NOP();NOP();NOP();NOP();//等待采集时间
PEIE=1;//打开外设中断
GIE=1;//打开全局中断
}