PIC

PIC18F14K50を使った、キャラクターディスプレイ(紹介編)

2012年1月28日

Microchip社のPIC18F14K50を用いた汎用のキャラクターディスプレイを作成したので、紹介します。

技術的な話は後の記事に譲ることにして、ここでは性能と使い方に関しての説明です。

仕様
・PIC18F14K50と、簡単な周辺部品だけで動作。
・コンポジットビデオ信号(NTSC)を介した白黒出力。
・横32文字・縦20行で、アルファベット大文字とカタカナを表示可能(shift-JIS半角文字互換)。
・表示させる文字は、パラレルインターフェースで入力。

電源を入れると、使用可能な文字が次のように表示されます。
2012-01-28-IMG_9601.jpg

回路図は、次の通りです。
2012-01-23-NTSC-18F14K50.png
(5Vで動作)

文字を表示させるには、パラレルのデーター入力端子にASCIIコードをセットして、"/write"端子(RC0)を、Lにしてください。ただし、次の制御コードが使えます。
・0x16 画面クリア
・0x0a 改行
・0x0d 改行
・0x08 バックスペース(一文字消去)
・0x11 表示位置を下に移動
・0x12 表示位置を上に移動
・0x13 表示位置を右に移動
・0x14 表示位置を左に移動

連続して文字を送信する場合、"/ready"端子(RB5)がLになるのを確認してから次の文字を送信するようにしてください。でないと、入力が受け付けられないことがあります。また、"/ready"端子がLになった直後に送信するようにすれば、送信時に画面がちらつくことはありません。

PIC18F14K50のプログラムのソースコードとHexファイルは、こちらです(ver 1.5)。ntsc1.cのライセンスはLGPL、cgrom.hのライセンスは、MZ-700 Emulatorのそれに準じます。

プログラムは、Microchip社のMPLAB IDE v8.80とMPLAB C compiler v3.33の組み合わせでコンパイルしてあります。ソースコード(ntsc1.cファイル)のライセンスは、LGPL v2.1です。

8x8ドットのフォントデーターは、MZ-700 Emulatorのものを使わせていただきました。

今回紹介した物は自作のパチパチマイコンに適したパラレルインターフェースですが、他のPICと1本のラインだけで簡単に接続できるシリアルインターフェースのバージョンも考慮中です。

120206 追記:
シリアル通信のバージョンも、作成しました。

コメント

エアーバリアブル (2012年2月2日 07:50:55)

初めまして。
今回この記事を拝見して早速動作させてみました。
これはLCDの表現よりとても実用的で大変気に入りました。
パラレルインターフェースとの事でしたので、私が以前作ったLCDシリアルモニターを改造して取り付けてみようと思います。

所で、ソースコードをコンパイルする時cgrom.hが見つからないというエラーが
出力されて、自力でコンパイルできませんでした。
助言を頂ければ幸いです。
よろしくお願いいたします。

なお、私のブログに今回の事を紹介させていただいております。
問題がもしありましたらご指摘頂ければ幸いです。
http://airvariable.asablo.jp/blog/2012/02/01/6317477

Katsumi (2012年2月2日 15:20:59)

はじめまして、エアーバリアブルさん。紹介記事が出るのは、嬉しいかぎりです。

cgrom.hの件、すみません。cgrom.hを、zipファイルに入れ忘れていました。更新しましたので、再度ダウンロードしてください。

やはり、シリアルインターフェースのバージョンがあったほうが、汎用性が高そうですね。考えてみます。のんびり、待ってください。

Katsumi (2012年2月6日 14:04:27)

シリアル通信で文字を出力できるバージョンも、作成しました。
http://www.recfor.net/blog/mycom/index.php?itemid=837

コメント送信