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