MPLAB X IDE v3.05 XC8 12F675 A/D変換機能を使用して電圧をLED表示しますADRESL

// *****************************************************************************
// < コンパイラ MPLAB X XC8 >     怪答PIC 2015/07/07
// 12F675
// A/D変換してLED点灯 ADRESL
// *****************************************************************************

// *****************************************************************************
// ANSEL 設定
// アナログ入力設定
// bit 0  7ピン アナログ入力 AN0
// bit 1  6ピン アナログ入力 AN1
// bit 2  5ピン アナログ入力 AN2
// bit 3  3ピン アナログ入力 AN3
// bit 4 変換クロック設定 1 8Tosc 4MHz
// bit 5 変換クロック設定 0 8Tosc 4MHz
// bit 6 変換クロック設定 0 8Tosc 4MHz
// bit 7  未設定 0
// *****************************************************************************

// *****************************************************************************
// ADCON0 設定A
// アナログ入力設定
// bit 0  ADコンバータを 使用 1 使用しない 0
// bit 1  換開始指令、変換終了ステータス
// bit 2  アナログ入力チャンネル設定 AN0 0 AN1 1 AN2 0 AN3 1
// bit 3  アナログ入力チャンネル設定 AN0 0 AN1 0 AN2 1 AN3 1
// bit 4  未設定 0
// bit 5  未設定 0
// bit 6  1 基準電圧 Vdd
// bit 7  1 右詰めで使う8bit
// *****************************************************************************

// *****************************************************************************
// GPIO = (ADRESH>>5)
// アナログ入力設定
// >>0 22mV step
// >>1 43mV step
// >>2 86mV step
// >>3 162mV step
// >>4 325mV step
// >>5 650mV step
// *****************************************************************************


#include <pic.h>

#define _XTAL_FREQ 4000000 // 内部クロック4MHzに設定

// __CONFIG(UNPROTECT & BORDIS & MCLRDIS & PWRTDIS & WDTDIS & INTIO);

// CONFIG
#pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON // Power-Up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = OFF // GP3/MCLR pin function select (GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD)
#pragma config BOREN = ON // Brown-out Detect Enable bit (BOD enabled)
#pragma config CP = OFF // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)

main()
{
TRISIO = 0b00010000; //GP4 A/D入力
GPIO = 0b00000000; //初期化
ADCON0 = 0b10001101; //右詰め Verf=Vdd 基準電圧はVcc 分解能 5mV 5V/1024
ANSEL = 0b00011000; //Fosc8,AN3=analog
CMCON = 0b00000111; //

while(1)
{
__delay_us(20); // 充電時間
GO_DONE = 1; // AD変換開始
while(GO_DONE); // 変換終了待
GPIO = (ADRESL>>5); // LED出力
}
}