« 7-3 課題3 LEDの順次点灯 ~その3、シフト命令~ | メイン | 7-5 課題5 スイッチの使い方 ~その2~ »

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

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


■ 課題4

 タクト・スイッチを押すとDOWN_LEDが点灯するプログラムを作成しましょう。


TACTSW:ON→○○○○ ○○○●

7-4.gif

// ex7-4.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()
{
set_tris_a(0x0c);
set_tris_b(0x00);
RB=0;
while(1){
if(TACTSW==0){
DOWN_LED=★★;
}
else{
DOWN_LED=★★;
}
}
}

■ if文

 if()の中が成立するかどうかで実行する内容を変えることができる命令を、if文といいます。

if(ここが成立する=1のとき、(1)を実行){
(1) 実行文;
}
else{成立しなかったとき(2)を実行
(2) 実行文;
}

■ タクト・スイッチ入力の考え方

 スライド式、押しボタン式、トグル式など、様々なスイッチが市販されていますが、ここでは押しボタン式のタクト・スイッチを採用しました。このタクト・スイッチは押している間だけ接点が導通して、電気が流れるタイプのスイッチです。

 余談ですが、電子部品の基礎知識「教えてヨーゴくん」によると、タクティール(触感・手触り)フィードバック・プッシュ・スイッチ の略称だそうです。

 スイッチを押すと1が出力されるというのが普通の考え方ですが、PIC赤外線受信ボードでは押していない間はスイッチは常に「1」を出力し、押されたときだけ「0」を出力します。つまりスイッチは1と0の2種類の出力があるということになります。PICから見ると1,0を入力します。この2種類の入力をif文を使って、LEDを点灯させると次のようになります。

  while(1){
if(TACTSW==0){//タクトスイッチは押されると0になる
★★;//DOWN_LEDの点灯
}
else{//押されていないときの処理
★★;DOWN_LEDの消灯
}
}

 課題通りにLEDを点灯するには★に何を入れればよいかを考えてください。



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

トラックバック

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

コメントを投稿

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

カレンダ

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

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

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

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

Powered by
Movable Type 4.1