<HOME>

PICマイコン体験談

●1回目 めざめ

 むかーしむかし、電子工作のキットを購入して部品をくっつけて遊んでた男がいたそうな。
 その男、ふらりと日本橋にいくと展示物を眺めていたそうな。その中に、ダイオードを光らしたりしているのを見ていますと、なんか癒されてしまいました。
 そんな制御にマイコンを使っていることを知りました。

 へんな導入ですみません。
 マイコンといえば・・・。ということで、学生時代の実験の教科書を押入れからだしました。ワンボードマイコンのTK85というので、サイコロ、オルガンとかの実験をしていました。うーんなんとなく思い出してきたような・・・。 

 そんでもって、マイコンの入門に関することを検索サイトで、探していますと、
 秋月さんのPICプログラマーキットをよくみかけます。
 で、PICプログラマーキットを購入使用と決心していました。
 が、大阪の日本橋でシリコンハウスのPICマイコン実験セット(学習キット) を目にして衝動買いしました。こちらの方は、書き込める石の種類が少ないようです。

 PICに関する情報
 ・マイクロチップ
 ・マイクロチップ・テクノロジー・ジャパン株式会社

●2回目 組み立て

 説明書をもとにして、基板に部品をつけて半田付けしていきます。
 コンデンサなどの足の向き注意して・・・
 写真1は私の半田の腕前です。

写真1

●3回目 プログラムの開発環境の準備

 説明書をもとにしてソフトをパソコンにインストールします。

●4回目 サンプルプログラムにチャレンジ

 セットについていたサンプルのプログラムを入力します。コンパイルなどをして石に書き込みます。LEDなどをRB0とG間に入れて動作テストにチャレンジした結果が

  ファイルが大きいので省略。

 

●5回目 こんにちは ちょっと寝不足気味です。

 LEDなどをRB0とG間に入れて

 下のプログラムをコンパイルして石に書き込むとどうなるでしょう。
 このページ参考にして、光らせたのですがこれでいいのでしょうか? 文字間ってこんな感じでいいのかな?

 __CONFIGの値の意味はまだよくわかりません。説明書の通りです。
 TRISB=0x00; はRB07を出力で使う。
 PORTB=0b00000001;はRB0を点灯させる。

#include <pic.h>
__CONFIG(0x3FF2);
int count=0;

void wait(long t)
{
    long i;
    i=1;
    t=38*t;
    while(i<t){
        i++;
     }
}


void main(void)
{
    TRISA=0xFF;
    TRISB=0x00;

    while(1){
        PORTB=0b00000001;
        wait(500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000001;
        wait(500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000001;
        wait(500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000001;
        wait(500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000000;
        wait(3000);
        PORTB=0b00000001;
        wait(500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000000;
        wait(3000);

        PORTB=0b00000001;
        wait(500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000001;
        wait(1500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000001;
        wait(500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000001;
        wait(500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000000;
        wait(3000);

        PORTB=0b00000001;
        wait(500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000001;
        wait(1500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000001;
        wait(500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000001;
        wait(500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000000;
        wait(3000);

        PORTB=0b00000001;
        wait(1500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000001;
        wait(1500);
        PORTB=0b00000000;
        wait(500);
        PORTB=0b00000001;
        wait(1500);
        PORTB=0b00000000;
        wait(500);

        PORTB=0b00000000;
        wait(6000);
    }
}