HOME >> LED電子工作集 > PICマイコンとC言語の勉強 P-5 7セグメントLEDを使う
■ はじめに
今、PICマイコンとC言語の勉強に挑戦している。 そのいきさつは、鉄道模型工作実験室 の別室ブログ 「レイアウトに速度計を設置しよう」 ( 2019/2/22 )にて紹介しているので参照ください。
学習の第2ステップとして、測定データを表示させるための7セグメントLEDと、新しくPIC16F1827 マイコンの取り扱い方を学ぶことにする。
■ 7セグメントLEDとPIC16F1827
スケールスピードを表示するために、3桁の表示装置として7セグメントLEDを使用する。 選択したのは、パラライト社製のカソードコモンである C-533SR-A G/W である。 そして、これに合わせて、18ピンのPICマイコンを選定した。 セグメント表示のためのピンは11本であるが、ドットを使わない場合は10本を使用することになる。 このため、少し余裕をもって18ピンとし、PIC16F1827 のマイコンを選択した。
/************************************ * 7segLED Test 1 * 2019/2/28 * PIC16F1827 MPLAB X XC8 *************************************/ #include#define _XTAL_FREQ 8000000 // CONFIG1 #pragma config FOSC = INTOSC #pragma config WDTE = OFF #pragma config PWRTE = OFF #pragma config MCLRE = ON #pragma config CP = OFF #pragma config CPD = OFF #pragma config BOREN = ON #pragma config CLKOUTEN = OFF #pragma config IESO = ON #pragma config FCMEN = OFF // CONFIG2 #pragma config WRT = OFF #pragma config PLLEN = ON #pragma config STVREN = OFF #pragma config BORV = LO #pragma config LVP = OFF void main() { OSCCON = 0b01110010; ANSELA = 0b00000000; ANSELB = 0b00000000; TRISA = 0b00000000; TRISB = 0b00000000; PORTA = 0b00000000; PORTB = 0b00000000; while(1) { PORTA = 0x10; //Aセグメントを点灯 __delay_ms(300); PORTA = 0x40; //Bセグメントを点灯 __delay_ms(300); PORTA = 0x02; //Cセグメントを点灯 __delay_ms(300); PORTA = 0x04; //Dセグメントを点灯 __delay_ms(300); PORTA = 0x08; //Eセグメントを点灯 __delay_ms(300); PORTA = 0x01; //Gセグメントを点灯 __delay_ms(300); PORTA = 0x80; //Fセグメントを点灯 __delay_ms(300); } }
入手した機器を下に示す。
■ 回路構成
新しく取り組む PIC16F1827 マイコンと7セグLEDの学習のために、簡単な回路を構成した。 ブレッドボードに組み付けた状態を下に示す。
マイコンとLEDの間の配線は、実際にユニバーサル基板へ組み付ける場合を想定して検討した結果、下記の様な配線とした。 さらに、一つの数字を表示するには、A〜Gまでの指定が必要となるが、16進数でまとめて指定できるように PORTA にまとめている。 今回の表示桁の設定は、手始めに、手動でGNDに接続して表示する桁を選択するようにした。 まずは、スタティック制御でトライしてみよう。
プログラムは、7セグメントLEDの各セグメントを一つずつ表示させるようにしている。 なんだ!と思われるかも知れないが、初めて取り扱う PIC16F1827 マイコンに対して自信がなかったからである。
PICマイコンは型番が異なるとまず一から学習しろ! ・・・・・・・・・・との格言(?)を信じているからである。
コンフィグの設定など、石毎に異なっているため、最初にウロウロするのはこのとっかかりの部分なのだ。 なお、点灯させるセグメントの指定は、そのポート位置を16進数に換算し、PORTA にまとめて出力している。
■ 動作状態
でも、今回は拍子抜けするほど簡単に動いてしまった。 一度もエラーが出なかったのだ!
電源は、5ボルトのACアダプタを使い、PICkit3も回路に特設接続している。 上記の回路図の小さな丸印の三つのポートと電源およびGNDに接続した状態でマイコンに書き込みを実施した。
動作状態を動画で紹介します。
電源は5ボルトのACアダプタから供給しています。