2017/11/29 ファームウェアの不具合を修正
2017/11/28 大小フォントと、18.432MHzのクロック対応
2016/10/19 新規作成

法人向けのETC専用カード

はじめに

パーツ箱を整理していたところ、相当昔に使いかけだった SG12864A というLCDが出てきました。
ピンヘッダをハンダ付けしちゃっていたのでヲクに出せず、今更ながらパーツ整理のため何か製作・・・
マイコンも PIC16F877 が出土されたので、これを使います。

ということで、シリアルデータの表示器を作ってみました。
今どきの製作者ならTFTのカラー液晶などを使うのでしょうけれど。


画面表示は大きいフォントと小さいフォントの2バージョンを作りました。
小さいフォントは - Version 0 - さんの極小フォントを使わせていただきました。
極小フォントのアルファベットは私好みに少し改編しています。

大きいフォントの表示イメージ(20桁×8行)

小さいフォントの表示イメージ(32桁×8行)


注意

もし何らかの損害が発生しても当方は一切責任を負いませんので、あくまでも自己責任でお願いします。


ハードウェア製作

回路図

クロックが20MHzのセラロック版

クロックが18.432MHzの水晶発振子版

マイコンは手持ちのPIC16F877を使っています。
I/Oポートは半分近くが空きです(汗
16F877を消化するためなので仕方ない・・・

本装置はPCや外部の自作機器などから送られたデータを表示する機能があります。

一つの付加機能として、シリアルポートから電源を取るタイプの機器を繋げられるようにしました。
MAX232系のチャージポンプ出力をD-SUBコネクタから供給しています。

回路図中の「PC」はPCと接続するためのD-SUBコネクタです。
この場合、PCがマスター、本機がスレーブのような関係になります。

一方「EXTERNAL」は外部機器と接続するためのD-SUBコネクタです。
この場合は本機がマスター、外部機器がスレーブのような関係です。

PCコネクタはメス、EXTERNALコネクタはオスにすると接続間違いがなくてよいかと思います。
この2つのコネクタには同時に接続しないでください。

PICのクロックに18.432MHzの水晶発振子も使えるように対応しました。
このクロック周波数だと理論上は通信エラーレートが0%となり、安定した通信ができます。


ソフトウェア

今回はシリアルポート関係でCCSのライブラリを使いませんでした。
動作中にボーレートを変更するなど、少し凝ったことをしようとすると直接レジスタをいじったほうが柔軟性がありました。

ソースファイルとHexファイル

20MHz版と18.432MHz版、それぞれに大きいフォントと小さいフォントのHEXファイルを同梱しています。

最新バージョン
Version3 glcd_r3.zip(19KB)

旧バージョン
Version2 glcd_r2.zip(19KB)
Version1 glcd.zip(9KB)


動作確認

ボーレートの設定スイッチを設定し、電源を入れます。
本機に対してデータを送信すると画面に表示されるはずです。
本機の動作中にもボーレートの変更ができます。

画面バッファは表示用の20桁×8行のみですので、常に大量にデータが送られてくるような用途には向きません。
たとえば1秒おきにセンサから取得した値を表示するなどの用途向きです。
過去に作った LPS331の気圧センサ といったものを接続するのに最適です。

当サイト内の検索