2010年10月13日水曜日

電子サイコロなどのプログラム

先日のものづくり市出店品の紹介の最後に、マイコンのプログラムを簡単に紹介しておきます。

マイコンのプログラムがどういうものか、というお話をまじめにすると長くなるので、それはさておき、プログラムとはどんなものか、どんなことが書いてあるのか、という雰囲気を見てもらおうと思います。
私はMikroElektronika社のMikroC PRO for PICというマイコンプログラム開発用ソフトを使ってプログラムを作成しました。プログラム言語としてはC言語というものになります。

電子サイコロのプログラムの主要部分です。

 void dice(void)
{
    unsigned char i, j;
    unsigned char tt;

    while(1)    // 以下をずっと繰り返す
    {
        while(SW);       // スイッチが押されるまで待つ
        Delay_ms(10);  // 10ミリ秒待つ
        while(!SW);      // スイッチが話されるまで待つ
        for(i=0; i<10; i++)    // 以下を10回繰り返す
        {
            for(j=0; j<4; j++)    // 以下を4回繰り返す
            {
                PORTC = TMR0;    //  LEDをでたらめに光らせる
                Delay_100ms();      //   100ミリ秒待つ
            }    // ここまでを4回繰り返す
        }    // ここまでを10回繰り返す
        tt = TMR0 % 6;      //  1~6のでたらめな数を作る
        PORTC = dice6[tt];  // その数をLEDで表示する
    }    // 一番最初の繰り返しに戻る
}

ところどころにある//という記号は、その行のそれより後ろはコメントです、という印でです。プログラムには関係なくて、人にわかりやすいように説明などが書いてあります。//より前の英語のような単語や、式や記号がプログラムです。ほとんどの行にコメントを書いておきましたので、なんとなくどんな動きをしているかわかってもらえるのではないでしょうか?実際にはこれだけではちゃんと動作しなくて、初期設定のようなことなど、もう少し長いプログラムになっています。
サイコロではでたらめな数を作ることが必要になりますが、このプログラムではマイコンの持っているタイマーの機能を使っています。

プログラム全体のファイルをこちらにおいておきます。
マイコンのプログラムのダウンロード
この中に、あとの2つ、電子ルーレットと自分でオルゴールのプログラムも入っています。実は3つのプログラムは、全部まとめて1つのプログラムの形にしてマイコンに書き込むようにしています。そして、電源が入ったときの配線の状態を調べて、3つのプログラムのうちの適切な1つのプログラムが走る仕組みにしてあります。ですので、このプログラムを書き込んだマイコン1つで、3つともの回路に共通に使うことができます。
もし、必要な部品と、PICマイコン用のプログラム書き込み器をお持ちの方は、このファイルをダウンロードして、解凍し、その中のmonodukuri1.hexというファイルをマイコンに書き込むと、動作するはずです。

11月5日追記
プログラムのファイルに誤りがありました。コンフィグレーション・ワードの設定が間違っていて、この中のhexファイルをマイコンに書き込んでも正しく動作しませんでした。
修正したファイルに置き換えました。既に何人かの方がダウンロードしていただいていたようですが、申し訳ございませんが、もう一度、正しいファイルをダウンロードしなおしてください。

 11月6日追記
昨日アップロードしたファイルも間違っていました(次回の作品用のファイルでした)。正しいファイルに置き直しました。すみません。

0 件のコメント:

コメントを投稿