PICマイコン(12F683)でLチカをやってみた
最近はPICマイコンの勉強に専念しています。勉強のために本を3冊も買いましたよ!大学生の私にとっては痛い出費です(⌒-⌒; ) でも全然後悔はしていません。将来に役に立つことだと確信していますからね( ´ ▽ ` )ノ
私はまだPICマイコンの初心者です。なので、まずはLチカからやってみようと思います!
目次
スポンサーリンク
使用するもの
箇条書きで使うものを書いておきます。
- PICマイコン(12F683)
- pickit3
- ライターのアダプタ
- ブレッドボード
- コンデンサ
- LED
- 単三電池
- バッテリーボックス
- ジャンパ線
(数量は省略しています)
LEDを3秒ごとに点滅させてみた
とりあえず、LEDを3秒ごとに点滅させてみました。
ソースプログラム
書き込むソースプログラムは下記のものです。
#include <xc.h> #pragma config FOSC = INTOSCIO #pragma config WDTE = OFF #pragma config PWRTE = ON #pragma config MCLRE = OFF #pragma config CP = OFF #pragma config CPD = OFF #pragma config BOREN = OFF #pragma config IESO = OFF #pragma config FCMEN = OFF #define _XTAL_FREQ 4000000 int main(void) { OSCCON=0b01101000; ANSEL=0b00000000; TRISIO=0b00000000; while(1) { GPIO=0b00000000; __delay_ms(3000); GPIO=0b00000001; __delay_ms(3000); } return(0); }
簡単なため、ソースの説明は省略します。
回路
回路図をアップするのは面倒なので、そのまま画像をアップしちゃいます(^O^)/
@回路
バイパスコンデンサ(パスコン)はあったほうが良いらしいので挟みました。
いたってシンプルな回路です。
結果
@点滅
成功です(^O^)/
3秒ごとに点滅しました( ´ ▽ ` )ノ
LEDを5個使って流れるように点滅させてみた
次はLEDを5個使って流れるように点滅させてみました。
言葉だけだと分からないと思います。なので、画像を使って説明します。
@説明
LEDが横1列に並んでいます。これを右から左に順次点滅させて1番左に到達したら今度は左から右に順次点滅させていきます。
文字で説明すると下記みたいな感じです。◯が消えていて●が光っている状態です。
◯◯◯◯●
◯◯◯●◯
◯◯●◯◯
◯●◯◯◯
●◯◯◯◯
◯●◯◯◯
◯◯●◯◯
◯◯◯●◯
◯◯◯◯●
(以下ループ)
ソースプログラム
#include <xc.h> #pragma config FOSC = INTOSCIO #pragma config WDTE = OFF #pragma config PWRTE = ON #pragma config MCLRE = OFF #pragma config CP = OFF #pragma config CPD = OFF #pragma config BOREN = OFF #pragma config IESO = OFF #pragma config FCMEN = OFF #define _XTAL_FREQ 4000000 int main(void) { OSCCON=0b01101000; ANSEL=0b00000000; TRISIO=0b00000000; while(1) { //LED0 GPIO = 0b11111110; __delay_ms(120); //LED1 GPIO = 0b11111101; __delay_ms(80); //LED2 GPIO = 0b11111011; __delay_ms(80); //LED4 GPIO = 0b11101111; __delay_ms(80); //LED5 GPIO = 0b11011111; __delay_ms(80); //LED4 GPIO = 0b11101111; __delay_ms(80); //LED2 GPIO = 0b11111011; __delay_ms(80); //LED1 GPIO = 0b11111101; __delay_ms(120); } return(0); }
両端のLEDだけ120ミリ秒光らせて、その他のLEDは80ミリ秒光らせます。色々と実験してみた結果、これが1番見た目が良いです。
回路
これも回路図をアップするのが面倒なので、同様に画像をアップします。
@回路
ジャンパ線が多くて複雑ですね。それも全部写ってないですし(^_^;)
回路はLEDがそれぞれのピンに接続されている感じです。
結果
@結果
成功です(^O^)/
右から左、左から右にLEDが点滅します( ´ ▽ ` )ノ
今日はこんなところです。
ノシ
PS
C言語ではなくアセンブリ言語で書いたソースプログラムも近いうちに貼りたいと思います。
スポンサーリンク
関連記事