電子技術研究倶楽部

PICマイコンで電卓(設計・製作編1)

      2016/09/28

さて、本日は昨日の「PIC電卓構想編」に引き続き、縛り電卓を作っていきましょう。
今回からは実際に回路図を引いていくので、仕様を厳密に決定し、論理回路設計を行っていきます。

仕様の決定

昨日は、4桁表示と15ボタン以上というざっくりした目標のみ書きましたが、今回は実現できそうな範囲で仕様を決定します。
(実はこの記事を描いている段階ではまだブツが完成していないので、企画倒れにならないことを祈ります…)

  1. 4桁ダイナミック表示であること
    ただし、74LS47は一つのみ使用。74LS47を4つ使えば比較的簡単にこの機能は実装できるのですが、この条件を付けることで、実装難易度がぐ~んと上がるので面白くなります(後述)
  2. 29個のボタンを搭載
    一部の信号線をダイナミック表示用のものと共用することで、IOで受け取れるボタン入力が28個、そしてマイコン自体のリセット信号を「AC」機能として使用することで合計29個のボタンを実装することが可能です。

この2つのみを目標として掲げたのは、この2つが最も実装が困難だからです。先述のとおり、74LS47を複数個使用して良いなら圧倒的に楽になるのですが、現在手元に一つしかないので、何とか1つで無理に動かす方法を考えねばなりません。まあ、考えるといっても、マイコンのピン数が限られている以上、74LS00を用いて論理回路を組まざるを得ないわけですが・・・(そしてそれが面倒!)
文字ばかりでは面白くないので、実際に大学で行われている実験以上に厳しい条件を施した電卓の回路がどうなるのかを次節では見ていきましょう。

論理回路

前節で説明した通り、今回の電卓の成功は、マイコンの周辺回路としての論理回路が、いかに多機能であるかにかかっていると言えます。
そこで、前節の目標を達成するために必要と思われる論理回路を次図に示します。
pic-calc-logic

(勘の良い人は昨日の段階で気づかれたかもしれませんが、)クラゲ(ロジックゲート)の大集合です。ここまで複雑だと、私と同じ大学の後輩で、実験のレポートをごまかすためにコピペしようとする不届き者も、真似しようとは思わないでしょう。(笑)
上の論理回路中には、45個のNANDゲートが存在します。74LS00の中には4つのNAND素子が入っていますから、単純計算でも74LS00が12個必要ということになります。また、上の論理回路中にはマイコンリセット用のボタンを除いた計28個のボタンが描かれているわけですが、これらの配線もすべて正確に行わねばなりません。(なんかもう実際に作るのやめたくなってきました

解説編の方で、各部の意味は詳しく説明させていただく予定ですが、上記の回路図中には(実務ではまず許されないような)まずい設計がありますので、その部分だけ説明しておきます。 回路図左上のキーマトリクス部分にご注目ください。 この部分は、マイコン側から送られてきた信号をもとに、上から1列ずつスキャンを行い最終的なボタンの押下状態を得るものになっています。 しかし、この回路の場合、「複数キーの同時押しを行うと、ショートする可能性がある」という、とってもスリリングな設計になっています。本来であれば、ダイオードなどを使用して、複数列にまたがった同時押しを行っても、ショートしないようにするべきです。今回は使用部品に制限があり、ダイオードを使用できないので、そういう使用者に優しい設計にはなっていません。(一応今回の制約の中でも、74LS00を用いてOR回路を構成してやれば何とかなるのですが、もうこれ以上回路を複雑化したくなかったので、このような形に…)

それでは今日もこのあたりで失礼させて抱きます。
今回も大まかな論理回路の説明のみで終わってしまいました。次回は実際に製作途中の写真なんかをお見せ出来たらなぁ、と思っておりますのでお楽しみに。

 - PICと74ロジックで作る電卓(未完), 電子工作, 電子工作 作例集