HOME»基本情報技術者平成29年春期問題»午後問2
基本情報技術者過去問題 平成29年春期 午後問2
⇄問題文と設問を画面2分割で開く⇱問題PDF問2 ハードウェア
温度モニターに関する次の記述を読んで,設問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進数で表記する。
図1に,ある温度モニターのシステム構成図の一部を示す。
タイマ割込み発生時に起動される割込みプログラムが,温度検出器の出力値をA/D変換器を介して取り込み,対応した値を7セグメントLED(以下,LEDという)に表示するシステムである。温度の検出範囲は0~70℃とし,検出された温度(以下,検出温度という)を8段階のレベルに対応させて,"1"~"8"の数字で表示する。割込みプログラムが起動されてから表示処理の完了までの時間は,タイマ割込み間隔に比べて十分に短いものとする。
LEDの各セグメントは,対応する出力ポートのビットの値が1のとき点灯し,0のとき消灯する。LEDに"1~"8"の数字を表示するために,数字の字形に合わせて,対応する8ビットのデータを出力ポートのビット0~7に設定する。このデータを形状データといい,出力ポートのビット7を最上位ビットとする2桁の16進数で表記する。
設問1
次の記述中の に入れる正しい答えを,解答群の中から選べ。
検出温度は,A/D変換器によって,表1に示す10℃ごとの温度基準値の中の最も近い値に近似される。温度基準値の刻み幅の中央の値は高い側の温度基準値に近似される。例えば,検出温度14℃は10℃に,15℃は20℃に,16℃は20℃に近似される。温度基準値,A/D変換器出力,レベルの関係を,表1に示す。 LEDの表示が図2のとき,出力ポートに設定されている形状データはa,A/D変換器出力(2進表記)はb,検出温度の範囲はcである。
検出温度は,A/D変換器によって,表1に示す10℃ごとの温度基準値の中の最も近い値に近似される。温度基準値の刻み幅の中央の値は高い側の温度基準値に近似される。例えば,検出温度14℃は10℃に,15℃は20℃に,16℃は20℃に近似される。温度基準値,A/D変換器出力,レベルの関係を,表1に示す。 LEDの表示が図2のとき,出力ポートに設定されている形状データはa,A/D変換器出力(2進表記)はb,検出温度の範囲はcである。
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:
解答
- a=イ
- b=エ
- c=イ
解説
〔aについて〕
図2のLED表示を図1のセグメントとビットの関係に当てはめてみると、点灯しているセグメントがビット7,5,4,3,2,1、消灯しているセグメントがビット6,0であることがわかります。点灯は"1"、消灯は"0"、ビット7を最上位で表すため、出力ポートのビット列は以下のようになっていると考えられます。
101111102
形状データは16進数2桁で表すので、さらに上記のビット列を16進数表記にします。2進数から16進数へ変換する際は、2進数を4桁ごとにまとめ、そのまとまりごとに変換していきます。
1011 11102=BE16
したがって形状データはBEです。
∴a=イ:BE
〔bについて〕
LEDの表示の"6"は、温度基準値がレベル6であることを示します。表1からA/D変換器の出力と温度基準値を得られれば良いのですが生憎途中が省略されています。レベルが1つ上がるごとに温度基準値が10℃上がり、A/D変換器の出力も1増加することに着目して、表1をレベル6の部分まで補うと以下のような対応関係が明らかになります。つまりレベル6のときのA/D変換器の出力は101です。
∴b=エ:101
〔cについて〕
上記の対応表よりレベル6に対応する温度基準値は50℃とわかります。問題文で挙げられている近似例をみると、検出温度の一の位を四捨五入して温度基準値を算出しています。つまり温度基準値が50℃になる範囲は、四捨五入して50℃になる範囲、すなわち45℃以上55℃未満です。
∴c=イ:45℃以上55℃未満
図2のLED表示を図1のセグメントとビットの関係に当てはめてみると、点灯しているセグメントがビット7,5,4,3,2,1、消灯しているセグメントがビット6,0であることがわかります。点灯は"1"、消灯は"0"、ビット7を最上位で表すため、出力ポートのビット列は以下のようになっていると考えられます。
101111102
形状データは16進数2桁で表すので、さらに上記のビット列を16進数表記にします。2進数から16進数へ変換する際は、2進数を4桁ごとにまとめ、そのまとまりごとに変換していきます。
1011 11102=BE16
したがって形状データはBEです。
∴a=イ:BE
〔bについて〕
LEDの表示の"6"は、温度基準値がレベル6であることを示します。表1からA/D変換器の出力と温度基準値を得られれば良いのですが生憎途中が省略されています。レベルが1つ上がるごとに温度基準値が10℃上がり、A/D変換器の出力も1増加することに着目して、表1をレベル6の部分まで補うと以下のような対応関係が明らかになります。つまりレベル6のときのA/D変換器の出力は101です。
∴b=エ:101
〔cについて〕
上記の対応表よりレベル6に対応する温度基準値は50℃とわかります。問題文で挙げられている近似例をみると、検出温度の一の位を四捨五入して温度基準値を算出しています。つまり温度基準値が50℃になる範囲は、四捨五入して50℃になる範囲、すなわち45℃以上55℃未満です。
∴c=イ:45℃以上55℃未満
設問2
タイマ割込み発生時に起動される割込みプログラムについて,その処理の流れを,図3に示す。図3中の に入れる正しい答えを,解答群の中から選べ。
各機器にはI/Oポート番号が割り当てられており,割込みプログラムは,各機器に対する制御,データの読込み及び書込みを,I/Oポート番号を指定して行う。LEDに接続されている出力ポートにはI/Oポート番号1が,A/D変換器にはI/Oポート番号2と3が,それぞれ割り当てられている。表2にLEDとA/D変換器の動作概要を示す。また,図3で使用している擬似命令の形式と動作は,表3のとおりとする。
各機器にはI/Oポート番号が割り当てられており,割込みプログラムは,各機器に対する制御,データの読込み及び書込みを,I/Oポート番号を指定して行う。LEDに接続されている出力ポートにはI/Oポート番号1が,A/D変換器にはI/Oポート番号2と3が,それぞれ割り当てられている。表2にLEDとA/D変換器の動作概要を示す。また,図3で使用している擬似命令の形式と動作は,表3のとおりとする。
d に関する解答群
- GR<0
- GR=0
- GR=1
- GR>1
e に関する解答群
- INPUT 1
- INPUT 2
- INPUT 3
- OUTPUT 1
- OUTPUT 2
解答選択欄
- d:
- e:
解答
- d=イ
- e=エ
解説
〔dについて〕
ループの開始直前でA/D変換器に対してA/D変換の開始命令が実行されています。またループ中で実行される"INPUT 2"はA/D変換器から値を読込む処理で、読み込んだ値が"0"であれば変換中、"0"以外であれば変換完了を表します。そしてループ後の"INPUT 3"はA/D変換器からの出力値を読込む処理で、これに移るためにはA/D変換が完了していなければなりません。
これらのことからループはA/D変換の完了を待つためのものであり、dにはA/D変換が完了しているか否かを判断する条件式が入ると考えるのが妥当です。ループを繰り返す必要があるのは、"INPUT 2"でGRに設定された値が"0(変換中)"のときです。
流れ図の構造は、比較結果=Yesであればループを続けるようになっているのでGR=0という条件式が適切です。
∴d=イ:GR=0
〔eについて〕
割り込み処理の最後は形状データに基づきLEDに数字を表示させなくてはなりません。そのためにはLEDに対応する番号1のI/Oポートに形状データを書込む必要があります。GRにはeの直前の処理でα(形状データ)が設定されているので "OUTPUT"命令でI/Oポート"1"にGRのデータを出力することになります。つまりeに入る命令は"OUTPUT 1"です。
∴e=エ:OUTPUT 1
ループの開始直前でA/D変換器に対してA/D変換の開始命令が実行されています。またループ中で実行される"INPUT 2"はA/D変換器から値を読込む処理で、読み込んだ値が"0"であれば変換中、"0"以外であれば変換完了を表します。そしてループ後の"INPUT 3"はA/D変換器からの出力値を読込む処理で、これに移るためにはA/D変換が完了していなければなりません。
これらのことからループはA/D変換の完了を待つためのものであり、dにはA/D変換が完了しているか否かを判断する条件式が入ると考えるのが妥当です。ループを繰り返す必要があるのは、"INPUT 2"でGRに設定された値が"0(変換中)"のときです。
流れ図の構造は、比較結果=Yesであればループを続けるようになっているのでGR=0という条件式が適切です。
∴d=イ:GR=0
〔eについて〕
割り込み処理の最後は形状データに基づきLEDに数字を表示させなくてはなりません。そのためにはLEDに対応する番号1のI/Oポートに形状データを書込む必要があります。GRにはeの直前の処理でα(形状データ)が設定されているので "OUTPUT"命令でI/Oポート"1"にGRのデータを出力することになります。つまりeに入る命令は"OUTPUT 1"です。
∴e=エ:OUTPUT 1