0. 準備 2004 年 8 月に本講義ノートを Web にアップして以来, とても多くの方の訪問を受けてきました. 内容が一部古くなっていたので,2012 年 5 月時点の情報に書き改めました. 主な変更点は以下の通りです. 1. プログラム開発環境 (MPLAB IDE) を v8.84 に更新しました. 2012 年 5 月時点での最新バージョンは MPLAB X IDE v1.10 ですが, アセンブラの勉強のためには, 旧バージョンの v8.84 が良さそうです.( 筆者が X を使いこなしていない.) 2. ブレッドボード上に回路を製作し, その詳細を記しました. ハンダ付けをほとんど必要とせずにマイコン回路を製作できました. 3. 部品を全てネットで購入して, その仕様と入手先を記しました. 入手が容易な部品ばかりでマイコン回路を製作しました. 4.In-Circuit Debugger/Programmer に PICkit3 を用いました. ブレッドボード上のマイコンへのプログラミングに PICkit3 を使用した例を記しました. 1
目次 0.1 PIC16F84A を用いた実験回路図 ( 第 6,7 章,9 章用 ) 回路図立体配線図 0.2 部品リスト部品名, 型式, 価格, 購入先 (2012.5 時点 ) 0.3 各部品について 0.4 PICkit 3 との接続 0.5 完成写真 0.6 MPLAB IDE v8.84 0.6.1 プロジェクトファイルの作り方 0.6.2 ソースファイルの作り方 0.6.3 ビルドの仕方 0.6.4 シミュレーションの仕方 0.6.5 SW1, SW2, SW3 入力のシミュレーションの仕方 0.6.6 マイコンへのプログラムの書き込み方と実行の仕方 0.7 ステッピングモータの実験回路図 ( 第 8 章用 ) 回路図立体配線図部品リスト完成写真 2
0.1 PIC16F84A を用いた実験回路図 ( 第 6,7 章,9 章用 ) 液晶モジュール 1. Vdd 2. Vss 3. Vo 5. R/W 4. RS 6. E 14. DB7 13. DB6 12. DB5 11. DB4 VR 1 50kΩ セラミック発振子 4MHz RA1 RA0 OSC1 OSC2 Vdd RB7 RB6 RB5 RB4 PIC16F84A RA2 RA3 RA4 MCLR Vss RB0 RB1 RB2 RB3 R 2 10kΩ R 3 10kΩ R 4 10kΩ R 5 510Ω R 6 510Ω R 7 510Ω R 1 10kΩ MCLR Vdd Vss PGD PGC LVP SW 2 LED 3 SW 3 SW 1 LED 2 LED 1 図 1 PICkit3 用コネクタ 第 6,7,9 章の実験回路 3
液晶モジュール 1. Vdd 2. Vss 3. Vo 5. R/W 4. RS 6. E 14. DB7 13. DB6 12. DB5 11. DB4 R 2 10kΩ R 3 10kΩ R 4 10kΩ VR 1 50kΩ 電池ボックス単 3 4 セラミック発振子 4MHz SW 3 SW 2 SW 1 R 5 510Ω R 6 510Ω R 7 510Ω PIC16F84A LED 3 LED 2 LED 1 R 1 10kΩ MCLR Vdd Vss PGD PGC LVP PICkit3 用コネクタ 図 2 第 6,7,9 章の実験回路の立体配線図
0.2 部品リスト 表 1 品名 型式 個数 単価 値段 入手先の例 PICマイコン PIC16F84A-20I/P 1 250 250 秋月電子通商 LCDキャラクタディスプレイモジュール 16 2 行バックライト無し 1 500 500 抵抗 510Ω, 1/4W 100 個入り 1 100 100 10kΩ, 1/4W 100 個入り 1 100 100 半固定ボリューム 50kΩ, 1 50 50 LED 5mm 赤 10 個入り 1 100 100 ピンヘッダ L 型オス, 1 6 (6P) 1 20 20 ピンソケット 1 6 (6P) 1 30 30 セラミック発振子 4MHz コンデンサ内蔵タイプ 1 20 20 タクトスイッチ 赤 1 10 10 黄 1 10 10 緑 1 10 10 ブレッドボード ジャンパーワイヤー 電池ボックス 耐熱電子ワイヤー EIC-102J ( ジャンパーワイヤー付き ) ブレッドボード ジャンパーコード ( オス-オス ) セット 64 本入り単 3 4 本フタ付きプラスチック スイッチ付き協和ハーモネット KQE0.5mm L-2 6 色 1 600 600 1 200 200 1 150 150 1 410 410 せんごくネット通販 PICkit3 1 3900 3,900 秋月電子通商 部品表総計 6,460 5
0.3 各部品について 穴 ボード内の配線 図 3 ブレッドボード 黒い線でつながれた穴同士が内部でつながれています. - A B C D E F G H I J 1 1 5 5 10 10 60 60 A B C D E F G H I J + + + + - - 図 4 - ブレッドボードの穴のつながりの様子 6
18 10 RA1 RA0 OSC1 OSC2 RA2 RA3 RA4 MCLR Vdd RB7 PIC16F84A CY8C 24123 Vss RB0 RB6 RB1 RB5 RB2 RB4 RB3 1 9 図 5 PIC16F84A 図 6 セラミック発振子 4MHz コンデンサ内蔵型 7
1 3 2 4 1 3 2 4 タクトスイッチの記号と端子のつながり タクトスイッチ 図 7 タクトスイッチ 8
上 a b c 202 = 20 10 2 [Ω] = 2 [kω] a b c c 前 b a b c 下 可変抵抗器 ( ボリューム ) の例 (2kΩ) 可変抵抗器の構造 ( 上から見た図 ) a 可変抵抗の記号 図 8 可変抵抗器 ( ボリューム ) 9
5 1 1 金 抵抗 (510Ω) 抵抗の記号 = 51 10 1 ± 5% = 510Ω ± 5% カラーコードの意味黒 :0 茶 :1 金 : ±5% 赤 :2 銀 : ±10% 橙 :3 無し : ±20% 黄 :4 緑 :5 青 :6 紫 :7 灰 :8 白 :9 図 9 抵抗 10
アノード カソード アノード足の長い方 カソード LED( 発光ダイオード ) の記号 LED ( 発光ダイオード ) 図 10 LED ( 発光ダイオード ) 11
ピンソケットが付属している 液晶表示器と付属ピンソケット ピンソケットをハンダ付けしてください. この実験回路で唯一ハンダ付けを必要とする箇所です. 表 裏 付属ピンソケットのハンダ付け 図 11 液晶表示器 (LCD キャラクタディスプレイモジュール ) 12
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 E R/W RS Vo Vss Vdd 14 13 2 1 図 12 液晶表示器のピン配置 13
0.4 PICkit 3 との接続 ピンヘッダ ピンソケット PIC16F84A 図 13 ピンヘッダとピンソケット セラミック発振子 10MHz PICkit3 用コネクタ挿入箇所 ピンヘッダ挿入 ピンソケット挿入 図 14 PICkit 3 用コネクタの接続の様子 14
図 15 PICkit 3 の接続 15
0.5 完成写真 図 16 完成写真 16
0.6 MPLAB IDE v8.84 Google などで MPLAB IDE v8.84 と入力して検索することで, 直接当該ページを開くことができる. 17
0.6.1 プロジェクトファイルの作り方 MPLAB IDE v8.84 をインストールすると C:Program Files (x86) もしくは C: Program Files のフォルダ内に Microchip のフォルダが作られます. このフォルダ内に例えば PIC16F84A_Test というフォルダを作り, さらにその中に例えば mov-w というフォルダを作ってください. 18
MPLAB IDE v8.84 をダブルクリック Project Project Wizard PIC16F84A を選択 Microchip MPASM Toolsuite を選択 19
PIC16F84A_Test を選択 mov-w のフォルダをダブルクリック たとえば,mov-w という名前にします. mov-w のフォルダの中に,mov-w.mcp という名前の Project File を作ります. 20
何もしないで次へ 完了 21
0.6.2 ソースファイルの作り方 ( ソースファイルの詳細は第 2 章を参照してください.) File Add New File to Project mov-w のフォルダをダブルクリック たとえば,mov-w.asm という名前にします. 22
Source Files のフォルダの下に mov-w.asm のアイコンが現れ, 同時に mov-w.asm の入力画面が開かれます. プログラムを打ち込みます 23
0.6.3 ビルドの仕方 Debugger Select Tool MPLAB SIM Project Make この画面が現れるので Absolute を選択 ビルド成功 24
0.6.4 シミュレーションの仕方 View Special Function Registers カーソルをここに持ってきて右クリック 25
Decimal と Binary を表示 W レジスタの中の数字が表示されています. ファンクションキーのF7を押して, プログラムを一行ずつ実行 WREG (Wレジスタ) の中の数字がどう書き換えられていくかを確認してください. 26
最後に Window 画面を閉じるますが, そのとき以下の問に はい と答えます. 以降は mov-w のフォルダ内の mov-w.mcp のアイコンをダブルクリックするだけで前スライドの画面が立ち上がります. 27
0.6.5 SW1, SW2, SW3 入力のシミュレーションの仕方 ( ソースファイルの詳細は第 6 章を参照してください.) PIC16F84A 1 RA2 RA1 18 液晶ディスプレイ 5V R 4 R 3 R 2 2 RA3 RA0 17 3 RA4 OSC1 16 4 MCLR OSC2 15 5 Vss VDD 14 E RS DB4 DB5 DB6 DB7 6 RB0 RB7 13 SW 1 7 RB1 RB6 12 SW 2 SW 3 8 RB2 RB5 11 9 RB3 RB4 10 R 7 R 6 R 5 LED 1 LED 2 LED 3 図 17 マイコンの周辺回路 28
SW 1, SW 2, SW 3 の入力をシミュレートするには Debugger Stimulus New Workbook として Pin/SFR の列のセルを左クリックしてプルダウンメニューより RB0, RB1, RB2 を選びます. それぞれの Action を例えば Set High, Set Low, Set High と設定し, それぞれの行の先頭の Fire ボタンを押します.F7 ボタンを押しながらステップ実行をすると MOVF PORTB, 0 の命令を実行した段階で,W レジスタに 00000101 が入力されます. プログラムの詳細は第 6 章を参照してください. 29
0.6.6 マイコンへのプログラムの書き込み方と実行の仕方ブレッドボード上のピンソケットにPICkit3を差し込み, ブレッドボードの電源を入れてください.USBケーブルでパソコンとPICkit3を接続して, Programmer Select Programmer PICkit3 により以下のメッセージが出れば, マイコンとPICkit 3は正しく接続されています. これらのメッセージが出れば OK 30
Project Make Programmer Program ( ツールバーの右端近くにある ) をクリックするとボード上のマイコンを実行できます. もしくはピンソケットからPICkit 3を引き抜くことでもマイコンを実行できます. 以下のような動作を確認してください. プログラムの詳細は第 6 章を参照してください. 液晶 PIC16F84A ディスプレイ 1 RA2 RA1 18 2 RA3 RA0 17 E RS 5V 3 RA4 OSC1 16 R 4 R 3 R 2 4 MCLR OSC2 15 DB4 DB5 DB6 DB7 5 Vss VDD 14 6 RB0 RB7 13 SW 1 7 RB1 RB6 12 SW 2 8 RB2 RB5 11 9 RB3 RB4 10 SW 3 R 7 R 6 R 5 LED 1 LED 2 LED 3 スイッチオフ スイッチオン 図 18 LED 点灯の様子 点灯 消灯 点灯 31
0.7 ステッピングモータの実験回路図 ( 第 8 章用 ) +12V +12V Tr 1 2SC1815 VR 1 10kΩ R 2 3.3kΩ R 1 1kΩ C 10µF + セラミック発振子 4MHz RA1 RA0 OSC1 OSC2 RA2 RA3 RA4 MCLR Vdd RB7 PIC16F84A CY8C 24123 Vss RB0 RB6 RB1 RB5 RB2 RB4 RB3 R 5 10kΩ ステッピングモータ駆動回路 RB0 RB1 RB2 RB3 +6V MCLR Vdd Vss PGD PGC LVP R 3 10kΩ R 4 10kΩ SW 2 SW 1 GND PICkit3 用コネクタ GND 図 19 第 8 章の実験回路 ( マイコン回路 )
X Vdc X Y Vdc Y +12V D 1 D 2 D 3 D 4 Tr 2 2SC2120 Tr 3 2SC2120 Tr 4 2SC2120 Tr 5 2SC2120 マイコン回路 R 6 510Ω R 7 510Ω R 8 510Ω R 9 510Ω RB0 RB1 RB2 RB3 GND 図 20 第 8 章の実験回路 ( ステッピングモータ駆動回路 )
+12V +12V Tr 1 2SC1815 VR 1 10kΩ R 2 3.3kΩ 電池ボックス単 3 4 R 1 1kΩ セラミック 発振子 4MHz SW 2 SW 1 PIC16F84A ステッピングモータ駆動回路 C 10µF RB0 RB1 RB2 RB3 電池ボックス単 3 4 +6V MCLR Vdd Vss PGD PGC LVP PICkit3 用コネクタ R 3 10kΩ R 4 10kΩ R 5 10kΩ GND 図 21 第 8 章の実験回路の立体配線図 ( マイコン回路 ) GND
+12V Vdc X X Y Y D 1 D 2 D 3 D 4 Tr 2 2SC2120 Tr 3 2SC2120 Tr 4 2SC2120 Tr 5 2SC2120 マイコン回路 R 6 510Ω R 7 510Ω R 8 510Ω R 9 510Ω RB0 RB1 RB2 RB3 GND 図 22 第 8 章の実験回路の立体配線図 ( ステッピングモータ駆動回路 )
表 2 部品表総計 6,460 品名型式個数単価値段入手先の例ステッピングモータ SPG20-1362 1 250 250 秋月電子通商 トランジスタ ダイオード 2SC2120-Y 35V800mA 20 個入り 2SC1815-GR 60V150mA 20 個入り整流用ショットキーダイオード 30V1A 1S3 1 200 200 1 100 100 4 30 120 抵抗 510Ω, 1/4W 100 個入り 1 100 100 1kΩ, 1/4W 100 個入り 1 100 100 3.3kΩ, 1/4W 100 個入り 1 100 100 10kΩ, 1/4W 100 個入り 1 100 100 半固定ボリューム 10kΩ, 1 50 50 コンデンサ 10µF 16V 1 10 10 ピンヘッダ L 型オス, 1 6 (6P) 1 20 20 ピンソケット 1 6 (6P) 1 30 30 セラミック発振子 4MHz コンデンサ内蔵タイプ 1 20 20 タクトスイッチ 赤 1 10 10 緑 1 10 10 ブレッドボード 電池ボックス 耐熱電子ワイヤー EIC-102J ( ジャンパーワイヤー付き ) 単 3 4 本フタ付きプラスチック スイッチ付き協和ハーモネット KQE0.5mm L-2 6 色 1 600 600 2 150 300 1 410 410 せんごくネット通販 総計 2,530 36
X Vdc X Y Vdc Y X Y Vdc Vdc X Y 端子の配置の様子です. 図 23 ステッピングモータ SPG20-1362 37
ステッピングモータのリード線をブレッドボードに挿入しやすくするために, リード線の先にスズメッキ線をハンダ付けしておくと便利です. 本資料の唯二のハンダ付けです. 2 テープで補強する. 2 スズメッキ線 ( 抵抗などの部品のリード線の切れ端でもよいです ) をハンダ付けする. 1 被覆を剥く 図 24 ステッピングモータのリード線の加工 38
帯がダイオードの向きの目印です. カソード アノード カソード アノード ダイオードの記号 ショットキーダイオード (30V, 1A) 図 25 整流用ショットキーダイオード 39
同じものを向きを変えて撮影しました. - 電極側には - 印が記入されています. + 足の長い方が + 電極です. 電解コンデンサ (10µF 16V) 電解コンデンサの記号 図 26 電解コンデンサ 40
コレクタ (C) ベース (B) エミッタ (E) E C B E C B トランジスタ ( 左 :2SC2120(NPN 型 ) 右 :2SC1815(NPN 型 )) NPN 型トランジスタ (2SC2120, 2SC1815) 図 27 トランジスタ 41
図 28 完成写真 ( マイコン回路 + ステッピングモータ駆動回路 ) 42
2012 年 5 月 43