マイコン_(4)_LCD動作確認

とにかくサンプルプログラムをPIC16F88用にちょっとだけ変えて、書き込んで、そしてLCDの接続をして、テスト!!

表示されない!

LCDには電源2本、データ4本、そしてRSとEの信号用の2本、計8本を接続。
ネットで見ると、R/WはGNDに落とす必要があるみたい。

その5番ピンをGNDに接続してみたが、・・・ 反応なし!

尤も、まだプログラムの動作も確認できてなくて、一気に動作テストだから、無茶でもあるが。
壊れているのでなければ、単なるプログラムのミスか配線ミスだろうから、じっくりと調べてみるか。

−−−

デバッグ機能として、余っているポートを使ってLED表示させるロジックを組み込んでみる。

と、思ってプログラムを変更していたら、PIC16F84Aに対してPIC16F88の場合はポートAの機能を設定する必要がある。
PIC16F88はA−Dコンバータを備えているためポートAの機能を選択するのである。
これを記述しなかったためにポートAがアナログ入力用になっているのである。
これを設定してやれば(ANSELというレジスタをクリアしてあげればデジタルポートになる)、ちゃんと動作すると思う。多分。

−−−−−

ダメである。
おまけにデバッグ用のロジックもうまくない。
まずはデバッグ用ロジック修正して。

−−−−
今度はデバッグロジックは通ることが確認できた。
そしてその次だが。

LCDユニットに対する初期設定だが、ここを通過しているのかどうかを確認する。

−−−−
どうも、LCDの初期設定処理がうまく動作していないようだ。
そのルーチンをコールするまでは行ってるはずだがリターンしてこないようだ。

てことは、LCDとのやりとりでそのまま・・ つまりLCDと会話が出来てない
これはひょっとすると、LCDモジュールへのコネクタピンの半田付けがどこかで不良があるのかも。
もう一度半田を熱くしてやるか。
それともロジックをおいかけるか?しかしそこはサンプルのままだし、おかしなものが入るところではないし、途中で止めにくいところだし。
−−−−−
ところで、コントラスト調整のピンは何も接続しないで放っておいたのだが、可変抵抗をつけてみた。
すると、ボックス模様が表示され、可変抵抗を変化させると、その濃淡が変化する。
文字の表示はされないけれど。
これはデバッグロジックでみると、LCD初期設定の途中でおかしくなってるようなので、文字表示まで行ってないので。
さて、次はどうするか?
やっぱり半田確認か?あまりしたくないな。半田はいじるほどひどくなるから。でもだめなら仕方ないが。この基板のプリントパターンが細くて、そして黒丸のICの中に隠れて行ってしまっていたりで、よくわからないのである。
確認のしようもないのである。
仕方ないな、やはりロジックから追いかけるか。どこまで進行しているのかを見極めることで。デバッグルーチンを仕掛けして。
−−−−−
デバッグルーチンを移動しながら追いかけたところ、時間待ち処理で戻ってこないことまで判明。
そしてそのパラメータの設定の場所を見ると、ちょっとアドレスが変?
0EHなんぞのアドレスにエリアを定義している。
これがマイコンの種類によっては異なるようで、PIC16F84Aの場合はこれでもよいが、PIC16F88の場合はNG。
ユーザー領域は20H以降でなければならないのだ。
今度こそ決定的なバグだろう。これで解決になると、思う。
気が急くな!
−−−−

表示された!!!

OK!OK!OK!

良かった。半田付けは問題なかったことが照明されたようだ。余計なことをしないでよかった。

原因はやはりソフトにあった。
別の種類のマイコン用のプログラムを利用したのが、変更が足りなかったことだ。
それにしても、それを調べて判明するまでの苦労の多かったこと。

でも、他のを流用して、そのまま何も問題なく動作してしまったとしたら、それはそれであまり役に立ってないだろうと思う。
こんなに苦労することでいろいろと覚えることになるのだと思う。
失敗こそ勉強のネタともいえる。

そういえば、これまでの仕事とかでも、自分では失敗がいやだからそうならないように慎重にやってしまう。すると、何か間違いをしたときの対応の仕方というものを練習する機会がなくなってしまうことになるのである。
かと言って、わざと失敗や間違いをしたいとも思わないし。
そんなときに、あまり知らないものが無鉄砲にいろいろやって、どうにもならない状態にしてしまって相談しにくることがあり、そういったことはそれなりの材料であるわけである。
失敗、間違いこそ貴重な勉強材料なのである。
今回のも何かの役に立てばよいのだが。
だが、今更失敗を重ねて勉強してもどうなんだろうかと考えてしまうものでもある。
時間ばかり費やしてしまうことになるようで、複雑。
−−−−−