PS/2キーボード+小型液晶
以前にも書きましたが大学で電子工作の課題が出ております。提出&発表は明日。と言うわけで最近半田ごてばかり触っておりました。
着想
初めての電子工作ということで小型LCDに文字を表示するという単純なものを作りました。自作キャラクター(下図)を本当に作ってみたいと前から思っていて、その感情表示部分にLCDを使います。きっと。
*1
口の下の四角いところです。きっとLCD。私が決めたんだから間違いない(o^冖^o)
実際に作るものの仕様
かといって、いきなりたいそうなものが作れるわけでもない。まずはじめは単純なものから。
- 入力:PS/2キーボード
- 処理:PIC16F628A
- 出力:小型液晶 SC1602BSLB
家に昔ボードのどこかが壊れて死んだパソコンのキーボードを使って信号を取り、それをLCDに出力するという魂胆です。
参考書・参考サイト
本当に初めてだったので学科の人たちからお勧めの本を聞き出してそれを参考にしました。
- 作者: 高橋隆雄
- 出版社/メーカー: 秀和システム
- 発売日: 2005/01
- メディア: 単行本
- 購入: 1人 クリック: 85回
- この商品を含むブログ (5件) を見る
また、「PS/2キーボードを繋いで見ては?」も参考にしました。ありがとうございます。
冬休み、正確に言うと三が日ずっとこの本とAKI-PIC ver4と戯れていました。「ぉぉーLEDひかったー」とかやっていたわけです。輝く初心者マーク。
どうやって作る?
参考にした本ではパソコンからRS232Cをつかって信号をとるものが掲載されていました。RS232Cからは文字コードASCIIで信号を取り、そのまま小型液晶に出力できます。しかし、PS/2は特殊なキャラクターコードのため、変換する必要があります。*2
PICに格納するプログラムに、文字コードを変換するようなものを書き足して完成。
…と簡単に書いてしまいましたが、PICに書けるプログラム(命令数)に制限があるため単純なIF文構造*3で書いていたのでは全部の文字が収まりきりませんでした。
間接アドレッシング
アセンブリを知らない知人Mに無理やりソースを送って見せる。曰く「配列みたいなのに変換表を入れておいたら」といわれる。
たしかに。
IF文構造をFOR文構造*4に書き換えることができればOKそうだ。なんで気づかなかったのだろう。
とりあえず汎用レジスタ上にデータを格納することにした。でもアクセスする先のアドレスを直接インクリメントなんか出来るのだろうか?(ここまでおととい)
Twitterに「どうしようか」と書き込んだら学科の友人C氏が「間接アドレッシング」と教えてくれました。Twitterすばらしいね。グーグル先生に聞いてみると「ここ見れ」という。ほうほう。
というわけで間接アドレッシングを実装して完成。(ここまで昨日)