[更新日]1998.05.15
問17 マイコンを用いた時計装置に関する次の記述を読んで, 設問 1 〜 3 に答えよ。
図 1 に時計装置のシステム構成図,表に入出力ポートの仕様を示す。 クロック信号を基にカウンタで 10 ミリ秒ごとのタイマ割込み信号を 発生させる。拡張 COMET はタイマ割込み信号を計数することによって, 24 時間で一巡する方式の時刻を管理し,時と分を表示器に出力する。
図1 時計装置のシステム構成図
表 入出力ポートの仕様
種別
I/O アドレス
ビット番号
内容
備考
入力ポート
3 番地
0 〜 13
未使用
常に 0
14
時スイッチ
ON のとき 1 になる
15
分スイッチ
出力ポート
5 番地
0 〜 3
時の 10 のけた
BCD コード
4 〜 7
時の 1 のけた
8 〜 11
分の 10 のけた
12 〜 15
分の 1 のけた
システムを起動すると時刻が 0 時 0 分に初期化されるので, “時スイッチ”及び“分スイッチ”を必要な回数だけ押下(ON)することに よって,現在の時刻を設定する。
なお,拡張 COMET ではビット番号 0 が MSB(Most Significant Bit)で あることに注意して解答すること。
設問1 65536 パルスを数えるごとに 1 パルスを出力する 2 進 16 ビット カウンタを用いて,10 ミリ秒ごとのタイマ割込み信号を発生させるには, クロックにどの周波数を使えばよいか。正しい答えを解答群の中から選べ。
解答群
ア 6.5536 kHz イ 65.536 kHz ウ 655.36 kHz
エ 6.5536 MHz オ 65.536 MHz カ 655.36 MHz
設問2 タイマ割込み処理及び時刻設定処理の流れ図を図 2 に示す。 流れ図中の に入れる正しい 答えを,解答群の中から選べ。 なお,タイマ割込み処理プログラムは,次の割込み信号が発生するまでの 間に処理を終了できるものとする。また,すべての変数はシステムの起動時に 0 に初期化される。
〔副プログラム“分の計数処理”及び“時の計数処理”の処理内容〕
(1) 分の計数処理(MINUUP)は,変数 C の値を 0 にした後, 変数 MINU に 1 を加算して 60 になったら 0 に戻す。
(2) 時の計数処理(HOURUP)は,変数 HOUR に 1 を加算して 24 に なったら 0 に戻す。
図2 タイマ割込み処理及び時刻設定処理の流れ図
ア 10 イ 100 ウ 1000
エ 6000 オ 60000
設問3 時刻設定を行う副プログラム TMSET 中の に入れる正しい答えを, 解答群の中から選べ。 なお,各スイッチを ON 又は OFF にしたとき,チャタリングは発生しない ものとする。
;時刻設定副プログラム TMSET ; スイッチの状態読込み ST GR0,NEW ; スイッチの状態変化検出 AND GR0,NEW ST GR0,CHNG LD GR1,NEW ST GR1,BEFORE ; スイッチの状態記憶 AND GR0,H0001 ; “分スイッチ”が ON に変化 ? JZE BAH CALL MINUUP ; 分の計数処理 BAH ; スイッチの変化判定用情報の読出し AND GR0,H0002 ; “時スイッチ”が ON に変化 ? JZE BAD CALL HOURUP ; 時の計数処理 BAD POP GR1 RET H0001 DC #0001 H0002 DC #0002 BEFORE DS 1 ; 前回の入力ポートの状態 NEW DS 1 ; 今回の入力ポートの状態 CHNG DS 1 ; スイッチの変化判定用情報