« PICのお勉強(15)C言語編 10個のLED点滅 | トップページ | PICのお勉強(17) C言語編 ビットシフトでLEDの順送り点灯 »

2012年5月28日 (月)

PICのお勉強(16) C言語編 スイッチでLEDの点滅

 RA0のスイッチでRA2,RA3のLEDを点灯・消灯させてみました。
ソースは,コレ → lesson16.c

/************************************
16F84A HI-TECH C v.9.83
RA0のスイッチでRA2,RA3のLED点灯・消灯
************************************/
#define _LEGACY_HEADERS
#include "PIC.h"
#define _XTAL_FREQ 20000000 //20MHz

__CONFIG(HS & WDTDIS & PWRTDIS & UNPROTECT);

main(void){

TRISA = 0b00011;          //RA0とRA1は入力に設定する
PORTA = 0b00000;         //はじめはLEDを消灯しておく

while(1){
while(RA0 == 1){   //RA0のスイッチがOFFの間は何もしない
NOP();
}
RA2 = 0;  //RA2は消灯
RA3 = 1;  //RA3を点灯
while(RA0 == 0){  //RA0のスイッチがONの間は何もしない
NOP();
}
__delay_ms(20); //チャタリング対策

while(RA0 == 1){  //RA0のスイッチがOFFの間は何もしない
NOP();
}
RA2 = 1;
RA3 = 0;
while(RA0 == 0){  //RA0のスイッチがONの間は何もしない
NOP();
}
__delay_ms(20);    //チャタリング対策

}
}

 ちょっとアセンブラくさいやり方かもしれないなあ。
もっとC言語らしいスマートな書き方があるのかも。・・・まいっか。

| |

« PICのお勉強(15)C言語編 10個のLED点滅 | トップページ | PICのお勉強(17) C言語編 ビットシフトでLEDの順送り点灯 »

PICマイコン」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: PICのお勉強(16) C言語編 スイッチでLEDの点滅:

« PICのお勉強(15)C言語編 10個のLED点滅 | トップページ | PICのお勉強(17) C言語編 ビットシフトでLEDの順送り点灯 »