BASICで液晶表示(16桁×2行)

 LCD表示器を見かけた(デジット 600円)ことと、BASCOM-BASICで簡単に表示できることを知って、試してみました。 また、100円時計の心臓部(?)から、1Hzの信号を取り出して時刻表示をしてみました。

 表示の実験と、時計機能の確認が目的ですから、時刻合わせなどの機能は付けていません。余談ですが、時計や単純な タイマーは高機能な完成品が安価に出回っていますので、制作意欲がそがれます。


AT90S2313とLCDの接続
   このタイプのLCDはいくつかのメーカーから出されているようですが、仕様は共通のようです。 ただ、メーカーによってVccとGND(1,14ピン)が逆になっている場合があるから気を付けてくださいとアドバイスされました。 AT90S2313とは次のように接続しています。
LCDのPIN内容接続先LCDの PIN内容接続先
 1GNDGND 8DB1NC
 2VccVcc 9DB2NC
 3コントラストバリオーム中点 10DB3NC
 4RSpin15 portB3 11DB4Pin16 portB4
 5R/-WGND 12DB5Pin17 portB5
 6EnablePin14 portB2 13DB6Pin18 portB6
 7DB0NC 14DB7Pin19 portB7
この回路は次のページ「http://b2c-1.rocketbeach.com/~jcl/AVR.htm」を参考に作りました。ただし、Enableと RSの接続が逆になっています。下記のBASICで、初期設定をした後、
  LCD "Hello"
と書いただけで簡単に表示されました。(ただし、コントラスト用のバリオームの調節は微妙です)

100円時計から1Hz信号
  100円のアナログ置き時計を分解して1Hzの信号を取り出すことにしました。
32.768kHz?の水晶を乗せたICがABの端子から電磁石で歯車を駆動しています。電源のマイナスを基準にとるとAとBの 端子から交互に1/2Hzの立ち下がりパルスが出ています。あわせて1Hzの信号とするために抵抗でワイヤードオア回路を作り ました。その結果、0Vまで下がらなくなったのでダイオードでバイヤスをかけTrで増幅しました。
ほぼフルスイング(0〜5V)で約30msの立ち上がりパルスが得られました。これでAVRに立ち上がりエッジで割込をかけると うまく動作します。なお、このICは1.5Vで正常に働き、2Vではほとんどパルスが出ないことが分かりましたが、5Vから分圧し たときにそれが分からず苦労しました。
この出力を2313の6番ピンINT0へつなぎます。


Basicコンパイラ(無料 2313用)
   BasicコンパイラがWebにあります。Demoバージョンでプログラムサイズが2kBまでという制限がありますが90S2313ならフルサ イズが可能です。2kBの制限以外は製品版と全く同じものだそうです。SRAMを持たない90S1200には使えませんが、2313では便利 なソフトです。BASCOM-AVRといいます。ここhttp://www.mcselec .com/download_avr.htm からダウンロードできます。 FDサイズのファイル4つをダウンロードします。ヘルプファイル、サンプルファイルもダウンロードしておきましょう。
東集さんのページ http://plaza17.mbn.or.jp/~TOSH_HOMEPAGE/page015.htmlに詳しく紹介されています。是非お読み下さい。 ('04.12.12 ページが無くなっていました。良い内容だと思っていたのですが。残念)
('05.01.26 作者のイワナガさんからご連絡をいただきました。JN3XBY'HomePageの「きまぐれ連載 BASICでAVRしよう!」 にサーバを変更して掲載されています。よかった!)
このコンパイラを使えばLCDの表示が簡単にできるとWebにあったのでこの実験をしてみました。 かなり機能が高いようですが、私の研究は進んでいません。

時刻表示のプログラム
   basicのプログラムをここに置きます。 メインルーチンは何もしていません。1秒の割り込みが 入ると秒カウンタをインクリメントします。桁上がりがあれば、10秒、分、10分、時、10時と繰り上がります。時刻が決定 したときに割り込みルーチンの中で表示をしています。 この発振器で1日の誤差が1秒程度です。昔のゼンマイ時計を思えば超高精度ということになるのでしょうか。
 久しぶりにBASCOMをさわって、意外なことに気がつきました。(気がつくのにずいぶん時間がかかりました。) .basファイルの置き場所によって理由が表示されないエラーになります。何のエラーか全く分かりません。pathでもなさそう です。どうやら、パスの中にカタカナ(全角です)があるとBASCOMは認識しないようです。ひらがなや漢字はOkみたい です。十分調べていませんが理由不明のエラーが起こったら、カタカナを含むフォルダを通っていないか調べてください。 「新しいフォルダ」「デスクトップ」はダメでした。


TOPへ


inserted by FC2 system