平成8年度 秋期 第二種 午後 問17

                        [更新日]1996.11.19
問17 マイコン応用システム設計に関する次の記述を読んで,設問1〜3に答えよ。 図1は拡張COMETを用いてモータの回転速度を制御するシステムの構成図であ る。拡張COMETは回転速度の目標値を出力ポートから出力する。モータ駆動装 置はその目標値に追従するように,実際のモータの回転速度を制約する。目標 値はスイッチUとスイッチDによって変更することができ,目標値が0ならモー タは停止する。モータは一方向だけに回転し,逆転はしない。 図2はスイッチUとスイッチDによって目標値が変化する例を示したものである。 スイッチUを押すと目標値は大きくなり,スイッチDを押すと目標値は小さくなる。 ただし,目標値は負になることはない。また,使用するスイッチには,チャタリ ングがないものとする。拡張COMETの場合,bit0は MSB(MostSignificant Bit) であることに注意して解答せよ。 設問1 図3は 拡張COMETが行う処理を流れ図で示したものである。図3中 ┌─────┐ の│ │に入れる正しい答えを,解答群の中から選ベ。仕様は次 └─────┘ のとおりとする。 (1)スイッチUを押すと割込み2が発生し,スイッチDを押すと割込み3が発生 する。 (2)目標値はあらかじめ定めた最大値以下, 最小値以上とする。 (3)各処理は,それぞれ,拡張COMETのリセット,割込み2及び割込み3で 起動される。 解答群 ア GR0 イ SP(スタックポインタ) ウ 割込み エ 割込みマスク  オ 入力及び出力 設問2 次のプログラムは設問1の各処理を拡張CASLで記述したものである。プロ グラム中の〔 〕に入れる正しい答えを、解答群の中から選ベ。ここで, スタックとして最初にアクセスされるアドレスは、65535(16進数表示でFFFF) 番地とする。また,このプログラムはCASLLINKを用いて,先頭が0番地に割り 付けられる。 〔プログラム〕 RESET JMP INITL DS 8 DC INT2 DC INT3 DS 4 MASK DC #CF00 ;定数 MAX DC 800 ;目標値の最大値 MIN DC 0 ;目標値の最小値 DIF DC 10 ;目標値の1回の変化量 TGV DS 1 ;目標値 PORT EQU 9 ;出カポートのアドレス(9番地) ; INITL LEA GR4,〔 c 〕 LD GR0,MASK STM GR0 LD GR0,MIF ST GR0,TGV 〔 d 〕 PORT 〔 e 〕 LOOP JMP LOOP ; INT2 LD GR0,TGV ADD GR0,DIF CPA GR0,MAX JMI J1 JZE J1 LD GR0,MAX Jl ST GR0,TGV 〔 d 〕 PORT RETI INT3 LD GR0,TGV SUB GR0,DIF CPA GR0,MIN JPZ J2 LD CR0,MIN J2 ST GR0,TGV 〔 d 〕 PORT RETI END 解答群 ア DI イ EI ウ INPUT エ LD オ MASK カ OUTPUT キ ST ク 0 ケ 65535 設問3 プログラム作成中に“スイッチU又はスイッチDが1.0秒以上押し続けら れていれば,再び目標値を変更し,スイッチが離されるまでは0.1秒ごと に目標値を変更する”という仕様が追加された。 仕様追加に対する実現案を述べた次の記述中の〔 〕に入れる正 しい答えを,解答群の中から選ベ。 時間を計るために周期0.1秒のタイマ割込み要求を追加する。この割込み 要求の処理でスイッチが押されているかどうかを調べて,1.0秒以上押され ていたらタイマ剖込み要求ごとに目標値を連続して変更する。 これを実現する方法として,次の二つの案を考えた。 案1:入力ポートを追加してスイッチの〔 f 〕を読み込めるようにし, タイマ割込み処理では,読み込んだ結果を調べる。もし連続して押さ れていれば,タイマ割込み要求の回数を数えて,11回以上になったら タイマ割込み要求ごとに目標値を変更する。 案2:スイッチを〔 g 〕にも割込み要求を発生させるようにする。 そして作業領域にフラグを準備しておき,スイッチを押し始めたとき にはフラグを1に〔 g 〕にはフラグを0にする。タイマ割込み処理 では,このフラグを調べて,フラグが1ならばタイマ割込み要求の回数 を数え,11回以上になったら,タイマ割込み要求ごとに目標値を変更 する。 解答群 ア 押し続けた場合 イ 離したとき ウ 発生コード エ 状態 オ 割込みレベル カ 割込み要因
戻る