マイコン工作実験日記

Microcontroller を用いての工作、実験記録

画面の構成

2008-01-21 23:12:37 | W-SIM
現在のところLCD画面を、3つの部分に分けています。



最上部の背景色が黄色の部分には音声再生の音量と、電界強度情報を表示しています。電界強度を示すアンテナは、フォントを作成して文字として出力することで表示しています。ただし、最大で6本もアンテナを立たせると横長になってしまうので、8X8ドットでフォントを作成し、2文字を使って表示することにしています。
電界強度の情報はW-SIMのDISP1~DISP3の3端子の出力をPIOで読み取っています。どうやら、この3つの端子は負論理となっており、電界強度が最大の時に 0x0 が出力されるようです。3ビットあるので、全部で8つの状態が表現できるわけですが、W-SIM対応の電話機のアイコンを見る限り、最大ではアンテナ6本です。どのように3端子の出力を解釈すれば良いのかわからないので、現在は次のように実装しています。

DISP3DISP2DISP1表示
000アンテナ6本
001アンテナ5本
010アンテナ4本
011アンテナ3本
100アンテナ2本
101アンテナ1本
110アンテナ0本
111圏外表示


「アンテナ0本」では何も表示していません。実際に圏外状態になる場所で実験してみればいいのでしょうが、自宅周辺でそんな場所を探すのも面倒なので、まだ確認できていません。表示は電界強度に変化があった時に描画しなおせばいいので、これら3端子のつながるポートではPin Change割り込みを許可して、割り込みが生じたら状態を読み取って描画しなおすようにしています。

中央の白い部分はメインのスクリーンとし、ここにメニューや発信する番号、着信時の発信者番号を表示します。メニューで用意している機能については、また別途説明することにします。

下部の緑背景色の部分は、W-SIMから受信したATコマンド応答やメッセージを表示する領域として4行分(高さ32ドット)を割り当てています。表示内容はスクロールされていくので、最後の4行分が表示されることになります。使用しているNokia 6610 LCDには、ブロック(高さ4ドット)単位でスクロールする領域を設定できる機能があるので、この機能を利用しています。