3-8デコーダによるデバイス指定 今回の回路ではデコーダ(74HC138)を使用して7つのデバイスの指定を行っています。
デバイス番号はPICのRA0,1,2により指定しています。 デコーダの出力をPNPタイプのトランジスタ(2SA1015)に入力して各デバイスの選択を行っています。 選択されたデバイスにはトランジスタを通して電流が流れます。選択されていないデバイスはトランジスタがOFF状態なので回路から切り離されている状態になります。 BCDスイッチ(入力)、スタートスイッチ(入力)、LED(出力)を全てポートBで制御しています。選択したデバイスによりポートBの入出力モードを切り替えています。 BCD-SWの回り込み防止 BCDスイッチは選択した数字によりスイッチの各端子が短絡した状態になり、電流が回り込んでしまいます。これを防止するためにダイオードを使用しています。 7セグLEDもポートBに接続されていますが、LED自身がダイオードなので、電流が回り込むことはありません。 この回路はポートBにBCD-SWが1つだけ接続される場合には不要ですが、複数のBCD-SWおよび7セグメントLEDを接続しているので必須になります。 プルアップ回路 BCDスイッチの回路は接地される端子以外はオープン(どこにも接続されていない)状態になります。オープンの端子を確実にHレベルにするためにPICのプルアップ機能を使っています。OPTION_REGのRPBIビットを'0'にするとプルアップ回路が動作します。 プルアップ機能はポートが入力モードの時に有効になり、出力モードでは影響しないようになっています。 スタートスイッチも同様にプルアップ機能によりスイッチオフの状態でHレベルにしています。 ストップスイッチを接続しているポートAにはプルアップ機能が無いので、外部に抵抗器を接続してプルアップしています。 出力リレー回路 リレーを連続動作させるためにRA3ポートをリレー制御専用に使用しています。 PIC16F84Aのポートには25mAまでの電流を流すことができます。 今回使用したリレーは駆動コイルに+5Vを加えると約23mAの電流が流れます。ポートの許容電流ギリギリです。安全のためにトランジスタを使用してリレーを駆動することにしました。トランジスタのコレクタには最大150mAの電流を流すことができます。 発振器 10MHzのレゾネータを使用しています。クロックを正確にするためには水晶発振器を使用する方が良いのかもしれません。 電源回路 7セグメントLEDは同時には1桁しか点灯しません。 動作電流はおおよそ以下のようになります。
今回は100mAタイプのレギュレータを使用しています。 |