<PICによるLEDナイトライダー>

LED6個を順番に滅させることにより、流れるように見えます。
昔、ナイトライダーと言う外国TV番組がありよく見ていました。
番組に出てくる車が人工頭脳を搭載していてバンパーに取り付けている
電球が流れるように点滅していました。
プログラムにより、色々変えることが出来ます。画像をクリックして見て下さい。
タクトスイッチの最左は右から左へ、真中は左から右へ、最右は、停止します。


回路図



 HEXファイル
------------------- プログラムソース ------------------- #include <htc.h> __CONFIG(FCMDIS & IESODIS & BOREN & UNPROTECT & MCLRDIS & PWRTEN & WDTDIS & INTIO); __IDLOC(0001); //下記2行はペアで使う   #define _XTAL_FREQ 500000 /* 500kHz */ #define JIKAN 200 /* 200 */ ioport(); funrc0(); funrc1(); funrc2(); funrc3(); funrc4(); funrc5(); rledfun(); lledfun(); int flug1=0; int flug2=0; main() { ioport(); //内部発振をCONFIGで使うように設定している(INTIOを記述) //周波数は下記OSCCONで500Khzに設定 OSCCON=0X30; /* 500kHz */ while(1){ if(RA5==0){ flug1=1; flug2=0; } if(RA5==1 && flug1==1) rledfun(); if(RA4==0){ flug1=0; flug2=1; } if(RA4==1 && flug2==1) lledfun(); if(RA3==0){ flug1=0; flug2=0; } }//while }//main rledfun() { funrc0(); funrc1(); funrc2(); funrc3(); funrc4(); funrc5(); } lledfun() { funrc5(); funrc4(); funrc3(); funrc2(); funrc1(); funrc0(); } ioport() { ANSEL=0x0; /* AN4-7はデジタルI/Oモード */ CMCON0=0x07; TRISA=0xFF; /* RA0,1,2,3,4,5は入力ピン*/ TRISC=0x00; /* RC0-5は出力ピン */ PORTA=0xFF; /* RA0,1,2,3,4,5はH*/ PORTC=0x00; /* RC0-5はL */ } funrc0() { RC5=1; /* RC0ピンをHにする */ __delay_ms(JIKAN); /* JIKANミリ秒待つ */ RC5=0; /* RC0ピンをLにする */ __delay_ms(JIKAN); /* JIKANミリ秒待つ */ } funrc1() { RC4=1; /* RC0ピンをHにする */ __delay_ms(JIKAN); /* JIKANミリ秒待つ */ RC4=0; /* RC0ピンをLにする */ __delay_ms(JIKAN); /* JIKANミリ秒待つ */ } funrc2() { RC3=1; /* RC0ピンをHにする */ __delay_ms(JIKAN); /* JIKANミリ秒待つ */ RC3=0; /* RC0ピンをLにする */ __delay_ms(JIKAN); /* JIKANミリ秒待つ */ } funrc3() { RC2=1; /* RC0ピンをHにする */ __delay_ms(JIKAN); /* JIKANミリ秒待つ */ RC2=0; /* RC0ピンをLにする */ __delay_ms(JIKAN); /* JIKANミリ秒待つ */ } funrc4() { RC1=1; /* RC0ピンをHにする */ __delay_ms(JIKAN); /* JIKANミリ秒待つ */ RC1=0; /* RC0ピンをLにする */ __delay_ms(JIKAN); /* JIKANミリ秒待つ */ } funrc5() { RC0=1; /* RC0ピンをHにする */ __delay_ms(JIKAN); /* JIKANミリ秒待つ */ RC0=0; /* RC0ピンをLにする */ __delay_ms(JIKAN); /* JIKANミリ秒待つ */ } ------------------- プログラムソース END-------------------