今回からPICマイコンのプログラムの基本構造を理解していきます。
今回の説明
PICマイコン電子工作入門の基礎編は、次のステップで説明しています。
この記事の説明は「❸ プログラムを作る」のうち、「プログラム作成手順」を説明します。
- LEDを電池と抵抗のみで光らせる回路を組み立てる
PICマイコンの回路を組み立てる前に、ブレッドボードの取り扱いに慣れておくことにします。電池、抵抗、LEDのみを使って、ブレッドボード上に回路を組み立ててLEDを光らせてみます。ここでは電池、抵抗、発光ダイオードの回路記号と回路図の説明をして、回路図からブレッドボードに組む方法を説明します。まずはブレッドボードに慣れましょう! - PICマイコンのベース回路を組む
PICマイコンのはじめの一歩の回路は、LEDを1秒に1回光らせるだけの回路です。
この回路をブレッドボードに組み立てます。 - プログラムを作る ⬅︎ 今回
LEDを1秒に1回光らせるプログラムを作成します。 - PICマイコンに書き込んで動作させる
作成したプログラムをPICマイコンに書き込んで動作させてみます。 - ベース回路にスイッチを追加
LEDの点滅をスイッチで開始させるために、ベース回路にスイッチを追加します。
これまではLEDを光らせる、という出力制御をしましたが、今度はPICマイコンで外部からスイッチの信号を入力する方法を習得します。 - ベース回路にブザーを追加
スタートスイッチ付きの、1秒に1回光らせる回路を作りましたので、ブザーを追加してタイマーとして完成させます。
プログラムの基本構成
前回の記事では、完成済みのプログラムを中身の説明なしにコピペして、ビルド・書き込み・動作テストまで行いました。
今回の記事から、このプログラムの中身を詳しく理解していきます。
プログラム自体は短いですが、このプログラムでPICマイコンのプログラムの基本構造を理解できるようになっています。
この基本構造は他のPICマイコンでも同様です。ぜひ最初はこのプログラムをすべて理解できることを目標にしましょう!
プログラム構成要素
PICマイコンのプログラムは、次のように基本構造になっています。

これから、それぞれの構成要素に詳しく説明していきます。
今回記事では、❶ コメント部分と❷ ヘッダファイルインクルード部分の説明をします。
規模が大きいプログラムとの違い
PICマイコンプログラムの構成はだいたい上の基本構造になっていますが、規模の大きいプログラムになると少し違うところもあります。
その違いを簡単に確認しておきましょう。
- 「PICマイコンコンフィグレーション設定部分」
この部分では、PICマイコンの動作速度など、ハードウェアの動作仕様を設定します。
高機能のPICマイコンになると、この設定部分がとても長くなるため、main.cには記述せずに別ファイル(例えばconfig.hファイル)に書いて、main.cで#include "config.h"
と記述することがあります。 - 複数ファイルに分割
規模が大きくなってくると、main.cの行数が増えてプログラムが把握しづらくなります。そこで、プログラムを複数ファイルに分けて記述することが多くなります。
今回はひとつのファイルにまとめた方がわかりやすいので、main.cファイルにすべて書きました。今回作成するプログラムは応用編で機能を拡張してもそれほど規模は大きくありません。一方で、最終的には大きな規模のプログラムになる場合は、小規模の試作から始めるケースでも、最初からファイル構成を考えておくとよいと思います。 - メイン関数のファイル名
一般的なC言語プログラムでは、メイン関数はmain.cファイルに記述します。
PICマイコンプログラムではファイル名がmain.cではないケースもあります。例えば、Microchip社のサンプルコードでは、USBキーボードデバイスのサンプルプログラムのメインファイルが「keyboard.c」というケースもあります。
サンプルファイルを参考にするとき、最初にmain.cファイルを探しますが見つからずに焦ることもありますので、頭の片隅に置いておいていただければと思います。
PICマイコンのプログラムに慣れてきたら、ぜひサンプルプログラムなどを確認してみてください。
Microchip社からリリースされているサンプルプログラムは規模の大きいものが多く、そのようなケースではどのようにプログラムを書いていけばよいか参考になります。
それではプログラムの中身を確認していきましょう!
❶ コメント部分
MPLAB X IDEで「main.c」を新規追加すると、ファイルの先頭にコメントが自動的に記述されます。
記述されている内容は、ファイル名と作成者です。(作成者は現在のログインアカウント名が設定されます)
今回はコメントは変更しませんが、今後いろいろなプログラムを作成されるときは、これ以外にも次の内容を記述しておくとよいと思います。
- プログラムの説明
例えば「LEDを1秒に1回光らせるプログラム」など。 - 動作回路の情報
回路図の保存場所や、ブレッドボードをどこにしまってあるか、など。 - 使用するマイコン型番
例えば「PIC12F1822」など。 - プログラムバージョン
- 変更履歴
「プログラムバージョン」について補足します。
簡単なプログラムの場合、コメント部分に変更履歴を書くなどしてプログラムの変更を記録しておくことが多いと思います。
最近ではGitなどのバージョン管理システムで管理することも多くなってきました。
実は、MAPLAB X IDEにもこのパージョン管理システムが搭載されています。
アプリケーションメニュー「Teams」から操作できるようになっていて、次のシステムが利用できます。
- Git
- Mercurial
- Subversion
これらのバージョン管理システムはそれぞれ特徴があり、使い方も異なります。
使い方については書籍やサイトがありますのでご興味があれは勉強してみてください。
バージョン管理システムはツールとして使えるといろいろと役に立ちますのでこちらも是非習得してみてください。
❷ ヘッダファイルインクルード部分
新規プロジェクトを作ってmain.cファイルを新規追加すると、デフォルトで「xc.h」がインクルードされています。
ヘッダファイルのインクルードについては、基本的な機能のプログラムでしたらこの「xc.h」をインクルードすればOKです。
ところで、インクルードしているファイルの内容を確認したいケースがありますよね。
MPLAB X IDEでは、すぐにファイルの内容を確認できるショートカットが用意されています。
例えば、「xc.h」を開きたい場合、macOSの場合は「commandキー」を押しながら、Windowsの場合は「Controlキー」を押しながら、「<xc.h>」の文字列をクリックします。
クリックすると、次のように新しいタブで「xc.h」の中身が表示されます。
インクルードファイルの内容を確認したいケースは結構ありますので、この開き方を覚えておくとよいと思います。
コメント部分とインクルード部分の説明は。
次回はPICマイコンコンフィグレーション設定部分の説明をします。
更新履歴
日付 | 内容 |
---|---|
2016.8.30 | 新規投稿 |
2018.11.24 | インクルードファイルをxc.hのみに変更 |
2025.4.4 | MPLAB X IDE v6.25に対応 |