PIC18F14K50を使った、キャラクターディスプレイ(シリアル通信編)
2012年2月6日
PIC18F14K50を使ったキャラクターディスプレイを、シリアル通信で使えるようにした。
一本の通信線でデーターを受け付けることができるため、PICをはじめとしたマイクロコントローラを用いた機器の情報表示用に、使える。シリアル通信のボーレートは、1200。
以下の写真は、PCにRS232Cでつないで、テストを行っているところ。
パラレルインターフェースのときよりも部品数が少なく、回路図は以下のとおり。
(5Vで動作。3Vでも動くが、字が少し薄く表示される。)
お決まりの、"HELLO WORLD!"を、PCの端末から送信してみたところ。
ソースコードとHEXファイルのダウンロードはこちらから(ver 0.3)。NTSC2.cのライセンスはLGPL、cgrom.hその他、フォント関連のライセンスは、MZ-700エミュレーターのものに準拠。
一本の通信線でデーターを受け付けることができるため、PICをはじめとしたマイクロコントローラを用いた機器の情報表示用に、使える。シリアル通信のボーレートは、1200。
以下の写真は、PCにRS232Cでつないで、テストを行っているところ。
パラレルインターフェースのときよりも部品数が少なく、回路図は以下のとおり。
(5Vで動作。3Vでも動くが、字が少し薄く表示される。)
お決まりの、"HELLO WORLD!"を、PCの端末から送信してみたところ。
ソースコードとHEXファイルのダウンロードはこちらから(ver 0.3)。NTSC2.cのライセンスはLGPL、cgrom.hその他、フォント関連のライセンスは、MZ-700エミュレーターのものに準拠。
コメント
小泉 (2015年10月20日 23:24:04)
初めまして。
今頃になって、手持ちの18F14K50が余っておりましたのでこの記事を参考にキャラクタディスプレイを作ってみました。
動作させてみたところ、スクロールを20回程度行って以降の画面表示が乱れてしまいました。プログラムを解読させていただいて間違いらしいところを修正しましたところ満足のいく動作になりました。
修正箇所は以下の通りです。
ntsc2.cの中の893行 void main()中「if (g_fsrl==0x03) 」を、「if (g_fsrh==0x03) 」に変更
ついでにフォントも英数小文字が出るように修正して使わせていただいています。(小生はMZ-700のフォントの表示にはこだわりがありませんのでお許しください)
間接アドレッシングの利用法や丁寧に作られたNTSCの垂直同期部分のsyncパルスの発生部分などプログラムの中身はとても参考になりました。このような素晴らしいプログラムを作っていただいて有り難うございました。
今頃になって、手持ちの18F14K50が余っておりましたのでこの記事を参考にキャラクタディスプレイを作ってみました。
動作させてみたところ、スクロールを20回程度行って以降の画面表示が乱れてしまいました。プログラムを解読させていただいて間違いらしいところを修正しましたところ満足のいく動作になりました。
修正箇所は以下の通りです。
ntsc2.cの中の893行 void main()中「if (g_fsrl==0x03) 」を、「if (g_fsrh==0x03) 」に変更
ついでにフォントも英数小文字が出るように修正して使わせていただいています。(小生はMZ-700のフォントの表示にはこだわりがありませんのでお許しください)
間接アドレッシングの利用法や丁寧に作られたNTSCの垂直同期部分のsyncパルスの発生部分などプログラムの中身はとても参考になりました。このような素晴らしいプログラムを作っていただいて有り難うございました。
Katsumi (2015年10月23日 18:24:55)
小泉さん
初めまして。デバッグを、どうも有り難うございます。やはり、ソースコードは公開する物だと改めて思いました。
フォントも含めて、変更はどんどんなさって下さい。こういう形で私の書いたコードが広まっていくのを見るのは、楽しいし、嬉しく思います。
今後とも、どうぞよろしくお願いします。
初めまして。デバッグを、どうも有り難うございます。やはり、ソースコードは公開する物だと改めて思いました。
フォントも含めて、変更はどんどんなさって下さい。こういう形で私の書いたコードが広まっていくのを見るのは、楽しいし、嬉しく思います。
今後とも、どうぞよろしくお願いします。