PIC12F617单片机ADC初始化配置

2019-04-15 11:49发布

#include #include #include "ADC.h" /************************************************************** @beep_; void Adc_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 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ADFM VCFG - CHS2 CHS1 CHS0 GO/DOWN ADON 配置参考电压: 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) *清除中断标志 **************************************************************/ void Adc_Init(void) { GIE=0; //关闭全局中断 TRISIO4=1; ANSEL=0x18; ADCON0=0x8D; ADIF=0; ADIE=1; NOP();NOP();NOP();NOP();//等待采集时间 PEIE=1; //打开外设中断 GIE=1; //打开全局中断 }