PIC16F84電子遊戯(27)
最終更新日:2001年6月17日
マトリックス240(1ページ) (2ページ)へ (3ページ)へ

マトリックス240を作ろう
マトリックスシリーズの集大成としてPIC16F84の限界で構成可能な「マトリックス240」を企画してみました。より多くの文字を表示することにより、読みやすくなっています。
今回はこの「マトリックス240」を使用して、玄関のメッセージボードにしてみましたので、充分楽しんでいただけると思います。
今回は恒例の8*6ドットのLEDを5個使用して8*30のマトリックスを構成します。
PICのRAポートが5bitありますので、ここを使えば30列は駆動出来そうです。
74HC154を2個使用して30列を駆動します。最上位のビット(ICの切り換え)のはトランジスタを使用して切り換えます。
では回路図を見て下さい。今回も画面にはまるように横向けになっています。
プリントアウトしてゆっくり見て下さい。複雑に見えますが基本は簡単ですね。
(マトリックス240の回路図)
今回も番外編としてケースに組み込みました。玄関に設置するメッセージボードにしますので、一応体裁を考えて綺麗に作りましょう。
このままで電源SWを入れればメッセージを表示出来ますが、今回は玄関の扉が開けばメッセージを表示するようにしたいので、リモート電源SWとなるように、電源SWと平行にコネクタ(モノラルのジャックとしました)を設けます。(回路図、写真を参照ください。)
マトリックス240の基本仕様
ハードが準備出来ましたので、この製作の基本仕様を考えましょう。
1)240個のLEDに動く文字を表示します。今回はポートに余裕がありませんので表示する内容は1種類です。内容を変更したい時はPICのプログラム自体を書き換えてください。
2)外部より電源SWを操作出来る。(リモート電源SW)
マトリックス240のポート割付
回路図に従ってマイコンのポートを割り付けましょう。
ポート名 入出力 機能
RA0 OUT 74HC154駆動(A)
RA1 OUT 74HC154駆動(B)
RA2 OUT 74HC154駆動(C)
RA3 OUT 74HC154駆動(D)
RA4 OUT 74HC154切り換え
RB0 OUT LED駆動(0)
RB1 OUT LED駆動(1)
RB2 OUT LED駆動(2)
RB3 OUT LED駆動(3)
RB4 OUT LED駆動(4)
RB5 OUT LED駆動(5)
RB5 OUT LED駆動(6)
RB7 OUT LED駆動(7)
(マトリックス240のポート設定)
マトリックス240のポートの方向設定
ではソフト上でのポートの方向をレジスタに設定します。今回は全て出力「0」です。
--- --- --- PA4 PA3 PA2 PA1 PA0
--- --- ---

0

0

0

0

0

(TRISA)
PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0

0

0

0

0

0

0

0

0

(TRISB)
マトリックス240のタイマー割り込みの設定
今回も従来と同様の0.1秒のタイマー割り込みとします。
詳しくは「マトリックス96」のページを見て下さい。内容のみ記載します。
RBPU INTEDG TOCS TOSE PSA PS2-0

1

0

0

0

0

1

1

0

(OPTION_REG)
tm0_setdata
63H
(tm0_setdata)
cnt_setdata
05H
(cnt_setdata)
count_data
0.1秒カウントまでの残り

(count_data)

マトリックス240のポート初期設定
マイコンが動作してからのポートの初期状態を設定します。
PORTAは74HC154を駆動するのでPORTA全体をLに設定します。
PORTBはLEDの点灯に使用するため、最初は消灯ということでHに設定します。
PORTA PORTB
00H 0FFH
(ポート初期設定)
マトリックス240のLED表示
LEDの表示は列ごとに専用のRAMを用意してそれを順次表示しています。
表示内容を変えたいときは、別のルーチンでそのRAMの内容を変えているだけです。
led_data0 1列目の表示データ
:: ::
led_data29 30列目の表示データ
今回は30列の表示をしなくてはいけないので、単純にRAMからデータをもってきてRBポートに出力するというソフトをダラダラと記述すると、プログラムの効率が悪くなるので、間接レジスタを使用して、LEDのデータを出力するソフトを組んでみました。
案外簡単に出来ましたので、次回詳しく説明します。
ということで、今回はここまでです。実際には玄関の扉を開けた時にこの「マトリックス240」をリモートONする装置が必要になりますので、次々回にはそのハード製作の説明も予定しています。市販の装置を改造するだけで簡単に出来ましたので、こちらもご期待ください。では、今後も益々面白くなる「PIC16F84電子遊戯」をよろしくお願いいたします。

不明点などあればメールお願いいたします。nonchansoft@nifty.com