平成7年度 春期 第二種 午後 問17

                        [更新日]1995.05.22
問17 次に示すマイコン応用システムに関する記述を読んで、設問1〜3 に答えよ。 6けたの7セグメントLEDを用いて、ストップウォッチの機能を実現 するプログラムを作成した。時間の計測のために1ミリ秒間隔で発生 するタイマ割り込み(インターバルタイマ割り込みと呼ぶ)を用い、 ストップウォッチの操作のために2個のボタンスイッチが接続されて いる。使用するハードウェアの構成を図1に示す。 時間の計測は、インターバルタイマ割り込み処理ルーチンで行い、 表示及びボタン操作に関する処理はメインプログラム側で行なうこと にした。 設問1 インターバルタイマ割り込み処理ルーチンの中では、分カウンタ、秒 カウンタ、10ミリ秒カウンタを計数し、これを逐次更新する処理を行 なう。図2の流れ図の[ ]に入れる正しい答えを、解答群の中か ら選べ。 解答群 ア M10≧100  イ M10≦100  ウ SEC≦60  エ SEC≧60 オ MSEC≧100 カ 0→MSEC   キ 0→ M10  ク 0→SEC コ 0→MIN 設問2 インターバルタイマ割り込み処理ルーチンが計数したカウンタの値 を7セグメントLEDの各けたに表示するためには、カウンタ値を2け たBCDコードに変換し、これを人間が数字として認識できる形状デ ータに変換して出力ポートに出力しなければならない。出力ポート と7セグメントLEDの接続関係を図3にしめす。 ┌─────┐ │bit8 │       S7 ├─────┤      ─────  │bit9 │     │     │ ├─────┤   S5│     │S6 │bit10│     │     │ ├─────┤     │ S4  │ │bit11│      ─────  ├─────┤     │     │ │bit12│   S2│     │S3 ├─────┤     │     │ │bit13│     │ S1  │ ├─────┤      ─────  │bit14│            ◯S0 ├─────┤ LSB│bit15│     7セグメントLED └─────┘ 出力ポート 注 bit0〜bit7には何も接続されていない。 ┌─────────┬───────────┐ │7セグメントLED│出力ポートのビット接続│ ├─────────┼───────────┤ │    S0   │   bit15   │ ├─────────┼───────────┤ │    S1   │   bit14   │ ├─────────┼───────────┤ │    S2   │   bit13   │ ├─────────┼───────────┤ │    S3   │   bit12   │ ├─────────┼───────────┤ │    S4   │   bit11   │ ├─────────┼───────────┤ │    S5   │   bit10   │ ├─────────┼───────────┤ │    S6   │   bit9    │ ├─────────┼───────────┤ │    S7   │   bit8    │ └─────────┴───────────┘ ビットが1のとき、対応するセグメントが点灯する 図3 7セグメントLEDのビット割り当て(PORT-B〜PORT-G)    この処理を行なって、分のけたを表示するアセンブラプログラムDS PMINを作成した。サブルーチンDECADJは、GR0の数値を2けたのB CDコードに変換して、10の位の値をGR2に1の位をGR3に代入するサ ブルーチンである。プログラム中の[ ]に入れる正しい答えを、 解答群の中から選べ。 〔プログラム〕 DSPMIN LD GR0,MIN ; GR0 = 分のけたの2進数値 CALL DECADJ ; GR2 = 10の位の値 GR3 = 1位の値 [ d ] ; GR0 = 形状データ OUTOUT 81 ; 10分の位の値の表示(PORT-B) [ e ] ; GR0 = 形状データ OUTOUT 82 ; 1分の位の値の表示(PORT-C) RET TABLE7 DC 238 ; 0の形状データ DC 72 ; 1の形状データ DC 214 ; 2の形状データ DC 218 ; 3の形状データ DC 120 ; 4の形状データ DC 186 ; 5の形状データ DC 190 ; 6の形状データ DC 200 ; 7の形状データ DC 254 ; 8の形状データ DC 248 ; 9の形状データ 解答群 ア LD GR0,TABLE7,GR2 イ LEA GR0,TABLE7,GR2 ウ LD GR0,0,GR2 エ LEA GR0,0,GR3 オ LD GR0,TABLE7,GR3 カ LEA GR0,TABLE7,GR3 キ LD GR1,0,GR2 ク LEA GR0,0,GR3 設問3 ストップウォッチのメインプログラムを作成した。スタックポイン タの設定等のシステムの初期化処理が終了した後、このプログラムが 起動される。スタート/ストップボタンは、時計の開始/停止を行な い、このボタンを押すとPORT-Aのbit14が0になる。クリアボタン はすべての数値を0にして時計を停止し、このボタンを押すとPORT- Aのbit15が0になる。プログラム中の[ ]に入れる正しい答 えを、解答群の中から選べ。 ここで、CLEARは、割り込み処理ルーチンが計数している分カウン タ、秒カウンタ、ミリ秒カウンタの値を0にするサブルーチン、DSPL AYは、それぞれのカウンタ値を7セグメントLEDに表示するサブルー チン、TAMERIは割り込み処理ルーチンの開始ラベルとし、ボタンス イッチのチャタリングは無視できるものとする。 〔プログラム〕 MAIN START LEA GR0,TIMERI ; 割り込み処理ルーチンのアドレス ST GR0,8 ; 割り込み0の割り込みベクタをセット LOOP1 LD GR1,MASKON ; GR = すべての割り込みをマスクするデータ STM GR1 ; インターバルタイマ割り込みをマスク CALL CLEAR ; 分、秒、ミリ秒カウンタを0に初期化 EI ; 割り込み可能 LOOP2 CALL DSPLAY ; 分、秒、ミリ秒の計数値を7セグメントLEDに表示 INPUT 80 ; ボタンポート読み込み [ f ] ; クリアボタンのビット値を抽出 JZE LOOP1 ; クリアボタンの押し下げならばLOOP1へ INPUT 80 ; ボタンポート読み込み [ g ] ; スタート/ストップボタンのビット値を抽出 JNZ LOOP2 ; 押されていなければLOOP2へ LOOP3 INPUT 80 ; ボタンポート読み込み [ g ] ; スタート/ストップボタンのビット値を抽出 JZE LOOP3 ; 押されていればLOOP3へ LDM GR1 ; 割り込みマスクレジスタ読み込み [ h ] ; 割り込み0マスクのビット値を反転 STM GR1 ; 割り込みマスクレジスタ書き込み JMP LOOP2 ; 無限ループの終了ポイント MASKON DC #FF00 ; すべての割り込み禁止のマスクデータ MASK0 DC #8000 ; 割り込み0の割り込みマスクビット BIT15 DC #0001 ; bit15の抽出用マスクデータ BIT14 DC #0002 ; bit14の抽出用マスクデータ END 解答群 ア OR GR1,MASK0 イ AND GR1,MASK0 ウ EOR GR1,MASK0 エ SLA GR1,1 オ AND GR0,BIT15 カ OR GR0,BIT15 キ EOR GR0,BIT15 ク AND GR0,BIT14 ケ OR GR0,BIT14 コ EOR GR0,BIT14
戻る