2017年4月15日土曜日

今更、、IM50175H(PIC16F819)

2008年6月2日にこのブログで書いた100円LCD(死蔵)を掘り出して動かしてみました。「あしたなにしよぉぅ」さんのページに詳細が載ってたのでそれを頼りにXC8で書いています。詳細はソースを載せます。もう買えないけどシリアルレジスタの液晶になら応用が利くのではないかと思います。PICとの接続線は3本です。

プログラムは0x0000~0xffffまでをカウントし10進数表示するものです。バグというか、、2599以降、百の桁の値がおかしくなります。XC8の問題なんだけどね

※LCD表示へ表示する際の型変換の使い方がおかしかったみたい、ソース修正しました。2017/5/9

ソースにインラインアセンブラでアセンブラのswapコマンドを使用しています。いろんなとこでシフト演算子(<<)を使えばいいとありますが、インラインアセンブラのほうがマシンコードが少なかったです。無償XC8の素のコンパイル(最適化)って無いに等しいのかもしれない、、

IM50175Hの使用したピンを記載しておきます。pic側はソース見てください。

1 電源 +5V
2 未使用
3 未使用
4 LATCH (立ち上がりで出力)
5 DATA
6 CLK (立ち上がりでDATA取り込み)
7 GND





修正したついでに、、
表示用関数と、ヘッダファイルと、main部分(表示関数を呼び出して使っている箇所)にソースを分割しておいた。


0 件のコメント: