PICマイコン簡単プログラム入門 part10 – プログラムをよりプラグラムらしく

マイコンを始めたいと思っているフレッシュマンへ。

電気のデの字も知らない超初心者の方でも、このブログどおりに実行すれば、マイコンをすぐに動かせるようになります。年齢関係なし、パソコンさえあれば、小さなお子様から、ご年配の方まで、誰でも、超簡単です。

文系の人にぜひ動かして欲しい!

PICマイコン簡単プログラム入門 part9 - プログラムのエラーを確認しよう
プログラムの間違えた記述を修正してデバッグしてみましょう。間違えた部分は簡単に直せます。プログラム実行しながら「Watch」というウィンドウを見ながら、命令のひとつひとつを詳しく解説していきます。

↑ではpart9からのつづきです。

プログラムをプログラムらしいプログラムに

↑このプログラム、数値だらけで分かりづらいですよね。これをちょっと格好つけて書き直してみましょう。

では、「part5_1.asm」をコピーして名称を「part5_2.asm」にしましょう。「part5_2」というフォルダーをつくって「part5_2.asm」を入れます。わかる場所に置いてください。

※この「part5_1.asm」という名称、あまりよい名称ではなかったですね。こうしていつも失敗します。

あなたのお好みの名称にしてください。ただし、英数字のみで。

では、変えてみます。

	list P=PIC18F4520
LATB	EQU	H’0F8A’
TRISB	EQU	H’0F93′
LED2	EQU	0

	SETF	LATB
	CLRF	TRISB
	BCF	LATB,LED2
	NOP
	END

↑コピペ用ですが、下記のようにタブやスペースを入れて調整してください。

※上記はPICの型式が間違っています。正しくは「4520」←「452」です。

ちょっとプログラムっぽく見えませんか? え、あまり変わらない? で、ですよね。

この命令を「part5_2.asm」に書いて、「part5」~「part9」をご覧になって「Project Wizard」を実行してください。「Watch」ウィンドウも出します。↓

デバッグのやり方をおさらいします。

  1. メニューの「Configure」から「Select Devise」から「PIC18F4520」を選択。
  2. メニューの「Project」から「Project Wizard」。
  3. Step Oneで「PIC18F4520」を選択。
  4. Step Twoで「次へ」。
  5. Step Threeで「Browse」→「part5_2」を入れて「保存」で「次へ」。
  6. Step Fourで「part5_2.asm」を選択して「Add」。右の画面で入ったファイルを選択した「次へ」で「完了」をクリック。
  7. 開いたウィンドウの中の「part5_2.asm」をダブルクリックするとプログラムが開く。
  8. メニュー「Configure」から「Configuration Bits」で、出た画面の「Configuration Bits set in code.」のチェックを外して、一番上OSCの行を「HS oscillator……(4xFOSC)」変更して閉じる。
  9. メニューから「Debugger」→「Select Tool」→「PICkit3」を選択。
  10. メニュー→「Debugger」→「Erase Flash Device」でマイコンの中身を消す。
  11. メニューから「Project」→「Build All」。「Absolute」を選択。「Build All」必ず行ってください。
  12. メニューから「Debugger」→「Program」でマイコンに書き込む。デバッグ用書き込み。
  13. メニューの「View」→「Watch」を選択。
  14. 「Watch」ウィンドウの「Symbol Name」に「LATB」と「TRISB」を入力。

↓「Build All」でこんなエラーがでたら、「Configure」から「Select Device」や「Configuration Bits」を確認してください。

「Step Into」ボタンを一つひとつ押してデバッグしてください。

後手になりましたが、解説しましょう。

「LATB EQU H’0F8A’」とは

「LATB」に「H’0F8A’」を割り当てる疑似命令です。「EQU」はイコール。マイクロチップ社が定めた命令ではありませんが、頻繁に使用します。

part7」にあるスペシャルファンクションレジスタ(SFR)の表を見ますと、「LATB」の番地が「F8Ah」になっていますので、この数値を割り当てました。

次の「TRISB EQU H’0F93’」も同じなので、番地を確認してください。

「LED2 EQU 0」も、0(0bit目)を「LED2」に置き換えました。しかしこれは、0のままの方が分かりやすいかもしれませんね。

ということで、「SETF LATB」や「CLRF TRISB」が表現が使用できるようになりました。どうです、分かりやすくなったと思いませんか? え、そうでもない……。

では、これでどうでしょう?

もっとプログラムをプログラムらしいプログラムに

	list P=PIC18F4520
	#include "P18F4520.inc"
	CONFIG OSC = HSPLL

	SETF	LATB
	CLRF	TRISB
	BCF	LATB,0
	NOP
	END

また命令文が変わりました。

「#include ”P18F4520.inc”」とは

C:\Program Files (x86)\Microchip\MPASM Suite

を開いてください。

たくさんあるファイルの中から、「p18f4520.inc」をテキストで開きます。中身は決していじくらないでください。

前記で解説した「EQU」がたくさんありますね。「LATB」と「TRISB」のEQU宣言もあります。

「#include “P18F4520.inc”」をプログラムに記述すると、「p18f4520.inc」の中身を記述したことになります。

従って、

LATB EQU H’0F8A’

TRISB EQU H’0F93′

の文がいらなくなるのです。

「CONFIG OSC = HSPLL」とは

ここでいうCONFIG(コンフィギュレーション)とは、PICマイコンの動作を決めるレジスタのことです。

クロック発信のモード、パワーオンリセット、ウォッチドッグタイマー、コードプロテクトなどの設定ができます。今は発信モードの設定のみを行っています。あとはデフォルト(初期値)のままです。

「CONFIG OSC = HSPLL」の記述でも設定できます。これで「HS oscillator……(4xFOSC)」に自動的に変更されます。

メニュー「Configure」から「Configuration Bits」で確認してください。

では「LED3」を点灯させてください。

ここまで理解できれば、あとはスラスラいけます。ここで一旦、小休止です。

←part9