■課題2(続き)■

■練習課題■

サンプルプログラムを参考に,次をC言語で書け.

  1. SW9(p8のbit2)を押下した時、トグルSW(p3)で設定した数値を変数valに保存 ただしSWをONしたとき(LCD方向に倒したとき)を1とする
  2. 1. で保存したデータをLED1〜LED8に表示。3.へ
  3. SW10(p8のbit3)を押下した時、トグルSW(p3)で設定した数値を読む(2回目の読み込み)。4.へ
  4. 3.で読み込んだ値を下位3ビットだけにマスクすること.(1から7までに制限すること) 5.へ
  5. 1.で保存した値を,4.で制限した値分だけ左論理シフトを行い,結果をLED1〜LED8に表示。1.に戻る

ヒント

動作チェック

ii)は次のように動作することを確認すること

一回目の入力 0000 0101
sw9押し
二回目の入力 1000 0100     ←「4」を指定
sw10押し
結果の表示   0101 0000     ← 4bitずれた
 

■必修課題■

次をC言語で書き直せ.

ヒント

動作チェック

iii)は次のように動作することを確認すること

一回目の入力 1010 0000
sw9押し
二回目の入力 1000 0100
sw10押し
結果の表示   1111 1010
 
  

■応用課題■

8ビットの入力データをBCD変換してLEDを点灯させよ.ただし0から99以外の数が入力された時には,エラーとしてフル点灯(11111111)させること.

ヒント

動作チェック

次の4つが動作すること

スイッチ入力 0000 0000  (0)
LED出力      0000 0000
スイッチ入力 0110 0011  (10進数「99」を2進数にしたもの)
LED出力      1001 1001   ←「9」「9」と読める
スイッチ入力 0010 0000  (10進数「32」を2進数にしたもの)
LED出力      0011 0010   ←「3」「2」と読める
スイッチ入力 1000 0000  (範囲外の数)
LED出力      1111 1111   ←エラーを示す表示

■締め切り■