PIC16F88に接続した赤色LEDを点灯・消灯させるプログラムを、MPLAB X IDE 6.20のXC8(C言語)で作成し、PICマイコンライタ(PIC K150)を使って書込みます。
実験準備
実習に必要な機器とキットの部品を準備します。
機器
「PIC16F88で実験する環境を構築しよう 」記事で書きましたPIC16F88の実験回路(以下 実験回路)とPICマイコンライタ(PIC K150)、「MPLAB X IDE 6.20」をインストールしたWindows11搭載のパソコンを準備します。
部品
赤色LEDと固定抵抗等、実験に使う部品を準備します。
部 品 名 | 規 格 | 数 量 | 取扱い店(参考) |
LED | 5mm 赤色 (同等品) | 1 | 電子工作ステーション |
カーボン抵抗 | 1/4W 330Ω | 1 | 電子工作ステーション |
配線
赤色LEDと実験回路をジャンパーワイヤーで接続します。
回路図

配線図

MPLABでC言語プログラミング
MPLAB X IDE v6.20 を使って、PIC16F88のC言語プログラムを作成します。
プロジェクトの新規作成
「MPLAB X IDE v6.20」を起動し、メニューの「File」をクリックし、リストボックスから、「New Project…」をクリックします。

New Project-Choose Projectダイアログが表示されますので、Categories:リストから「Microchip Embedded」を選択し、Projects:から「Application Ploject(S)」を選択後、「Next>」をっクリックします。

New Project-Select Deviceダイアログが表示されますので、次のように選択します。
項 目 | 設 定 内 容 |
Fmily: | Mid-Range 8-bit MCUs (PIC10/12/16/MCP) |
Device: | PIC16F88 |
Tool: | Simulator |
Tool:は Microchip社提供しているツール等をパソコンに接続されている場合、ドロップダウンリストに表示されます。(PIC K150が該当しません)
選択後、「Next>」をクリックします。

New Project-Select Compilerダイアログが表示されますので、「XC8(v3.00)[xxxx]」を選択後、「Next>」をクリックします。

New Project-Project Name and Folderダイアログが表示されますので、次のように設定、選択します。
項 目 | 設 定 内 容 |
Project Name: | 任意(ここでは、16F88_blink_led) |
Project Location: | 任意 |
Encoding: | Shift JIS |

選択後、「Finish」をクリックすると、「Projects」ウィンドウに作成したプロジェクトの内容が表示されます。

ソースファイルの作成
プログラムを記述するソースファイルを作成します。
Project(16F88_blink_led)内の「Source Files」を右クリックします。

表示されたリストボックスから、「New 」→「main.c…」と選択します。

New AssemblyLFile.asm-Nae and Locationダイアログが表示されますので、File nameに「任意の名前(16F88_blink_led_src)」を入力し、Extentionに「c」を選択後、「Finish」をクリックします。

Source Files に作成した「ソースファイル(16F88_blink_led_src.c)」が追加され、右側にC言語のひな形が入力された「エディタ」画面が表示されます。

メニューの「File」をクリックし、リストボックスから、「Exit」をクリックし、「MPLAB X IDE v6.20」を終了します。

コンフィグレーションビット
コンフィグレーションビットは、PIC16F88の基本的な動作設定を行い、プログラム作成時にのみ変更できる特殊なビットの集まりで、リセット時に読み出され、PIC16F88のハードウェア機能を有効または無効にします。
「MPLAB X IDE v6.20」を起動し、メニューの「Window」→「Target Memory Views」→「Configuration Bits」をクリックします。

「Configuration Bits」ウィンドウが、Outputエリア内に表示されます。

▶️コンフィグレーションビットの設定
コンフィグレーションビットを「Option」を次のように設定し、「Generare Source Code to Outoput」をクリックします。
Field | Option | 説 明 |
コンフィグレーションビット1 | ||
FSOC | INTOSCIO | 内部RC発振回路を利用します(RA6、RA7ピンは汎用入出力) |
WDTE | ON | ウォッチドッグタイマを有効にします |
PWRTE | OFF | パワーアップタイマーを有効にします |
MCLRE | ON | MCLRピンとして使用します |
BOREN | ON | ブラウンアウトリセットを有効にします |
LVP | ON | 低電圧書き込みを有効にします |
CPD | OFF | データメモリ(EEPROM)の読出しを保護をしない |
WRT | OFF | プログラムメモリへの書込みを保護しない(書込める) |
CCPMX | RB0 | キャプチャ/コンペア/PWM(CCP1)ピンをRB0に指定します |
CP | OFF | PICライターを使ったプログラムメモリの読出しを保護しない(読み出せる) |
コンフィグレーションビット2 | ||
FCMEN | ON | 外部クロックが異常停止した場合、内部クロックに切り替えます |
IESO | ON | 電源立ち上げ時に、外部クロックが安定するまで、内蔵クロックを使用します |

「Output – Config Bits Source」ウィンドウに設定したフィギュレーション・ビットのコードが、自動的に生成されますので、このコードをコピーしてソース・ファイルに貼り付けます。
※今回は貼りつけは行いません。

または、「Output – Config Bits Source」ウィンドウ上で、「Ctrl」+「s」キーを押すと、「Save Output As」ダイアログが表示されますので、任意のフォルダとファイル名を設定して保存し、プロジェクトに追加します。

「MPLAB X IDE v6.20」を終了します。
プログラムの作成とビルド
Source Files に作成した「ソースファイル(16F88_blink_led_src.c)」のエディタに、赤色LEDを500ms間隔で点灯・消灯させるC言語プログラムを作成します。
プログラムの入力
「MPLAB X IDE v6.20」を起動し、「Projects」ウィンドウのソースファイル(16F88_blink_led_src.c)のエディタを表示ます。(表示されていない場合は、ソースファイルをダブルクリックします)

次のプログラムをエディタに入力するか、コピー、貼り付けします。
/*****************************************************************************
赤色LED点灯・消灯プログラム
* File: 16F88_blink_led_src.c
* Author: Hagetamaboti
* Created on 2025/mm/dd
******************************************************************************
ライセンス:SPDX-License-Identifier: MIT
******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
// ********** PIC16F88 コンフィグレーションビットの設定 **********
// コンフィグレーションビット1
#pragma config FOSC = INTOSCIO // 内部RC発振回路を利用します(RA6、RA7ピンは汎用入出力)
#pragma config WDTE = ON // ウォッチドッグタイマを有効にします
#pragma config PWRTE = OFF // パワーアップタイマーを有効にします
#pragma config MCLRE = ON // MCLRピンとして使用します
#pragma config BOREN = ON // ブラウンアウトリセットを有効にします
#pragma config LVP = ON // 低電圧書き込みを有効にします
#pragma config CPD = OFF // データメモリ(EEPROM)の読出しを保護をしない
#pragma config WRT = OFF // プログラムメモリへの書込みを保護しない(書込める)
#pragma config CCPMX = RB0 // キャプチャ/コンペア/PWM(CCP1)ピンをRB0に指定します
#pragma config CP = OFF // PICライターを使ったプログラムメモリの読出しを保護しない(読み出せる)
// コンフィグレーションビット2
#pragma config FCMEN = ON // 外部クロックが異常停止した場合、内部クロックに切り替えます
#pragma config IESO = ON // 電源立ち上げ時に、外部クロックが安定するまで、内蔵クロックを使用します
// ********** グローバル変数定義 **********
#define _XTAL_FREQ 8000000 // 遅延関数(__delay_ms)を使用するためにシステムクロック(8MHz)を設定
#define LEDS_TOGGLE 0x07 //LED点灯・消灯データ
//LED点灯・消灯関数
void Led_On_Off();
// ********** メイン関数 **********
void main(void) {
//SFR(特殊機能レジスタ)設定
OSCCON = 0x70; // システムクロックを内部8MHzに設定
ANSEL = 0x00; // アナログ入力は使用しない(すべてデジタルに設定)
CMCON = 0x07; // コンパレータを無効にする
PORTA = 0x00; // PORTA初期化
PORTB = 0x00; // PORTB初期化
TRISA = 0x00; // PORTAは出力(RA5は入力のみ)
TRISB = 0x00; // PORTBは出力
//無限ループ
while(1)
{
//LED点灯・消灯関数
Led_On_Off();
}
return;
}
// ********** 関数 **********
void Led_On_Off()
{
PORTA = LEDS_TOGGLE; // LED点灯
__delay_ms(500); // 500ms 待ち
PORTA = 0; // LED消灯
__delay_ms(500); // 500ms 待ち
return;
}
ビルド
ビルドは、ソースファイルから、PICに書込むための実行ファイルを生成しますが、プログラムに文法上のエラー等がある場合は、実行ファイルが生成されません。
ツールバーのビルドアイコンをクリックし「Build for Debugging (xxxxxxx)」を選択すると、ビルドが開始しデバッグ用のファイル(xxxxxx.elf)が作成されます。

▶️正常にビルドが完了
正常にビルドが完了すると「Output – xxxx (Buil. Load)」ウィンドウに「BUILD SUCCESSFUL (total time: xxxms)」が表示されます。

エラーがないことを確認した後、実際にPIC16F88に書込む実行ファイル(xxxxxx.hex)を生成するため、ツールバーのビルドアイコンをクリックし「Build Project (xxxxxxx)」を選択します。

正常にビルドが完了すると「Output – xxxx (Buil. Load)」ウィンドウに「BUILD SUCCESSFUL (total time: xxxms)」が表示され、実行ファイルの保存先とファイル名が表示されます。

保存先及びファイル名は、PIC16F88に書込む時に必要となりますので、記録しておきます。
▶️エラーでビルドが完了
エラーがあり、ビルドが失敗した場合は、ツールバーのデバッグアイコンをクリックし、デバッグモードを開始します。

デバッグ用ツールバーに変更されますので、ブレークポイント機能等を利用し、エラーが無くなるまでデバッグを行います。

デバッグ法方については、マイクロチップ社のマニュアル(英語)を参照してください。
実行ファイルをPICに書込む
MPLAB X IDE v6.20 を使って作成、ビルドした、C言語プログラムをPICマイコンライタ(PIC K150)を使ってPIC16F88に書込みます。
書込み準備
PIC K150をWindows11パソコンに接続し、microbrn.exeを起動すると「DIY K150 v 150807」ウィンドウが開きます。
「There appears to be a problem accessing the COM Ptort」エラーが表示された場合は、ドライバーが正常にインストールされていない可能性がありますので、「PIC16F88で実験する環境を構築しよう:PICマイコンライタ(PIC K150)」を参考にしてください。

Chip Selectorを「16F88」を選択し、実際のPIC16F88をPIC K150のゼロプレッシャーICソケットに、レバーを開閉して図のように取り付けます。
PIC16F88のピン1をICソケットのピン2に合わせます。


書込み
正常にビルドされたhexファイルをPIC16F88に書込むため、「Load」ボタンをクリックします。

「Open HEX File」ダイアログが表示されますので、ビルドした時に記録した保存先及びファイル名を指定し、「開く」をクリックします。

「DIY K150 v 150807」ウィンドウに戻りますので、「Program」ボタンをクリックして書込みます。

消去情報が表示されますので、「Yes」をクリックします。

正常に書き込まれると、「Program complete.」ダイアログが表示されますので、「OK」をクリックします。

書込みが完了しましたので、microbrn.exeを終了し、PIC16F88をPICマイコンライタ(PIC K150)から取りはずします。
実機で性能確認
C言語プログラムが書き込まれたPIC16F88を、赤色LEDを接続した実験回路 に実装します。
電源スイッチをONにすると、赤色LEDが500ms間隔で点灯、消灯します。
まとめ
MPLAB X IDE v6.20を使ってC言語でプログラミングを行い、ビルドした実行ファイルをPIC16F88に書込み、赤色LEDを接続した実験回路 に実装して、点灯・消灯させることができました。
ビルドしたHEXファイルを、PIC K150を使ってPIC16F88に書込み、実際に動作することを確認しました。