戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2017年 春期 午後 問02


温度モニタに関する次の記述を読んで、設問1,2に答えよ。

 図1に、ある温度モニタのシステム構成図の一部を示す。  タイマ割込み発生時に起動される割込みプログラムが、温度検出器の出力値をA/D変換器を介して取り込み、対応した値を7セグメントLED(以下、LEDという)に表示するシステムである。温度の検出範囲は0〜70℃とし、検出された温度(以下、検出温度という)を8段階のレベルに対応させて、“1”〜“8”の数字で表示する。割込みプログラムが起動されてから表示処理の完了までの時間は、タイマ割込み間隔に比べて十分に短いものとする。  LEDの各セグメントは、対応する出力ポートのビットの値が1のとき点灯し、0のとき消灯する。LEDに“1”〜“8”の数字を表示するために、数字の字形に合わせて、対応する8ビットのデータを出力ポートのビット0〜7に設定する。このデータを形状データといい、出力ポートのビット7を最上位ビットとする2桁の16進数で表記する。
基本情報技術者試験(平成29年 午後 問2 図1)

設問1:

問題文を見る
 次の記述中のに入れる正しい答えを、解答群の中から選べ。    検出温度は、A/D変換器によって、表1に示す10℃ごとの温度基準値の中の最も近い値に近似される。温度基準値の刻み幅の中央の値は高い側の温度基準値に近似される。例えば、検出温度14℃は10℃に、15℃は20℃に、16℃は20℃に近似される。温度基準値、A/D変換器出力、レベルの関係を、表1に示す。
基本情報技術者試験(平成29年 午後 問2 表1)
 LEDの表示が図2のとき、出力ポートに設定されている形状データはa、A/D変換器出力(2進表記)はb、検出温度の範囲はcである。
基本情報技術者試験(平成29年 午後 問2 図2)
aに関する解答群  ア:66  イ:BE  ウ:DA  エ:F2  オ:FE   bに関する解答群  ア:010  イ:011  ウ:100  エ:101  オ:110   cに関する解答群  ア:40℃以上50℃未満  イ:45℃以上55℃未満  ウ:50℃以上60℃未満  エ:55℃以上65℃未満  オ:60℃以上70℃未満

模範解答

a:イ、b:エ、c:イ

解説

解答の導き方

この問題では、図2のLEDの点灯パターンから形状データを求め、A/D変換器の出力と検出温度の範囲を順に確認します。
1. 点灯パターンをビット列にする
7セグメントLED(Light Emitting Diode:発光ダイオードを使い、複数の線の点灯で数字を表示するもの)は、各セグメントに対応するビットが1なら点灯し、0なら消灯します。
図1では、ビット7からビット1までが数字を形作る7本のセグメントに対応しています。ビット0は小数点に対応しますが、「ビット0には常に0が設定」されます。
図2の数字の6の形では、上段、右下、下段、左下、左上、中央が点灯し、右上は消灯します。ビット7からビット0までの値を並べると、次のようになります。
ビット76543210
対応する部分上段右上右下下段左下左上中央小数点
値10111110
したがって、形状データは2進数でです。4ビットずつ区切るとになり、16進数ではです。よって、aは解答群のイです。
2. A/D変換器の出力を表1から読む
A/D変換器(Analog-to-Digital Converter:連続した値をデジタル値に変換する装置)の出力は、LEDに表示するレベルを決めます。
表1では、温度基準値が10℃上がるごとに、A/D変換器の出力も1ずつ増えます。出力がのときは、表の並びから温度基準値が50℃、レベルが6だと分かります。
A/D変換器出力温度基準値レベル
10040℃5
10150℃6
11060℃7
したがって、bはで、解答群のエです。ここで、レベル6は表示する数字の6とは別の「温度を何段階目として扱うか」を表す値です。
3. 50℃に近似される温度の範囲を求める
50℃の温度基準値に近似されるのは、40℃と50℃の中間である45℃から、50℃と60℃の中間である55℃までの範囲です。
問題文には「温度基準値の刻み幅の中央の値は高い側の温度基準値に近似」とあります。そのため、45℃は高い側の50℃に近似されます。一方、55℃は高い側の60℃に近似されるため、50℃の範囲には入りません。
よって、検出温度の範囲は45℃以上55℃未満で、cは解答群のイです。

誤りやすいポイント

  • セグメントのビット順を逆にしないようにします。問題文では、出力ポートのビット7が最上位ビットです。
  • 小数点に対応するビット0は、常に0です。数字を表示するときも、形状データの最後のビットは0になります。
  • A/D変換器の出力をレベル5と考えないようにします。レベル1が出力から始まるため、はレベル6に対応します。
  • 範囲の端点では、「中央の値は高い側」に近似する規則を使います。そのため、45℃は含みますが、55℃は含みません。

FAQ

Q: 形状データのは、なぜ16進数でなのですか?
A: 4ビットずつに区切るととです。は16進数の、はなので、合わせてです。
Q: A/D変換器の出力は、温度基準値の50℃を直接表すのですか?
A: 表1では、出力が50℃の温度基準値に対応します。ただし、実際の検出温度は50℃ちょうどとは限らず、45℃以上55℃未満の範囲が50℃に近似されます。
Q: 55℃は、なぜ50℃に近似されないのですか?
A: 55℃は50℃と60℃の中間です。中間の温度は高い側の基準値に近似するため、55℃は60℃に近似されます。

関連キーワード: 7セグメントLED、A/D変換、2進数、16進数、量子化

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

 タイマ割込み発生時に起動される割込みプログラムについて、その処理の流れを、図3に示す。図3中のに入れる正しい答えを、解答群の中から選べ。    各機器にはI/Oポート番号が割り当てられており、割込みプログラムは、各機器に対する制御、データの読込み及び書込みを、I/Oポート番号を指定して行う。LEDに接続されている出力ポートにはI/Oポート番号1が、A/D変換器にはI/Oポート番号2と3が、それぞれ割り当てられている。表2にLEDとA/D変換器の動作概要を示す。また、図3で使用している擬似命令の形式と動作は、表3のとおりとする。
基本情報技術者試験(平成29年 午後 問2 表2)
基本情報技術者試験(平成29年 午後 問2 表3)
基本情報技術者試験(平成29年 午後 問2 図3)
dに関する解答群  ア:GR < 0  イ:GR = 0  ウ:GR = 1  エ:GR > 1   eに関する解答群  ア:INPUT1  イ:INPUT2  ウ:INPUT3  エ:OUTPUT1  オ:OUTPUT2

模範解答

d:イ、e:エ

解説

解答の導き方

図3の処理は、A/D変換を開始し、変換が終わるまで状態を確認したあと、変換結果をLEDに表示する流れです。A/D(Analog-to-Digital:アナログ信号をコンピュータで扱える数値に変換すること)変換器の動作と、GR(General Register:データを一時的に保存する場所)の値に注目します。
まず、最初の「GR←1」で、GRに1が設定されます。その後の「OUTPUT 2」は、GRの値をI/O(Input/Output:機器とのデータの入出力)ポート番号2に書き込む命令です。表2によると、番号2のI/Oポートに値1を書き込むと、A/D変換が始まります。
次に「INPUT 2」で番号2のI/Oポートから値を読み込み、その値がGRに入ります。ここでGRの値は、最初に設定した1ではなく、読み込んだA/D変換器の状態を示す値に置き換わります。
表2では、番号2のI/Oポートから読み込んだ値が0なら「変換中」、0以外なら「変換完了」です。したがって、変換中かどうかを判定する条件は「GR = 0」です。これがdに入ります。判定がYesなら、変換はまだ終わっていないので、番号2のI/Oポートをもう一度読み込んで状態を確認します。Noなら、変換が完了しているので、次へ進みます。
処理GRに入る値・処理の意味
GR←1A/D変換を開始するための値1を設定します
OUTPUT 2値1を書き込み、A/D変換を開始します
INPUT 2A/D変換器の状態を読み込み、その値をGRに入れます
GR = 0の判定0なら変換中なので、もう一度状態を確認します
INPUT 3変換完了後の出力値(0〜7)をGRに読み込みます
変換処理、GR←α出力値を形状データに変換し、GRに設定します
最後に、GRにはLEDに表示するための形状データが入っています。表2によると、LEDにはI/Oポート番号1に形状データを書き込むと表示されます。表3の「OUTPUT」はGRの値を指定したI/Oポートに書き込む命令なので、ここでは「OUTPUT 1」が必要です。したがって、eに入るのは「OUTPUT1」です。

誤りやすいポイント

  • 最初にGRへ1を設定しますが、「INPUT 2」で読み込んだ値がGRに入るため、判定時のGRはA/D変換器の状態を示しています。最初の1のままだと考えないようにしましょう。
  • 変換中を示すのは、番号2のI/Oポートから読み込んだ値が0の場合です。判定条件は「GR = 0」です。「GR = 1」ではありません。
  • 変換完了を示す値は「0以外」です。値が必ず1とは限らないので、「GR = 1」とは判定できません。
  • 番号2のI/Oポートは、A/D変換の開始と状態確認に使います。変換結果の読み込みには番号3を使い、LEDへの表示には番号1を使います。
  • LEDに表示する形状データは、変換処理のあとにGRに設定されています。その値を書き込む命令は「OUTPUT」です。「INPUT」ではありません。

FAQ

Q: 変換中のとき、なぜ「OUTPUT 2」ではなく「INPUT 2」を繰り返すのですか?
A: 「OUTPUT 2」はA/D変換を開始するための書込みです。変換中は、番号2のI/Oポートを読み込んで状態を確認します。開始命令を繰り返すのではなく、読み込みを繰り返す流れです。
Q: 「INPUT 3」で読み込んだ値を、そのままLEDに表示するのですか?
A: そのままではありません。読み込んだ値は0〜7の数値で、LEDに表示するには数字の形に対応する形状データへ変換する必要があります。変換後の形状データをGRに設定してから、番号1のI/Oポートへ書き込みます。
Q: 出力命令の番号は、どのように判断すればよいですか?
A: 表2で、表示したい機器につながるI/Oポート番号を確認します。LEDにつながる番号は1なので、LEDにデータを書き込むときは「OUTPUT 1」です。

関連キーワード: A/D変換、I/Oポート、汎用レジスタ、割込み処理、7セグメントLED

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

戦国ITクイズ機能

\ せっかくなら /

基本情報技術者を
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について