PSoCで16行4列の液晶利用時に表示位置がずれないようにする

psoc_lcd20x4_01.gif
今回はPSoC Designerで16行×4列のキャラクタ液晶モジュールを利用する設定方法について紹介する。PSoC Designerではデフォルトで20行×4列の設定になっていて、しかもGUIで設定できない。そのためこの方法を知らないと16行4列の液晶モジュールでは表示位置がずれてしまう。

psoc_lcd20x4_02.gif
デバイスエディターが開いたら「Misc Digital」の「LCD」をダブルクリックして選択する。

psoc_lcd20x4_03.gif
そして「Config」メニューの「Interconnect」を選択して画面を切り替える。

psoc_lcd20x4_04.gif
「LCD_1」の「LCDPort」を「Port_2」に設定したら「View」メニューの「Application Editor」でソースコードを書く画面に切り替える。

psoc_lcd20x4_05.gif
そして「main.c」の中にテスト表示のためのソースコードを書く。ここでは1~4行目の左端に「Line:1」のように表示する処理を書いた。

_DSC9044.JPG
これでPSoCに書き込み、ポート2に液晶モジュールを接続して電源を入れる。
すると「Line:1」と「Line:2」は左端に表示された。しかし「Line:2」と「Line:3」は左側に4文字分空白ができてしまった。

psoc_lcd20x4_06.gif
このように表示がずれてしまうのはPSoC Designerの生成するソースコードが20×4のキャラクタ液晶モジュールを対象にしているためだ。次に16×4のキャラクタ液晶モジュール用に変更する。

左側のツリーの「Library Souce」の「lcd_1.asm」を開く。そしてその中の174行目付近にある「LCD_ROW1_OFFSET」のような定数宣言部を開く。

psoc_lcd20x4_07.gif
このうち「LCD_ROW3_OFFSET」を「94h」から「90h」に、「LCD_ROW4_OFFSET」を「D4h」から「D0h」にする。

_DSC9045.JPG
これでPSoCへ書き込み動作確認をすると4行ともに意図した通り左端に表示された。

psoc_lcd20x4_08.gif
上の述べた作業を行えば16行4列の液晶モジュールでも位置がずれることなく表示できる。しかしプロジェクトを作るたびに編集する必要があり面倒だ。次にプロジェクト生成時から自動的に16行4列用になるように設定する。

自動生成されるソースコードのひな形は"C:\Program Files\ Cypress MicroSystems\ PSoC Designer\ Data\ Stdum\ LCD\ lcd.asm"にある。このファイルを開く。

psoc_lcd20x4_09.gif
そして先ほどと同様に「LCD_ROW3_OFFSET」を「94h」から「90h」に、「LCD_ROW4_OFFSET」を「D4h」から「D0h」にする。これで次回から自動的に16行4列用のソースコードが生成される。


カテゴリー「電子工作」 のエントリー