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言語らしいスマートな書き方があるのかも。・・・まいっか。
| 固定リンク | 0
「PICマイコン」カテゴリの記事
- ZK-80で足し算(2020.07.23)
- TK-80互換機 ZK-80のキット(2020.07.21)
- PICのお勉強(37) C言語編 12F683でA/D変換(2015.06.02)
- UVレジンでLEDイルミネーション (2)(2015.05.15)
- PICのお勉強(35) C言語編 PWMでサーボモータを動かす(2014.10.05)
コメント