入出力って何?

【入出力って?】
「入出力」とは、コンピュータ自身が自分の世界と外部世界との関係
を持つための出入り口のことを表しています。
パソコンや大型コンピュータでは、この入出力を行う相手がプリンタ
とかキーボードとかの周辺機器となりますが、マイクロコンピュータの
世界では、1ビットごとの別名、「入出力ポート」とか「IOポート」
とか呼ばれているものとなります。
この「IO」というのはInput/Outputの略で、いわゆる入出力です。

マイクロコンピュータは、命令を実行することでこのIOポートから読み
込んだり、IOポートへ出力したりすることが出来ます。
しかし、コンピュータの世界は0、1の世界ですから、このIOポートも
1、0の世界となっています。
これをどう実現しているかというと、IOポートの出力電圧のHigh/Low
で表しています。これがいわゆるディジタルの世界です。
一般に 1=High(5Volt) 0=Low(0Volt)として表現するのが普通で、
この状態を「正論理」、逆の状態を「負論理」と呼んだりします。
【どうやって入出力する?】
 「マイコンは命令でIOポートに入出力をする。」とはどういうこと
かというと、入力の時には例えばPICの場合「MOVF  PORTB,W」と
いう命令を実行したとすると下図aのような動作を行います。

      


また出力の時には、「MOVWF  PORTB」という命令を実行すると、
下図bのような動作を実行します。

    

いずれもPORTBという入出力ポートをレジスタと同じように扱って、
論理の0、1を電気的な1、0(つまりHigh,Low)に置き換えています。
あとはこのPORTBがICのピン経由で信号として外部に出力されて
いるので、そこに外部回路を接続して色々なディジタル動作をさせ
ることができます。
さらにこの出力内容にプログラムによる時間要素の制御を組み合
わせれば、立派なシーケンス制御となる訳です。
【量の入出力はどうする?】
 単なるon/offのディジタルの入出力で「量」(いわゆるアナログ世界)
を扱うにはどうすれば良いのでしょうか?
話は原理どおりで、複数の入出力ポートを組み合わせて2進数で
量を表現します。(A/D、D/A変換と同じ原理です。)
例えば、8個の入出力ポートで8ビット(1バイト)の量を扱うことが
できる訳です。上図で表現されているのと同じこと。
従って、プログラムの中で演算しているデータが1バイトとすれば、
そのデータをそのまま入出力ポートに出力すれば、量が直接外部に
出せることになります。この出力されたデータを並列のデータとして
扱えば、例えばD/A変換器に接続すればアナログ量として外部に
取り出すことができます。
下図がその状態を表しています。

   


   次のページへ     目次ページへ