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出力 } } |