ビット、バイト、ワードとデジタル論理【マイコンプログラミングに必須】

マイコンプログラミングにおいてはデータの四則演算以外にビット演算をよく使います。マイコンスキルが上達してマイコンのレジスタを直接設定する場合には特にビット、バイト、ワードの概念は欠かせません。この章ではデジタル論理についての基礎的な解説をおこなっていますのでしっかり理解してください。

ビット、バイト、ワード

めかのとろ

ビットとは2種類の状態(0と1)によって区別するデータ量の単位で、1ビットデータは0と1でOFFとON状態の区別表現ができます。 
マイコン内部では数値は2進数で扱われます。2進数の桁数のことをビット数と呼びます。

  • ビット数が1の場合1ビットといい、0か1の2通り(21)の数しか扱えません。
  • ビット数が2の場合2ビットといい、2進数では00/01/10/11の4通り(22)で10進数では0から3まで扱えます。
  • ビット数が8の場合8ビットといい、2進数では00000000から11111111の256通り(28)、10進数では0から255まで扱えます。
  • ビット数が16の場合16ビットといい、65536通り(216)、0から65535まで扱えます。
めかのとろ

1バイトは8ビットのことです。同様に16ビットを1ワード32ビットをロングワードと呼びます。
バイトはBと表すため、例えば16kバイトは16kBと表現します。

ビットと数値範囲
ビット、バイト、ワード

デジタル論理

めかのとろ

デジタル論理の考え方はプログラミングにおいても必須でソフトウェア的なものはあえてここでは説明しませんが、最低理解しておいてほしい基礎だけをあげておきます。

めかのとろ

AND(アンド:論理積)、OR(オア:論理和)、NOT(ノット:否定)、NAND(ナンド)、NOR(ノア:),XOR(エクスクルーシブオア:排他的論理和)のうち特にANDORの真理値表、演算とNOTは覚えずとも理解はしておいてください

めかのとろ

ここで取り上げたいことはマイコン周辺回路内で使われるデジタル論理です。マイコンはデジタル回路なので電気信号は電源電圧レベルのVdd(デジタル回路での一般表記)とグランドレベルのVss(デジタル回路での一般表記)かのどちらかです。デジタル論理では信号レベルがVddの場合1またはHレベル(High)で、Vssの場合0またはLレベル(Low)であるといいます。

めかのとろ

実際に回路を組むにあたって、ANDは直列接続に相当し、ORは並列接続に相当します。
また、出力回路のインターフェースを設計する際に必要な知識なのですが、デジタル1をマイコン出力する場合に実際の出力の電圧レベルを1のレベルにするのか0のレベルにするのかで反転したい場合がでてきます。このときに使われるのが論理を反転するNOTです。回路においてはトランジスタなどスイッチ素子を一つ介すると実現できます。

めかのとろ

マイコン出力が1の場合、スイッチ素子であるトランジスタのベースにIBが流れ、トランジスタがONします。
ONしますとトランジスタにコレクタ電流ICが流れ、結果出力はほぼ0V(厳密には電圧降下分Vceがあり0ではない)となりマイコン出力とは反転しています。

トランジスタによるNOT回路
めかのとろ

トランジスタの働きに関しては「マイコン周辺のハードウェア基本回路」で詳細を解説しています。

めかのとろ

スイッチで構成したAND, OR, NOT回路をみてみましょう。
スイッチがONで1、OFFで0であると定義すると、AND回路の入力はスイッチが直列につながれていますのですべてのスイッチSW1,SW2,SW3がONであるとき出力OUTは1つまりONします。

AND回路
めかのとろ

OR回路ではスイッチが並列につながれていますので、SW1,SW2,SW3のいずれかのスイッチがONであれば出力は1となります。

OR回路
めかのとろ

NOT回路では入力が1のとき、OUT1は1ですがOUT2は0で反転出力となっているためNOT回路です。NOTを入れることは論理を反転するともいいます。

NOT回路
めかのとろ

論理の考えはプログラム内のみならず、回路周辺にも使用する重要な概念ですので理解しておいてください。