AIRCOOLED/RD

高回転は焼付きが怖いんだよね~

デバッグする・・・その2

前回の続きに入る前に、回路とプログラムについて…

イメージ 1
PICのプログラムを動作させる為には、回路からの入力により、基準になる電圧が入力されなければならない。
実際の回路上で行うスイッチの ON、OFF の場合を考えて見る。
右の図で、RB7への入力電圧がCPUが判断する為の電圧にあたる!
 次に、電圧の切り替わりに付いて考える。
RB7には、電源(VCC)の5Vが、プルアップ抵抗を通し供給されているので、常時 Set High の状態となっている。
スイッチをONにすると、抵抗の低い方へ電流は流れる為
RB7の電荷は、OVとなり、Set Low になります。
プログラムは、この電圧の変化を認識する事で動作する。

↓今回のLED点滅回路になります。
回路では、LEDがマイナス制御になっているので、RB6の電荷により点灯が制御される事が解ると思います。

イメージ 2

今回のプログラムは、LEDを点灯、消灯させる為のプログラムです。

プログラムの条件は…
もし、RB7が、5VでSet High(1)なら、RB6は、0V(0)出力
   RB7が、0VでSet Low(0)なら、RB6は、5V(1)出力 する、です。
RB7の状態によって、RB6の電圧を切り替えるプログラムです。
LEDはマイナス制御なので、RB6が5Vの時には、電荷が同位になり、電流が流れないので点灯しません。

よって、今回のプログラムで実際のスイッチ ON、OFF での動作は…
スイッチOFF時、RB7は、5V入力となり、RB6は、0V入力で、LEDは点灯
スイッチONで、RB7は、0V入力となり、RB6は、5V出力で、LEDは消灯する。
つまり…
LEDは、常時点灯(SW:OFF)で、スイッチONで消灯するプログラムになります。


では、ここから前回からの続きです。

イメージ 3
メニューからView→Watch をクリック

イメージ 4
Watchウィンドウが出てきました。
レジスタの状態を見る事が出来るそうです。

イメージ 5
PORTBを選択し、左側の
「Add SFR」をクリック。

イメージ 6
PORTBのValueのところでRB7とRB6の変化するのが解ります。
ですが…0×40ってなってます…
この状態は、16進表記なので、2進表記に変更します。

イメージ 7
PORTBのValueのところで右クリック、「Properties」 をクリック 。

イメージ 8
「Format」 のところが「Hex」 になっているので、「Binary」を選択して
「OK」をクリック

イメージ 9
2進表記に変わりました。
一番左からRB7、RB6 を表しています。
この数字が1か0に変わる事で電圧が切り替わるのを見る事が出来ます。