手動 PPI 8255の実験回路(モード 0のみ)
手動でPPI 8255を操作してみました。 CPUの代わりに人間が操作する事によって、プログラムから制御をするより、信号の受け渡しを体感でき、より深く理解する事が出来ます。 8255は、インテルによって8080用に開発された、汎用プログラマブルインターフェイスで、8ビットで最も普及している並列入出力インターフェイスです。 実験にはセカンドソースの三菱M5L8255AP−5を使用しています。 8255には、3つのモードがありますが、この実験回路で確かめる事が出来るのは、モード 0の基本入出力動作モードのみです。 |
8255には、データ幅8ビットのポートがA、Bの2本、データ幅4ビットのポートが、C(上位4ビット、下位4ビット)の2本、計4本のポートを持っています。 各ポートをどのように使うかは、はじめに機能設定をCWR(コントロールワードレジスタ)に書き込んで決めます。 まず、各モード・入出力の設定は、コントロールワード設定の表で、各機能と対応するCWR(コントロールワードレジスタ)のビットを確かめながら、データバス・スイッチで設定していきます。 モードをセットしますので、モードセットフラグD7は1に、この実験回路はモード 0のみですので、D6、D5、D2を0にします。
各ポートの入出力は、入力に使いたければ1、出力に使いたければ0を設定します。 データの入出力は、CPUとメモリーの関係と似ています。 データバスから各PORTへデータを出すのを出力。 データバスへ各PORTからデータが入るのを入力。
また、1と0どちらが入力か出力かわからなくなったときは、 「1」は「I」と似ているからINPUT(入力)、 「0」は「O」と似ているからOUTPUT(出力) と考えると覚えやすいです。 設定が終わったら設定した内容をCWR(コントロールワードレジスタ)への書きこみます。
動作条件設定の表の一番下、「CWR(コントロールワードレジスタ)への書きこみ」と同じように、A1、A0、_RDを1に、そして、_WRを0の状態のまま、タクトスイッチWR↑を1度押すと、CWR(コントロールワードレジスタ)に書き込まれます。 (_CSはGNDに落としてありませので0になっています。) 例:全ポート入力
CWR(コントロールワードレジスタ)を、コントロールワード設定の表で確かめながら、 下の表のように設定します。
間違いが無ければ設定を書きこみます。
入力は、バッファ回路ですので、下の表のように設定すると、 各ポートの信号がデータバスに筒抜けになります。
例:全ポート出力
CWR(コントロールワードレジスタ)を、コントロールワード設定の表で確かめながら、 下の表のように設定します。
間違いが無ければ設定を書きこみます。
出力は、ラッチ回路ですので、下の表のように設定し、 タクトスイッチ_WR↑で信号がポートから出力されます。 (次の入力があるまで状態保持)
|