a01回
Wiz-Cを使ったシミュレーション
〜初期設定


・はじめに

 さてさて、世の中とは便利になったもので、今まではプログラムを組んでそれををPICに焼いて回路を組んで動作確認。
簡単なプログラムなら回路も楽なのだが、入出力が多く複雑なプログラムだったらテスト用回路をBB上に作るだけでも一苦労。
おまけにバグがあった場合は怪しい個所にLEDを光らせるようなプログラムを入れてバグの場所を模索したりと、これまた大変。
そんな今までの苦労をササーっと取り払ってくれるのがWiz-Cのシミュレーション機能なのでございます。

ここでシミュレートすれば、テスト時にPICを焼いて壊す心配も無くなるので色々とお徳ですww

さて、そんな訳で早速使い方の説明でもしますか。

↑初期画面

早速画面の中央にPICがでかでかと映っております。



・初期初期設定

まずは弄る前に最初の設定おば。

一応、新しいプロジェクトを作成して(今回の名前はpre)画面を開きます。 (プロジェクトの作り方とかはSOSの最初のほう参照

使うPicを決めるために「Application Designer」の「Change Device」をクリック↓

すると↓こんなのが出てくる筈。

ここで使うPICを決めましょう。
今回は最近値崩れ?してきてるウチの部で良く使う877を選択。
その後、上の全体画面にあった下線部のFreqを20Mに調整すれば取りあえずはOK。

んでもって、ずっと16F877を使いつづけるのなら、↓の「New Projects use Settings from Current Project」をクリックしてやれば、
新しいプロジェクトを作る際には今回のPICの設定が残ってます。






・最初は入出力配置

「Application Designer」を使う際には、プログラムを作るよりも、先にこっちの方で色々と設定してやる必要があります。
そんな訳で、適当にどのような周辺回路にするのかを決めるとしますか。
まずは簡単に入出力のチェックをしてみたいのでRB7とRB6を出力→LEDに繋ぐ
RD0を入力→スイッチに繋ぐ(通常状態で電圧がかかっており、スイッチを押すと抵抗を介してアースへ落ちる)ってのを作ってみたいと思います。









取りあえず、最初にApplication Designerのウィンドウズを選択します。
で、上の画像のように「Port」のタブをクリックすると、何やら色々なアイコンが下に表示されるはずです。




でもって、出力ピンを使用したいので赤い丸で囲ってあるアイコンをドラック&ドロップで矢印先のPICへ
するとまぁ、仮想PICの上には先ほどのアイコンが乗っかるわけです。







そして今度は出力ピンをどのポートに対応させるかです。
今までなら0xFFとかでまとめて楽に設定できていたのですが、自分の分かる限り1つの出力ずつ設定しなければならないっぽいです。
その方法は、矢印で指されてる様にPIC上のアイコンの左隣に見える灰色の長方形な部分をクリック。
すると赤く光るはずですから、その状態のまま使用したいピンをクリック。
すると↓の画像のように青くつながれる訳です。






取りあえず、もう一個追加↓
左下に出力のアイコンが二つ並んでるのが確認いただけるでしょうか?
ここら辺が面倒だなーと思う所存。Cで0xFFとかで書けたら物凄く楽なのにな〜〜

さて、上の画像を見てもらえば分かると思いますが、今までRB7とか表記されてた個所がOut0になってます。
実は、ここ好きな名前を入れることが出来るので、複雑なプログラムになっても適切な名前さえ付けてれば どのピンがどの出力かってのが直ぐに分かります。
今までプログラムとは別に出力対応表書いたりプログラム中にコメントで対応を表記していた手間が省けます。
結構便利♪



「Application Designer」の窓の中に更に「Port Driver」って窓があります。
最初「Parameters」っていうタブが選択されてますが、それを「Connect Pins」に変更
そいでもって「Pin Name」を好きなように変更。右のPICのピンのところの名前が変更されてるのが確認できるかと思います。



流石に出力ピンだけじゃ寂しいので入力ピンも設定。
出力ピンの隣の緑色の矢印のアイコンをドラック&ドロップ
以下、入力の時と同じ設定をちまちまと行う。



取りあえず、これで入力を1つ、出力を2つ使うという型が出来上がりました。
後は「Application Designer」の窓内にある赤のアンダーライン部のをクリックすればOK

これでようやくポートの初期設定が終わります

通常なら
#include <P16F873.h>

void main (void)
{

   PORTB=0xFF;TRISB=0x00;PORTB=0x00;
    PORTD=0xFF;TRISB=0xFF;PORTB=0x00;
}

これだけで済んだのにな〜

次回に続く

[戻る]