« 7-4 課題4 スイッチの使い方 ~その1~ | メイン | 7-6 課題6 スイッチの使い方 ~その3~ »

はてなブックマークに追加   7-5 課題5 スイッチの使い方 ~その2~

課題4ののCソース・ファイルとHEXファイルはこちらです【LZH】


 課題4のタクト・スイッチでLEDが点灯しましたか? もう少し、スイッチを楽しみましょう。


■ 課題5

 タクト・スイッチを使った課題をもう一問考えましょう。
 タクト・スイッチを押している間は100ms間隔で四つのLEDを全部点滅、離すと500msで四つのLEDを点滅するという課題です。

TACTSW:ON→ ○○○○ ○○○●・○○○○ ○○○○:100ms間隔
TACTSW:OFF→○○○○ ○○○●・○○○○ ○○○○:500ms間隔

ex7-5.gif

// ex7-5.c
// PIC16F84A用

#include<16f84a.h> #fuses HS,NOWDT,NOPROTECT #use delay(clock=20000000) #define ON #define OFF 0

#byte RA=5 #byte RB=6 #bit IRSIG=RA.2 #bit TACTSW=RA.3 #bit DOWN_LED=RB.0 #bit UP_LED=RB.2 #bit RIGHT_LED=RB.1 #bit LEFT_LED=RB.3

void main() { int brink_time; set_tris_a(0x0c); set_tris_b(0x00) RB=0; while(1){ if(TACTSW==0){ ★★★★; } else{ ★★★★; } RB=0x0f; delay_ms(★★); RB=0x00; delay_ms(★★); }
}

■ ヒント1

  int brink_time;//点灯間隔を保存する変数

 整数型変数birnk_timeに点灯間隔をセットします。

■ ヒント2

    if(TACTSW==0){//スイッチが押されていたら100ms間隔
      ★★★★;
    }
    else{
      ★★★★;//押されていなければ500ms間隔
    }
    RB=0x0f;
    delay_ms(★★);
    RB=0x00;
    delay_ms(★★);
  }
}

 だんだんと星の数が増えてきました。brink_timeの使い方が鍵を握っています。パズルだと思って、楽しみながら考えてください。



長野県飯田工業高校 竹内浩一

トラックバック

このエントリーのトラックバックURL:
http://www.eleki-jack.com/mt/mt-tb.cgi/457

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

カレンダ

2008年11月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

おすすめ書籍

会社案内
情報セキュリティおよび個人情報の取り扱いについて

コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。
コメントはそれぞれ投稿した人のものです。

About

2007年10月15日 09:58に投稿されたエントリーのページです。

ひとつ前の投稿は「7-4 課題4 スイッチの使い方 ~その1~」です。

次の投稿は「7-6 課題6 スイッチの使い方 ~その3~」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 4.1