TOP>MPLAB XC8編(PIC12F675)> (02)LEDを点滅させる(PIC12F675 XC8)
LEDを点滅させる
(PIC12F675 XC8)
更新日2012.5.20
|
作成日2008.10.5
|
どのPICでも最初はいつもLEDの点滅実験から開始します。(簡単で動作が目に見えるので)
今回は0.5秒毎にLEDを点滅させるもので、待ち時間はプログラムのループにより作ります。
実験回路
|
・ |
|
|
今回の実験回路です。
クロックは内部クロックを使い4MHz動作としました。
LEDと直列の抵抗は、300〜800Ω程度の範囲であれば明るさが変わるだけで点灯は確認できます。
-
-
- ブレッドボードに組んだ状態
-
| | 右下の6ピンヘッダ周りは、回路図には有りませんがICSP(In-Circuit Serial Programming)用です。秋月のPICライタなどを使う場合は不要です。
|
|
プログラム
|
|
プログラムの各ブロックで行っている処理は以下通りです。
- main
- PICの初期化(pic_init)を行った後、0.5秒毎にGPIO4,5を点滅させます。
0.5秒の時間は、1ミリ秒待ちサブルーチン(Delay_ms)に250(待ち時間:ミリ秒)を渡して2回呼び出す事で待ちます。
- pic_init
- PICの初期化処理を行います。
使わないコンパレータとA/D変換を無効にして、GPIO4,5を出力に設定します。
- Delay_ms
- 引数で渡された数だけ1ミリ秒待ち関数を呼び出します。
mainでは、250をセットして呼び出していますので、250ミリ秒待つ事になります。
- Delay_1ms
- 1ミリ秒待ち関数です。
1ミリ秒の時間は、プログラムを一定回数ループさせる事で作ります。
- <注意事項>
-
PIC12F675は、リセット時にコンパレータとA/D変換機能が有効になっています。
このままでは、各ピンをデジタル入出力として使えませんので、初期処理で以下の設定を行っておきます。
-
CMCON = 0x07; | // コンパレータ未使用
| ANSEL = 0x00; | // AN未使用
|
|