Microchip社から無償で提供されているMPLABがありますね。
http://www.microchip.com/10/tools/archive/mplabi/mp520ful/index.htm
(ここから、Mp520ful.exeをダウンロードして
 インストールして下さい。【結構でかいです10MB超え】)

これは、PICのプログラムをPICに焼き付け出来るHEXファイルを作る
コードジェネレータだけでなく、
PC上でプログラムをシュミレーションも出来ます。
(オートデザインさんは既にやられていますね!)

このMPLABで同じく付いてくるサンプルプログラム(sample.asm)を使って
プログラムのアセンブルとPCでのシュミレーションをやって見ましょう。

サンプルプログラム(sample.asm)は 
かけ算をするプログラムが書かれています。
プログラムはこちら(禁転載)

mpy と名前が付けられたサブルーチンでそれを行っており、
PICが起動されてstartと書かれたラベルからプログラムが実行され、
mpyに35(16進)に2D(16進)をかけた答えを出させています。
答えはRAMに格納されます。
(プログラムではH_byteとL_byte と名付けられた 
 二つ合わせて16ビットの長さを持つデータ です。)

これをMPLABでプロジェクトとしてアセンブルして
シュミレーションコードは作成し、PC上でシュミレーションさせます。
PICの命令を1ステップずつ走らせてその動きと
命令によって変わるデータ(RAM)やSFRを見ることが出来ます。
RAMやSFRは実行途中に書き換える事もできますから
sampleプログラムのかけ算に渡す情報を変える事もできます。

では、以下長くなりますが、私がやった手順を順にご紹介します。
1.プロジェクトの作成
2.プロジェクトのビルド
3.PC上でsampleプログラムを動かす



1.プロジェクトの作成

MPLABを起動します。
スタートメニュー>プログラム> Microchip  MPLAB>MPLAB

sample.pjtと言う名前のプロジェクトを作成します。
 MPLABがインストールされたホルダに作ります。
 sample.asmもそのホルダにあるはずです。
 (通常 C:\Program Files\MPLAB です)

メニューから
Ploject > New Project...
で表示された窓で 


sample.pjt とファイル名を指定しOKクリック。

Edit Project窓が表示されます。

Development Modeをシュミレータモードに変更します。
Change... をクリックしてDevelopment Mode窓を表示

Toolsタブ で MPLAB-SIM Simulatorを選択します。

(このタブで Processor (PICの種類も選択します)、今回はPIC16F84)

OKをクリックして

Development Mode が MPLAB-SIM16F84になっていることを確認します。

次に、その下方のProject Files 中の sample[.hex]をクリックすると

その右下にNode Properties ボタンが表示されるのでそれをクリックし

窓を出し何もせずにOKボタンクリック


Edit Project窓に戻るとAdd Nodeボタンが表示されます。
ここをクリックして、

その窓でsample.asmを選択してOKで戻り。


Edit Project窓をOKで終了します。

2.プロジェクトのビルド
 メニューから
 Project > Build ALL

 でビルドが行われ
 Build Results 窓に結果が表示されます。

  Build completed successfully. が表示されたらOKです。
<Build Allは アイコンクリックでも行えます>

3.PC上で、そのsampleを動す。

まずは、ROM, RAM, SFR, アセンブラリスト ウインドウを表示させます。
Window>Program Memory
Window>File Registers
Window>Special Function Registers
Window>Absolute Listing



では、1ステップ実行してみます。
MPLABのアイコンに足形のアイコン(切れ目が入っていない)があります。

これをクリックすると1ステップ実行されます。
(または、Debug >Run >Step でも同じ)

Program Memory Windowで
start と言うラベルが反転表示されています。

これがプログラムソース上ではこの箇所まで来たと言うことを示しています。

この時、他の窓もみれば、情報が表示されています。
実行した命令の結果変わった内容が赤文字で表示されています。

同時に Watch ウインドウを開いて、プログラムで使っている変数(データ)を
ウオッチします。これは、RAMの内容やSFRの内容がウオッチでき、
RAMと違うところはプログラムで与えた変数の名前でその内容の
変化を見ることができます。
方法は
Window>New Watch Window
にてSymbol一覧からみたい物を選択してAddボタンで追加していきます。

かけ算の入力である
mulplr
mulcnd
とその答えである
H_byte
L_byte
とWレジスタ
をそれぞれ選んでAdd していってCloseをクリックして下さい。

Wath ウインドウにその名前と今の値が表示されています。

以降、1ステップずつ実行してプラグラムの流れと設定、演算命令で
データ(RAM)の内容が変わることが分かります。



---------
他にも実践的な方法として

・一気にプログラムを走らせて決めた場所で止める、Break Point機能



・TTL I/Oピンへの入力信号を時系列に変化させるピンシュミレーション
 等も出来ます。

Tuning−B MLへ。

2001年10月14日
本田とけお 記。