« 7-1 課題1 LEDの点滅 ~その1~ | メイン | 7-3 課題3 LEDの順次点灯 ~その3、シフト命令~ »

はてなブックマークに追加   7-2 課題2 LEDの点滅 ~その2~

 課題1は完成しましたか? プログラミングは作成し、実際に動かすことで理解が深まります。
 これ以降は、前回までに説明した部分は省略し、新たに出現した部分のみ、説明します。


第7章 課題1のCソースファイル、HEXファイルはこちらです【LZH】

■ 課題2

 四つのLEDを250ms間隔で順番に点灯するプログラムを作成しましょう。

○○○○ ○○○● ・・・DOWN_LED
○○○○ ○○●○ ・・・RIGHT_LED
○○○○ ○●○○ ・・・UP_LED
○○○○ ●○○○ ・・・LEFT_LED

 ルーレットのように、250ms間隔でPIC赤外線受信ボードのRB0LED(下)から左回りで一つずつ順番に点灯・消灯します

ex7-2.gif

// ex7-2.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() { RB=0; set_tris_a(0x0c); set_tris_b(0x00); while(1){ DOWN_LED=ON; delay_ms(250); DOWN_LED=OFF; delay_ms(250); RIGHT_LED=ON; delay_ms(250); RIGHT_LED=OFF delay_ms(250);

//これ以後を考えてください。

}
}

■ ヒント

#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

 RB0のビット0から3までを、DOWN_LED~LEFT_LEDという名前で使えるように定義します。これでRB.0をDOWN_LEDという名前で使えるようになります。

 LED1を点灯するには次のようにします。

      DOWN_LED=ON;

消灯するには、

      DOWN_LED=OFF;

とします。UP_LEDとLEFT_LEDの処理を追加すればぐるぐると回るようになります。

 ぐるぐると回るLEDを眺めているのも楽しいですね。



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

トラックバック

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

コメントを投稿

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

カレンダ

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月 4日 08:23に投稿されたエントリーのページです。

ひとつ前の投稿は「7-1 課題1 LEDの点滅 ~その1~」です。

次の投稿は「7-3 課題3 LEDの順次点灯 ~その3、シフト命令~」です。

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

Powered by
Movable Type 4.1