エンベデッドシステムスペシャリスト試験 令和3年度 秋期 午前II 問4
8ビットの方向レジスタ及びデータレジスタで構成されるI/Oポートがあり、各ビットにLEDが一つずつ負論理で接続されている。システム起動時にLEDの不要な点灯を避けるための手続として、適切なものはどれか。ここで、レジスタに書き込む値は16進数で表現している。

選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】イ
図では、方向レジスタはリセット時に全ビットが0であり、0は入力、1は出力を表します。一方、データレジスタのリセット値は全ビットとも不定です。また、LEDは負論理なので、出力値0で点灯し、1で消灯します。起動直後は各端子が入力状態であるため、まずデータレジスタへFF、すなわち全ビット1を書き込み、出力時の値を消灯状態にそろえます。その後、方向レジスタへFFを書き込んで全端子を出力に切り替えれば、切替えた瞬間から1が出力され、全LEDを消灯状態にできます。したがってイが正解です。
アの手順は誤りです。先にデータレジスタへ00を書き込むと、出力への切替え後に全ビットが0となります。負論理では0が点灯を意味するため、全LEDが点灯します。
ウの手順は誤りです。方向レジスタを先にFFにすると、不定であるデータレジスタの内容が端子へ出力され、LEDが予期せず点灯する可能性があります。さらに、その後の00によって全LEDが点灯します。
エの手順は誤りです。最終的にはデータレジスタがFFとなり全LEDは消灯しますが、方向レジスタを先に出力へ切り替えるため、それまで不定だった値が一時的に出力されます。起動時の不要な点灯を確実に避けられません。
【ポイント】 負論理では、0が有効、1が無効です。この問題では0が点灯、1が消灯に対応します。 出力端子の初期化では、安全な値をデータレジスタへ先に設定してから、方向を出力へ切り替えます。 リセット値が不定のレジスタを、そのまま外部端子へ出力しないことが重要です。
出典:令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問4
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の25問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる