HOME  >>  LED電子工作集 > PICマイコンとC言語の勉強  P-3 Lチカ 回転点灯

PICマイコンとC言語の勉強  P-3 Lチカ 回転点灯

■ はじめに

 今、PICマイコンとC言語の勉強に挑戦している。 そのいきさつは、鉄道模型工作実験室 の別室ブログ 「レイアウトに速度計を設置しよう」 ( 2019/2/22 )にて紹介しているので参照ください。

 その第一歩として、Lチカから勉強を始めたので忘備録として記録しておこう。 今回は回転点灯作動だ。

/***************************************************
 *   PIC-Lesson その3
 *          2019/2/23
 *          PIC12F683、 MPLAB X 、XC8 
 **************************************************/

 ( 途中省略 )

 void main() {

    OSCCON = 0x70;
    ANSEL = 0x00;
    CMCON0 = 0x07;
    TRISIO = 0x28;

    while (1) {
        GPIO = 0x01;
        __delay_ms(300);
        GPIO = 0x02;
        __delay_ms(300);
        GPIO = 0x04;
        __delay_ms(300);
        GPIO = 0x10;
        __delay_ms(300);
        GPIO = 0x20;
        __delay_ms(300);
    }
 }

 

■ P-3 Lチカ 回転点灯

 参考にした回路とプログラムは、今回もマツルのWEBサイトの資料・技術情報 サイトの中の、「初めてのPICマイコン」です。

 回路はLEDを増やしています。

 プログラムを右に示す。 マルツさんのプログラムでは、多くのLEDを一括して簡単に制御している記述が紹介されています。 それは、

     GPIO = 0x04 ;

の例のように、GPIOレジスタの各ビットを一括して指定する方法です。 LED個別に点灯を指示する場合には、

     GPIO2 = 1 ;  あるいは、 GP2 = 1 ;

のように、レジスタのビットを指定して0か1を設定するのですが、上記の様に一括して指定する方法も有ることを勉強しました。 どのビットを点灯させるのかを決め、それを1または0の2進数として表します。 そしてこれを16進数にして指定しているのです。 勿論2進数のままでもOKの様です。

 また、個別のビットを指定する GPIO2 = 1 ; あるいは、GP2 = 1 ; の記述ですが、小生の場合、 GPIO2 = 1ではエラーとなってしまったので、GP2 = 1 の記述を使いました。 先回の報告を参照。 参考にしている書籍類でも、両方の記述がありますね。 しかし、一括指定の場合は GPIO にする必要がありました。 理解出来たようでも有り、混乱したままでもあります。 超初心者には、まだウロウロの状態ですね。

■ 動作状態

 動作状態を動画で紹介します。

 電源は5ボルトのACアダプタから供給しています。