トボリブログ

電子工作初心者が工作したりプログラミングしたりするブログ。

【初心者でもPICでLチカ⑤】プログラムを書いて、ついにLチカへ!

f:id:toboli:20180813210016j:plain
みなさんこんにちは。トボリです。

前回、PIC用プログラミング環境を整えました!
今回はさっそくプログラミングをしていきたいと思います!

とにかくさくさく動かして楽しもう!!

トボリは「まず楽しむ!その後学ぶ!」というのを大事にしているので、コピペでいいからとにかくさくっと動かしてみるのがいいと思ってます。
なので、この記事ではサンプルコードをコピペするだけで、最速でLチカできるようにしてあります!
プログラムの細かい説明は別記事で書いていこうと思います。
どんなにゆっくりやっても、30分後にはLチカできているはず!

動かすまでの手順

プロジェクトを作ろう!

まずMPLAB Xを立ち上げます。

f:id:toboli:20180825023948p:plain
パソコンのデスクトップにある、ピンク枠で囲ったショートカットをクリック

次に、プロジェクト(プログラムを書く場所)を作ります。

f:id:toboli:20180905142459p:plain
【File】→【New Project】を選択

以下のような画面が出てきます。

f:id:toboli:20180905153020p:plain
Categories→【Microchip Embedded】 Project→【Standalone Project】を選択。

Nextを押すと、次のような画面になります。

f:id:toboli:20180905153709p:plain
使うPICの型番を選ぶ。
※プルダウンで探すと数が多すぎて大変なので、ピンク枠のところに直接型番を書き込むといいです。すると、「これですか?」ってかんじで型番を出してくれます。

次に、プログラムを書き込むライターの選択をします。
※この記事ではPICkit3を使いますが、PICkit4を買った方はPICkit4を選択してください!
f:id:toboli:20180905154420p:plain

コンパイラを選択します。XC8を選択しましょう!
f:id:toboli:20180905154953p:plain

プロジェクト名とエンコードを変更しましょう!

f:id:toboli:20180905155850p:plain
①自分の好きなプロジェクト名をつける ②Encordingを【UTF-8】に

EncordingをUTF-8にするの忘れてひいひい言いながらプログラム書いて、コンパイルした瞬間日本語コメントアウトが全部『????????』になったときの絶望といったらないです(実体験)。


あと、デフォルトでチェックついてると思うのですが、『Set as a main project』のチェックボックスにチェックがついているか確認しておくといいです!

プログラムを書こう!

プロジェクトが完成しました!Lチカまであと少しです!

プログラムを書くためのファイルを作っていきます。

f:id:toboli:20180905160951p:plain
①作成したプロジェクト名を選択 ②【Source Files】を右クリック ③【New】を選択 ④【main.c】を選択

以下のような画面になります。
ファイル名は変更してもそのままでも大丈夫です。その後、Finishを選択します。
f:id:toboli:20180905161811p:plain

プログラムを書き込もう!

ここまでたどり着きました!もう完成間近です!以下のコードをコピペしてください!

/*
 * LED test
 */

#include <xc.h>
#include <stdio.h>
#include <stdlib.h>// PIC16F88 Configuration Bit Settings
// 'C' source line config statements
// CONFIG1
#pragma config FOSC = INTOSCIO  // Oscillator Selection bits (INTRC oscillator; CLKO function on RA6/OSC2/CLKO pin and port I/O function on RA7/OSC1/CLKI pin)
#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      // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital I/O, MCLR internally tied to VDD)
#pragma config BOREN = ON       // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = OFF        // Low-Voltage Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF        // Data EE Memory Code Protection bit (Code protection off)
#pragma config WRT = OFF        // Flash Program Memory Write Enable bits (Write protection off)
#pragma config CCPMX = RB0      // CCP1 Pin Selection bit (CCP1 function on RB0)
#pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)
//#pragma config CLKOUTEN = OFF
//#pragma config PLLEN = OFF
//#pragma config STVREN = OFF
//#pragma config BORV = LO
#pragma config FCMEN = OFF       // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor enabled)
#pragma config IESO = OFF        // Internal External Switchover bit (Internal External Switchover mode enabled)

#define _XTAL_FREQ 16000000 //16MHz

void main(void) {
    
    OSCCON = 0b01111000; //周波数16MHz
    ANSEL = 0b00000000; //アナログ・デジタル設定
    TRISA = 0b00000000;//入出力のピン設定
    TRISB = 0b00000000;
    
    while(1){
        __delay_ms(950);
        RA2 = 1;
        __delay_ms(950);
        RA2 = 0;
        
    
    } 
    //return(0);
}

コピペしたら、【Ctrl+S】で保存します。

画面の上の方に以下のようなボタンが並んでいるので、ビルドボタンを押します。
(ピンク枠で囲ったトンカチマークです)
f:id:toboli:20180905163551p:plain

画面の右下にある『Output』のところに、以下のようなメッセージが出ます。
ビルド成功です!やったー!
f:id:toboli:20180905164052p:plain

PICkitで書き込む前にやっておくこと

もうあとは書き込むだけ!なんですが、ちょっとだけ調整しなければいけないところがあります。

プロジェクト名を右クリックし、一番下の【Properties】を選択します。
f:id:toboli:20180905164752p:plain

以下のような画面になるので、左側のcategoriesから自分のライターを選択します。
(ここではPICkit3)
f:id:toboli:20180905165247p:plain

【Option categories】から【power】を選び、チェックボックスにチェックを入れます。
その後、【Apply】→【OK】とクリックします。
f:id:toboli:20180905171217p:plain

なんでこんなことをするのか?

今からPICkitを使って書き込みをするのですが、書き込み時にも電力が必要です。
電力供給には

  • 電池やACアダプタをブレッドボードにつないで供給する
  • PICkitから供給する

の2つの方法があります。

書き込みをするときにいちいち電池につなぐより、PICkitからさくっと供給する方が楽なので、今回は②を使います!

その設定が上記だったというわけでした~。


※今回はLチカというそんなに電力のいらない回路だったのでいいのですが、いつかもっとふんだんに電力を使う回路を作ったときは、PICkitからの電力では足りなくて書き込みできなくなる場合があります!その時は電池とか、外部から電力を供給するといいです!

書き込む!

PICkitでパソコンと回路をつないでいきます!
以下のように、USBケーブルはパソコン、ピンヘッダはブレッドボードに刺したピンヘッダにつなぎます。
f:id:toboli:20180905173019p:plain

PICkitの向きですが、PICkitの白い矢印が、ブレッドボードのピンヘッダの1番にくるようにします。
f:id:toboli:20180905173319p:plain

そして、書き込みボタンをクリック!

f:id:toboli:20180905163551p:plain
右側のボタンです!

PICkitの持ち方について

PICkitは、ピンヘッダに対して垂直になるよう、しっかりめに押し込むかんじで持ちます。
ちょっとずれちゃうと書き込み失敗します。(「自分不器用ですから」という人は、ピンヘッダでなくジャンパーでつなぐのも手かも!)

途中でこういう画面が出てくるかもしれませんが、自分が使うツールが選択されていることを確認してOKを押します。
f:id:toboli:20180905174017p:plain

その次に出てくるこれも、今回はスルーしてOKで大丈夫です!
f:id:toboli:20180905174107p:plain

しばらく待っていると、画面下の【Output】の欄に以下のようなメッセージがさりげなく表示されます。
これで書き込み終了です!
f:id:toboli:20180905174346p:plain

Lチカだ~~~!

PICkitを押さえたまま、LEDを見ると…
f:id:toboli:20180905174441p:plain
こんな風にピカ!!ピカ!!と光っているはず!!!

これで、ひとまずLチカ大成功です!!PICを使いこなせた喜びに浸ってください!!
プログラム部分の説明は、次の記事で書いていこうと思います!

ではでは!