PIC

Last-modified: 2015-09-06 (日) 21:23:50

PICでの使用例等を載せていきます。

環境

PIC18F14K50
MPLABX
XC8
PICkit3

PIC18F14K50のピンマップは以下のようになっています。
データシートはこれです。
http://ww1.microchip.com/downloads/jp/DeviceDoc/41350D_JP.pdf

PIC18F14K50_PINMAP.PNG

はじめに

MPLABX等のインストールからPICに書き込むまでを説明しています。
PIC/InitialTutorial

LED(Lチカ)

まずはLチカです。

#include

#pragma
#pragma
#pragma
#pragma
#pragma
#pragma
#pragma
#pragma
#pragma

#define

//\brief        100ms単位でdelayする
//\param(time)  time*100ms delayする
//\return       成功したら0
int delay_100ms(unsigned int time){
    unsigned int count;
    for(count=0; count<time; count++){
        __delay_ms(20);
        __delay_ms(20);
        __delay_ms(20);
        __delay_ms(20);
        __delay_ms(20);
    }
    return 0;
}

void main(void){
    OSCCON = 0b01010010;         // 内部クロック4Mhz
    TRISC = 0b00000000;          // 入出力モードレジスタ 0:出力, 1:入力
    LATC = 0;                    // 出力レジスタ 0:LOW, 1:HIGH
    TRISB = 0b00000000;          // 入出力モードレジスタ 0:出力, 1:入力
    LATB = 0;                    // 出力レジスタ 0:LOW, 1:HIGH
    TRISA = 0b00000000;          // 入出力モードレジスタ 0:出力, 1:入力
    LATA = 0;                    // 出力レジスタ 0:LOW, 1:HIGH

    while(1){
        //LATC = 0b000000001;
        //LATCbits.LATC0 = 1;
        //LATB = 0b10000000;
        //LATBbits.LATB7 = 1;
        //LATA = 0b00110000;
        //LATAbits.LATA5 = 1;

        LATCbits.LATC0 = 1;
        delay_100ms(10);
        LATCbits.LATC0 = 0;
        delay_100ms(10);
    }
}