HII,我在PIC 16F67 6的ADC中遇到问题,我使用XC8编译器和MPLAB IDE 8.92。我使用的是4 MHz的内部振荡器。我想打开ADC时,ADC读取一些值,但它不工作。请帮助#ifndef_XTAL_XTAL_FREQ//除非在其他地方指定,否则假设4MHz系统频率为4MHz,假设为#定义_XTAL_FREQ 4000000#XTAL_XTAL_FREQ 4000000#定义//PIC16F676F676配置位设置//PIC16F67666配置位设定///C’源线配置语句#包括<< xc.h>\#包括< xc.h>\#xc.h>\#xc.h>#xc.h>\#include"p"“owerup.as”//pragma配置语句应该在项目文件包括.//Use项目枚举之前,而不是define for ON和OFF.//CON.pragma config FOSC=INTRCIO//振荡器选择位(INTOSC振荡器:RA4/OSC2/CLKOUT管脚上的I/O函数,RA5/OSC1/CLKIN上的I/O函数)pragma config WDTE=OFF//看门狗定时器启用位(WDT禁用)#pragma配置PWRTE=OFF//上电定时器启用位(PWRT禁用)#pragma配置MCLRE=ON//RA3/MCLR管脚功能选择(RA3/MCLR管脚功能是MCLR)#pragma配置BOREN=OFF//褐色检测启用位(BOD禁用)#pragma config CP=OFF//代码保护位(程序内存代码保护被禁用)#pragma配置CPD=OFF//数据代码保护位(数据内存代码保护被禁用)#define pv_sense 5//pin no 9 AN5#define._Batt_sense 6//pin no 8 AN6#define output_control RC5//pin no 5#define pv_i指示RC4//pin no 6unsigned int t,x,y,z;void init_a2d(void){ADCON1=0x 1 0;/*set FOSC/8作为ADC时钟源*/GIE=0;ADON=1;ADFM=1;ANSEL=0x60;}unsigned char read_a2d(unsigned char.){vola
tile unsigned int result=0;DelayMs(20);ADRESL=0;/*重置ADRES值寄存器*/ADRESH=0;.&0x0F;ADCON0&0x83;延迟量(10);ADCON0|延迟量(10);ADCON0|__=(频道<<<<<<2;ADCON0|=(频道<<<<<2);GO_DONE=0;延迟(5);GO_DONE=1;GO_DONE=1;;(GO_DONE)继续;继续;结果=((ADRESH<;<;8)+ADRESH<;+ADRESL)+ADRESL)&0x03ff;0x03ff;返回(结果);}无效延迟量延迟量15({i+)DelayMs(250);}void Init_PIC(void){INTCON=0;/*关闭中断*/PIE1=0;CMCON=0x07;/*关闭中断*/PIE1=0;CMCON=0x07;/*关闭比较器*/VRCON=0X07;/*关闭比较器*/VRCON=0X83;TRISA&&;TRISA;TRISA=0x08;TRISC=0x06;0x06;PORTA=0x08;PORTC=0x00;0x00;nRAPU=0;IOCA=0;OSCA=0;OSCCAL=0;OSCCAL=0xFF;0;OSCCAL=0xFF;0xFF;0xFF;}void main({:1;#asmCALL 3FFh//获取cal valueMOVWF OSCCAL//Calibrat#CCAL//Calibrate#CCAL//OSCCAL=0x3C,RP0*/Init_PIC();init_a2d();init_a2d();init_a2a();init_aIt_a2d();init_aIt_a2d();init_a_it_a2a_a2d();init_a_aaaaa2d();init_aaaaaaaa2d(;1){{y=y=y=read_读取_a2a2a2a2d2d(6);DelayMs(50);延迟(50);延迟(50);x=读取读取_a2a2d(5);如果5V 2 RA5 3 RA4/AN3 4 MCLR连接与程序员5RC5免费6RC4免费7RC3AN7ADc8RC2AN6ADc9RC1AN5adc10RC0AN4adc11RA2AN2adc12RA1AN1adc13RA0ADc14VSSOVolt*/}