LEDドットマトリクスディスプレイモジュール「現品限り」吉野電装さんで販売していたLEDドットマトリクスモジュールを購入してみましたので、使用レポートを掲載します。いつものごとく製作したのは「時計」です。時計のプログラムも追及してゆくと結構大変なんです。Φ5.3mmの仕様となっています。SLX-8100とは異なり、基板同士を接続し、大きなディスプレイとして拡張できるようになっています。FETなどのLEDドライバが搭載されています。EHR-6)となっています。Digi-Keyで見つけて購入しました。電源電圧は5Vで、赤と緑全てのLEDを点灯させると2A程度流れますので電源は余裕が必要です。接続は基板にシルク印刷がしてあり、下記のようになっています。データシートのみつかったSLX-5015とほとんど同じだと思います。使用方法は、シリアルで表示データを転送しパラレルでアドレスを指定、読み込ませるだけでコントロール・表示できます。表と裏の切替はA/BB端子で行なわれます。SE端子をLowにしてあると、16行分のデータを転送すると自動的に表-裏が切り替わりますが、SEをHighにしておくと、A/BB端子を反転することで表示が切り替わります。書き込みシーケンスは1列32ビットのシリアルデータをCLKの立ち上がりで読み込ませ、読み込むアドレスを出力しALEをHigh→WRの立ち上がりでアドレスを読み込ませるという手順となります。データよりアドレスのほうが後に読み込ませるようになっています。その後、A/BB端子を反転させると書き込んだデータが表示されます。コントロールサンプルプログラムスクロール速度の参考になります。テストは次の5つです。表示テスト1矢印の移動・・・スクロール速度の目安になります。表示テスト2横直線が移動・・・縦スクロールの目安になります。表示テスト3縦直線の移動・・・横スクロールの目安になります。Workshop)を使用してみました。前回のLEDドットマトリクスディスプレイではBASIC言語での開発だったので、今度はちよっと気分を変えて、H8とC言語でチャレンジしてみました。何もLCDのディスプレイを使う必要もないのですが、LCDへの表示や、時刻設定はRS-232Cを介して、PCのコンソールからの入力にしたりとか、内臓のEEPROMをわざわざ使ったりとか、いろいろなエッセンスを加えて実験してみました。今回もブレッドボード上で全て組んでみました。AKI-3664Nボードはピンソケットを基盤側にとりつけ、そこにリード線を差し込んでの配線としました。→ブレッドボード上にLED2個とスイッチが3個載っていますが、スイッチは1個しか使用しておりません。フォント作成時のエクセルシートその他、ピンアサインなどの各種資料です。H8_3664_CLOCK.lzhこのフォント作成シート・エクセルファイルを使用する場合は、2進-16進変換関数を使うため、ツール-アドイン-分析ツールにチェックが必要です。セキュリティレベルでマクロを使用できるようにする必要があります。オリジナルの定義ファイルはPCR1とPCR8はバイト単位の指定しかなかったが、ビット単位で指定できるようにしてみた。I2Cを使って内臓EEPROMにアクセスするためのファイル。ルネサスのアプリケーションノートに出ていたものに少し改良を施した。LCDコントロール用ファイル。RS232Cシリアルデータ通信用。アプリケーションノートを参考に使いやすいように改良。プログラム中で2進数表記するためのヘッダファイル。以上ですが、バグはあるかもしれません。■時計部分H8-3664のタイマAを利用して、1秒ごとの割り込みをカウントしてゆきます。(こちらを参照ください)タイマAの設定はいたって簡単にできます。LCDに日付けと曜日まで表示させようと考えたら、結構大変でした。日付けのカウントアップで、月末から翌月への移行部分の判断やうるう年による2月の日数の違い、日付けから曜日を求める方法などソースファイルをご参照ください。■フォントの設計とEEPROMへの書込みこのモジュール自体にはフォントを持っていませんから、フォントを展開して送らなければなりません。保存は時計とは別のプログラムを走らせる形で行ないました。保存のためのプログラムは、RS-232CでPCと接続し、コンソールから書き込んだものを読み出す操作もできます。何もEEPROM上でなくてもメモリ上に展開しておいても良かったのですが、EEPROMの読み書きルーチンが完成していたので使ってみただけです。WrioteFontEEPROM.lzh■LEDドットマトリクス基板への書き込み表示されていないRAM(裏)に書き込んでおき、表示しているRAM(表)と切り替えることで書き込んだものが瞬時に表示されます。1行32ビットのデータを1ビットずつ転送し、書き込むためのアドレスを出力してCS→WRの立ち上がりでRAMに書き込みます。書き込んだデータはA/BB端子の反転によりれ表RAMと裏RAMの表示を切り替えれば表示されます。ルーチンがLEDの指定した行にデータを書き込むルーチンです。それぞれの信号間にはウエイトを入れ無くても正常に動作しました。■完成プログラム・・・とりあえず動作してはいますが、バグがあるかもしれません。日時の設定はRS-232Cを介してPCのコンソールから設定。使ってみてどうにかH8-3664で実用になりそうなものができました。最初にSLX-5800をBASIC言語開発したものの、構造化言語でないためCのほうが開発しやすい印象を持ちました。この程度のプログラミングならC言語に長けている人ならすらすらと書いてしまうのかもしれませんね。私はまだC言語は入門者ですので開発も、HEWのシュミレータデバッガで部分的に確認しながら開発をしました。R8Cのようにオンチップデバッグができないので、周辺回路の動作確認には工夫が必要でした。使ってみると初心者にはR8Cのほうが開発はしやすく便利ですね。時計の部分も、動作は単純なのですが、そのプログラミングは奥が深いことを感じました。別にLEDでの12時間表示だけなら何も苦労せず作ることができますが、あえて日付けや曜日のルーチンも組み込んで見ました。それらはたいへん良い勉強になったと思っています。このドットマトリクスディスプレイを使った、実用品はいつできるのやら・・・。