DDRレジスタ

  • DDRレジスタとは
DDRレジスタとはマイコンのピンを出力入力か設定するレジスタです。
入力…マイコンにスイッチやセンサなどを接続した際、マイコンのピンにかかっている電圧がHighかLowか識別する時に設定します。
出力…マイコンにLEDなどを接続した際に、マイコンのピンの電圧をHighかLowにする時に設定します。

いま、ピンの電圧において、HighLowという表現しましたが、これらはなにかというと、入力では、マイコンのピンはそれにかかっている電圧がVcc(電源電圧)GNDどちらに近い値の状態か識別することしかできず(今後AD変換というものを行うとVccとGNDの間の電圧も識別できるようになりますが今回は2種類の状態しか識別できないと思っておいてください)、出力では、マイコンのピンの電圧をVccGNDの2種類の状態にすることしかできないのですが、このときのVccに近い状態をHighGNDに近い状態をLowといっています。

  • DDRレジスタの使い方
DDRレジスタを書き換える際には、DDR◯というレジスタに設定値を代入します。

◯には設定したいピンのポートのアルファベットを入れてください。(例:DDRB,DDRD)

ポート…マイコンのピンは、グループ分けされていて、そのグループをポートといい、ポート内のピンはそのポートの 番という風に表現されます。例えば、データシートでのピン配置図でPB3というピンがありましたが、これはポートBの3番ピンを表しています。

次は、DDRレジスタに代入する設定値について説明します。
DDRB = 0b11110000;
上記のコードを書くと、ポートBのレジスタは書き換えられるわけですが、実際、ポートB内のピンそれぞれがどのように入出力設定されるかというと、PB0~PB3が入力、PB4~PB7が出力に設定されます。

ここで、覚えてほしい事は2つです。
1つ目…設定値を2進数で表した時の各Bitはポート内の各ピンに対応している事
2つ目…ポート内のピンに対応する設定値のBit目の数字が0なら入力に、1なら出力にそのピンは設定される事         

PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0
DDRB = 0b 1 1 1 1 0 0 0 0

上記の例でみると、設定値の3bit目は、0になっていますね。つまり、PB3は入力設定になっているわけです。

このとき、DDRレジスタに代入する設定値の値はどんな表記でもいいのですが、2進数表記にしておけば、ポート内のピンでどれがどんな設定になっているかわかりやすいので、2進数で表記することをお勧めします。
最終更新:2015年08月17日 05:52