今回は、PIC16F688を使ってLEDの点滅を行います。

必要なソフトウェアや機材は準備完了している前提で書いています。
PIC開発に必要なものがそろってない場合は、こちらから準備をお願いします。
shizenkarasuzon.hatenablog.com
- 用意するもの
- 1.プログラムを書く
- 2.ビルドとHEXファイルの作成
- 3.PICプログラマーを起動
- 4.ライターをPCに接続
- 5.PICプログラマにライターを認識させる
- 6.PIC選択
- 7.HEXファイル読み込み
- 8.PICをライターにセット
- 9.書き込み!
- 10.回路製作
- 11.動作テストォォ!
用意するもの
必要なもの一覧です。
PIC開発共通
| PICライター | この記事は、AKI-PICプログラマー4で行っていますが、PICKitでもOK |
|---|---|
| シリアル・USB変換ケーブル | AKI-PICプログラマー4とPCの接続に使用 |
| PICライター用電源 | 15V200mA以上の2.1mmDCジャック付き |

また、以下のソフトウェアがインストールされ、USB端子のあるパソコンが必要です。
| MPLAB X IDE | PICのプログラム開設に必要 |
|---|---|
| PICプログラマー4 Beta | AKI-PICプログラー専用のPICライターソフトウェア |

この実験で必要なもの
| PIC16F688(1個) | 秋月電子等で購入可能 |
|---|---|
| LED(1個) | 適当 |
| LED用抵抗(1個) | LEDの順方向電流調整用 |
| MCLR用抵抗(1個) | 1kΩあたり |
| 0.1μF積セラ | 積層セラミックコンデンサの略。電源平滑化用 |
このほかにもブレッドボードなどがあると便利です。
1.プログラムを書く
この記事に沿って、「MAPLAB X」を使って以下のプログラムをビルドします。
shizenkarasuzon.hatenablog.com
プロジェクトを新規作成する必要があります。
PICを選択する画面があれば、PIC16F688を選択てください。
プロジェクトの新規作成が終わったら、そのプロジェクトに新しくソースファイルを作成し、そこに以下のプログラムを書き込みます。
#pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/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 = ON // MCLR Pin Function Select bit (MCLR pin function is MCLR) #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) #pragma config BOREN = ON // Brown Out Detect (BOR enabled) #pragma config IESO = OFF // Internal External Switchover bit (Internal External Switchover mode is disabled) #pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled) #include <xc.h> #include <htc.h> #define _XTAL_FREQ 31000 void main(void) { OSCCON = 0; PORTC = PORTA = 0; while(1){ TRISA = 0x1F; TRISC = 0x0F; RA5 ^= 1; __delay_ms(500); } return; }
現時点では、MAPLAB Xの画面はこのようになっています。

今から、上のプログラムをPIC16F688に書き込む工程です。
2.ビルドとHEXファイルの作成
ビルドすると、右下の画面に以下のような文字が出てくると思います。
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
(途中省略)
Memory Summary:
Program space used 22h ( 34) of 1000h words ( 0.8%)
Data space used 4h ( 4) of 100h bytes ( 1.6%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
Data stack space used 0h ( 0) of 50h bytes ( 0.0%)
Configuration bits used 1h ( 1) of 1h word (100.0%)
ID Location space used 0h ( 0) of 4h bytes ( 0.0%)
make[2]: Leaving directory 'C:/Users/(ユーザー名)/MPLABXProjects/LED_BLINK.X'
make[1]: Leaving directory 'C:/Users/(ユーザー名)/MPLABXProjects/LED_BLINK.X'
BUILD SUCCESSFUL (total time: 5s)
Loading code from C:/Users/Owner/MPLABXProjects/LED_BLINK.X/dist/default/production/LED_BLINK.X.production.hex...
Loading completed
このうち、下から約6行目にある、
make[2]: Leaving directory 'C:/Users/(ユーザー名)/MPLABXProjects/LED_BLINK.X'
の部分に注目してください。ここにHEXファイルという、PICへ書き込むのに必要なファイルが作成されています。
僕の開発環境の場合、「C:\Users\(ユーザー名)\MPLABXProjects\LED_BLINK.X\dist\default\production」というフォルダの中に、
「LED_BLINK.X.production.hex」という名前でHEXファイルが保存されていました。
HEXファイルなので拡張子は「.hex」です。
今から、このHEXファイルをPICライターを使ってPICに書き込みます。
3.PICプログラマーを起動
AKI-PICプログラマーに電源を入れます。
DCジャックを差し込むのですが、ここでひとつ注意!
DCジャック電源の極性について!
DCジャックにはセンター+タイプとセンターマイナスのタイプがあります。
センタープラスタイプは中央がプラス極、外側にむき出しの金属部分がマイナス極ですが、センターマイナスのDCジャックは極性が逆です!
そのため、事前にボードのジャンパーピンを変更しておく必要があります。

センタープラスの電源を使う場合は、1ピンと3ピンを接続、また2ピンと4ピンを接続してください。
センターマイナスの場合は、1ピンと2ピン、3ピンと4ピンを接続してください。
間違って逆向きにジャンパーピンを指すと、プラスマイナスを逆に電源を供給していることになるので、ライターが即昇天します!
ライターの電源を入れると、PowerLED(赤色)が点灯し、D1LED(赤色、小さい基板上のチップLED)が2回点灯します。
4.ライターをPCに接続
USBシリアル変換ケーブルでPICライターとPCを接続します。この時、接続したCOMポートを確認しておく必要があります。
COMポートの確認は、デバイスマネージャから行うことができます。

上の画像の場合、PICライターは、「Prolific USB-to-Serial Comm Port」という名前でCOM3に認識されています。
5.PICプログラマにライターを認識させる
AKI-PICプログラマー専用ソフト、「PICプログラマー4 Beta」を起動します。
こんなアイコンのソフトウェアです。

まだPICプログラマー4 Beta をインストールしていない場合は、以下のサイトを参考にインストールしてください。
shizenkarasuzon.hatenablog.com
このソフトを起動するお、このような画面が表示されます。

ここで、COMポートを選択するウィンドウで、PICライターを認識したCOMポートを選択します。
今回の場合、デバイスマネージャで確認するとCOM3になっていたので、「COM3」を選択します。

もし、上の写真のようなCOMポート選択画面が表示されない場合は、下の「通信」ボタンを押してください。

COMポートを選択した後、右下の「メッセージ」欄に「COM3を選択しました」のように表示されていれば、正常にPICライターが認識されています。
7.HEXファイル読み込み
STEP2で作成したHEXファイルをPICプログラマー4 Betaに読み込みます。
「HEXロード」ボタンを押して、MPLABXでビルドしたときに作成したHEXファイルを選択します。

右下の「メッセージ」欄に「ファイルロード完了」と表示されればHEXファイルが正しく読み込まれています。
コンフィグレーションビットの設定がソースファイルと同じになっているかを確かめるのも一つの確認方法です。
8.PICをライターにセット
PICマイコンをライターにセットします。
PICをセットする向きや位置などは、「PICマイコン情報(下写真)」というウィンドウの通りにしてください。

上の図の場合、このようになります。
確認する部分は、①ジャンパピンの位置と、②PICの差し込み位置と、③PICのセットする向きの3つです。
③については、すべてのICには通称「切り欠き」と呼ばれるかけた部分があるので、それを目印にして向きを揃えます。


9.書き込み!
いよいよPICにプログラムを書き込みます!
右上の「プログラム」ボタンを押します。

下のような画面が出てくる場合もありますが、「はい」を選択します。

すると、書き込みが始まります....

右下の「メッセージ」欄に
プログラミング成功。 31sec 終了時刻:(省略)Pass = 1 Fail = 0
と書かれて入れば、正常に書き込みが完了しています!!
10.回路製作
PICマイコンにプログラムが書き込まれたので、あとは回路を組んで動かすだけです。
以下のような回路を作成します。
PIC16F688のデータシートを見ながら回路作成を行います。
http://ww1.microchip.com/downloads/en/DeviceDoc/41203B.pdf
16F688のピンアサインは次のようになっており、今回使用するのは黄色でマーカーをつけたピンです。

回路図です。

ブレッドボード上で実験します。

上の回路図をよく見て製作してください。
11.動作テストォォ!
では、電源を入れます。

LEDが0.5秒ごとに点滅したでしょうか?

