令和3年秋期試験問題 午前問23
問23解説へ
マイコンの汎用入出力ポートに接続されたLED1を, LED2の状態を変化させずに点灯したい。汎用入出力ポートに書き込む値として,適切なものはどれか。ここで,使用されている汎用入出力ポートのビットは全て出力モードに設定されていて,出力値の読出しが可能で,この操作の間に汎用入出力ポートに対する他の操作は行われないものとする。
- 汎用入出力ポートから読み出した値と16進数の08との論理積
- 汎用入出力ポートから読み出した値と16進数の08との論理和
- 汎用入出力ポートから読み出した値と16進数の48との論理積
- 汎用入出力ポートから読み出した値と16進数の48との論理和
広告
解説
16進数の 08 と 48 を2進数表記にすると以下のようになります。
ビット6について読み出したビットを変化させずにそのまま出力するには、"1"との論理積(AND)をとるか、"0"との論理和(OR)をとることになります。ビット3については必ず1を出力したいので"1"との論理和をとるのが必須です。この2つの条件を組み合わせると、ビット3は"1"で論理和をとる、論理和を使用するためビット6は"0"を使うことになります。
以上より、「読み出した値と16進数08の論理和」が適切とわかります。
- 08(16) = 0000 1000(2)
- 48(16) = 0100 1000(2)
ビット6について読み出したビットを変化させずにそのまま出力するには、"1"との論理積(AND)をとるか、"0"との論理和(OR)をとることになります。ビット3については必ず1を出力したいので"1"との論理和をとるのが必須です。この2つの条件を組み合わせると、ビット3は"1"で論理和をとる、論理和を使用するためビット6は"0"を使うことになります。
以上より、「読み出した値と16進数08の論理和」が適切とわかります。
- ビット3は"1"との論理積、ビット6は"0"との論理積となります。LED1が点灯せず、点灯していたLED2が消灯してしまうため誤りです。
- 正しい。ビット3は"1"との論理和、ビット6は"0"との論理和となります。ビット3は常に"1"で点灯、ビット6は読み出したビットがそのまま出力されます。
- ビット3は"1"との論理積、ビット6も"1"との論理積となります。ビット3が"1"とならず、LED1を点灯させることができないため誤りです。
- ビット3は"1"との論理和、ビット6も"1"との論理和となります。ビット6が常に"1"となり、消灯していたLED2が点灯してしまうため誤りです。
広告