■内部RC発振から外部発振にするには

 現在秋月電子通商で売られているのはAT90S1200Aのようです。これは内部のRC発振器でクロックを作成する(約1MHz)もので外部に水晶やセラミック発振器が不要となります。
 これはこれで便利なのですが高速で動作させたり、きっちりとしたタイミングが必要なときには、やはり外部に水晶やセラミック発振器を付ける必要があります。

 内部発振器を不許可にすることはプログラミングで可能なのですが、困ったことにはこれにはパラレルでのライターでなければ設定することができません。パラレルのライターはI/Oが16ほど必要でありプリンターI/Oを使ったものでは作成しにくいのです。

 で、ここは窮余の一策として内部発振器の不許可だけのプログラミングであれば7,8本のI/Oで間に合うことが判りましたのでさっそく作ってみました。

ただ今 工事中 しばらくお待ち下さい。

 

■キーを手作りする。

 さて、それで私が最初に作ったものは自作のシュミレータ(アセンブラも含め)と実機が同じように動作するかを確認するためのアプリです。そうしなければ間違ったシュミレータでデバッグしても何の意味もないからです。皆さんはこんなものを作る必要は無いと思いますがLEDの表示とKEYのスキャンの参考になればと思い例示します。

 プログラムそのものは簡単なものですが、この時はまだ完全なシュミレータがありませんので、できるだけ単純ですなおなものにしました。
 7segのLEDを使おうと考えましたが適当なものが無かったので7×5のマトリクスのLEDを横にして5×3が2つ取れるようにしました。16進2桁で8ビットが表現できるからです。

 ところで、KEYも適当なものが無く、20〜30KEYのものが欲しかったので、電卓でも壊して利用しようと思いましたが、まだ使えるものを壊してしまうのはうしろめたいので手作りしました。

写真のように単に縦横に金属の薄板を並べ間にフォーム付きの両面テープで止めているだけです。最初アルミ箔をビニールフィルムに張りつけて作りましたがこれはへこんで戻らないのでダメでした。次にアルミの0.1mm厚のもので作ったのが次ページの実機です。実機の説明は次ページにまわしてちょっとキーについてこだわってみます。

 とうぜんこんなものは見栄えが悪いのですが特殊なものやとりあえずの用途には結構使えることが判りました。上の写真は右が使わなくなったブラインドを捨てずに置いていたものを利用したものです。これは鋼鉄(?)の超薄板を使っているので戻りもクリック感もたいへんよくなります。黄色く塗装されていますが裏側はシンナーで剥離しています。また左はりん青銅板を買いにいったのですが手に入らず、洋白金と呼ばれるものを変わりに買ってきて作ったものです。これもなかなか良いようです。

写真で判るかどうか不明ですがどちらも板が山型になっているのがお判りでしょうか?これは両面テープで止めてから爪先などで軽く押さえるとできます。こうすればよりスィッチらしい感触になります。

ところで問題です。写真左は24KEYですがこれに必要なI/Oピンはいくつ要るでしょうか?
     (答え:4ピン〜10ピンの間)

と言うような話題について考えてみたいと思います。下記のように基本的な回路のように7segのLEDのダイナッミック点灯では7seg分とコンマで8本、4桁ならスキャン部分に4本の合計12本が最大値と思いますがデコーダやエンコーダを使えば4+1+2で7本で済みます。

ところが通常のマイコンはI/Oピンを入力にも出力にも設定できるのでこれを利用すれば7segのLED用とKEYを兼用に使えることとなり下記のように一般的なLED-KEY回路のように節約することができます。ただしここで良く回路を考えないとKEYを2個同時に押して出力がショートしたり、KEYを押すたびに表示が暗くなったりします。

ところで先の24KEYの回路ですが図のようなちょっとひねった回路にすると4本のI/Oピンで済みます。実験では図の抵抗を50KΩにすると入力に設定するとプルアップではHigh、Hi-ZではLowとなります。1つのピンを出力に設定し1を出力した時、他の3本を入力にしなおかつHi-Zにします。この時Highとなるピンが押されたKEYです。同様に出力を0にし入力をプルアップします。この時Lowとなるピンが押されたKEYとなります。