【
MPC17-01
】
PIC12F1822
マイコンプログラミング初歩の初歩
1
プログラミングの前の準備
(1) プログラムの開発環境の準備とプロジェクトの作成
別添資料「PICマイコンにプログラムを書き込む方法」を参照のこと。
今回は、あらかじめ準備されている学習用プロジェクトファイルmpc17_01を使う。
(2) 学習用プロジェクトファイルの展開
圧縮ファイル“mpc17_01.X.zip”をデスクトップに展開する。
(3) 統合開発環境MPLAB XIDEでプロジェクトを開く。
(a) MPLAB XIDEを起動する。
(b) [File]-[Open Project ...]をクリック
(c)デスクトップの場所を指定し、”MPC17_01.X”をダブルクリックして開く。
(d) MPLAB XIDEでは、複数のプロジェクトを開くことができるので、”Main Project”に設定したプロジェ クトだけをビルドするようになっている。そこで、mpc17_01をMain Projectとするため、MPLAB XIDEの
2
マイコンで
LED
を点滅(いわゆる”L
チカ”)するまで
(1) 回路図(2) 実体配線図
(3) 関連知識:マイコンのピン配置
マイコンに限らずICの端子(ピン)には番号があり、凹部を
左に置いたときに、左下から反時計回りに1, 2, 3, …と振られて
いる。(図)
このテキストで使用するワンチップマイコ ンPIC12F1822のピンには、複数の機能が割
り当てられているが、この後の説明で使用す る機能は、右図のとおりである。
(4) PICkit3の接続
図のように、PICkit3を接続する。
図では、単3乾電池3本としているが、2本でも動作する。
PIC 12F1822 1234 5 6 7 8
凹を 左に
A
+
-PIC 12F1822 A A150Ω
茶緑茶金
部品
PIC 12F1822
PINの機能
1 23 4 5 6 7 8
VDD +電源
RA5
入出力 アナログ入力RA4/AN3 ポート
RA3 入力 RA2 入出力
RA1 入出力 RA0/CPS0
入出力/タッチセンサ
VSS -電源
PICkit3
PIC
12F1822 VSS Ground
VDD
(5) プログラムの編集
(a) MPLAB XIDEの画面で、”MPC17_01”-”Header Files”-”mpc_settings.h”を開く。
(b) 22行目を修正
#define BLINK_INTERVAL 10000 // LEDが点滅する時間間隔
数値の10000を変えると、LEDが点滅する時間間隔を変えら
れる。
(6) ビルドと書き込み
[Make and Program Device Main Project]のアイコンをクリック
[CAUTION]警告のダイアログボックスが表示されたら、
電源が正しく接続されていることを確認して、[OK]をクリック。
(標準では、PICkit3から電源供給をしないので、問題はない)
※書き込みの段階で、赤い字でエラーメッセージが出る場合、電源が接続 されていなかったり、ジャンパーコードの接続に不具合があったりすることが多い。
3
ブザーを鳴らす
電源を入れるとブザが鳴る回路とプログラム
(1) 回路図
(2) 実体配線図
(3) プログラム
(a) MPLAB XIDEの画面で、”MPC17_01”-”Source Files”-”mpc17_01_main.c”を開く。
(b) 41行目を修正
bootBeep(); // 起動時の音を鳴らす。
行頭の // を削除する。
(4) ビルドと書き込み
[Make and Program Device Main Project]の アイコンをクリック
[CAUTION]警告のダイアログボックスが表示 されたら、
電源が正しく接続されていることを確認して、[OK]をクリッ
ク。
X IDEの下側の[Output]に[Programming/Verify complete]と表示されたら、書き込み完了。
部品
圧電ブザー
A
+
4
タイマ(決まった時間が経過したらブザーを鳴らす)
電源を入れてから決まった時間(秒数)が経過したらブザーを鳴らす回路とプログラム
(1) 回路図
前と同じ。
(2) 実体配線図
前と同じ。
(3) プログラム
(a) MPLAB XIDEの画面で、”MPC17_01”-”Source Files”-”mpc17_01_main.c”を開く。
(b) 39行目を修正
initTimer0(); // Timer0 の初期化
行頭の // を削除する。
(c) 47行目を修正
T0Counter = 0; // タイマをリセットする。
行頭の // を削除する。
(d) 55行目と62行目の行頭の//を削除する。
// タイマを使う
if (T0Counter > TIMER_1SEC * TIME_LIMIT) { // TIME_LIMIT[秒]たったら alarmBeep(); // アラームを鳴らす // ledOff(); // LED を消す
// while(!isTouch(CAP_PAD)); // タッチセンサが落ち着くまで待つ // while(isTouch(CAP_PAD)); // タッチセンサに触るまで待つ // startBeep(); // スタートの音を鳴らす
// T0Counter = 0; // タイマをリセットする。 }
(4) ビルドと書き込み
[Make and Program Device Main Project]の アイコンをクリック
[CAUTION]警告のダイアログボックスが表示 されたら、
電源が正しく接続されていることを確認して、[OK]をクリッ
ク。
X IDEの下側の[Output]に[Programming/Verify complete]と表示されたら、書き込み完了。
A
+
5
静電式タッチセンサ
タッチすると、タイマが計時を始める回路とプログラム。
(1) 回路図
(2) 実体配線図
(3) プログラム
(a) MPLAB XIDEの画面で、”MPC17_01”-”Source Files”-”mpc17_01_main.c”を開く。
(b) 38行目の行頭の// を削除する。
initCPSV(); // 静電容量式タッチセンサの初期化
(c) 44-46行目の 行頭の// を削除する。
// タッチセンサを使う
while (!isTouch(CAP_PAD)); // タッチセンサが落ち着くまで待つ while (isTouch(CAP_PAD)); // タッチセンサに触るまで待つ startBeep(); // スタートの音を鳴らす
(d) 57-61行目の行頭の//を削除する。
ledOff(); // LEDを消す
while(!isTouch(CAP_PAD)); // タッチセンサが落ち着くまで待つ while(isTouch(CAP_PAD)); // タッチセンサに触るまで待つ startBeep(); // スタートの音を鳴らす
T0Counter = 0; // タイマをリセットする。
部品
ジャンパ線
A
+
(4) ビルドと書き込み
[Make and Program Device Main Project]の アイコンをクリック
[CAUTION]警告のダイアログボックスが表示 されたら、
電源が正しく接続されていることを確認して、[OK]をクリッ
ク。
X IDEの下側の[Output]に[Programming/Verify complete]と
表示されたら、書き込み完了。
(5) マイコンの再起動
静電式タッチセンサを有効にするには、プログラムを書き込んだ後、以下の操作を行う。
(a) PICkit3の接続を外す。
(b)電池を外す。
(c)電池を入れる。(マイコンをリセット)
(6) アラームが鳴るまでの時間を設定
(a) MPLAB XIDEの画面で、”MPC17_01”-”Header Files”-”mpc_settings.h”を開く。
(b) 25行目を修正
// タイマの制御
#define TIME_LIMIT 10 // アラームが鳴るまでの時間(秒)
数値の10を変えると、タイマが動作してアラームが鳴るまで