SkillStack
テクノロジ系4 / 25問

エンベデッドシステムスペシャリスト試験 令和3年度 秋期 午前II 問4

8ビットの方向レジスタ及びデータレジスタで構成されるI/Oポートがあり、各ビットにLEDが一つずつ負論理で接続されている。システム起動時にLEDの不要な点灯を避けるための手続として、適切なものはどれか。ここで、レジスタに書き込む値は16進数で表現している。

エンベデッドシステムスペシャリスト試験 令和3年度 秋期 午前II 問4の図表

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】イ

図では、方向レジスタはリセット時に全ビットが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に質問できる
SkillStackで無料で始める