この文書では,PIC16F1936に繋がっているLEDの点灯方法を説明します.今回は下図のように3個のLED(LD2,LD3,LD4)がPICの11番ピン,10番ピン,9番ピンに接続されているものとします.カソード側がPICとつながっているため,PICからLowを出力すればLEDは光ります.

PICLED01


はじめに,MPLABのプロジェクトを作成しましょう.プロジェクトの作成はこちらで説明していますので参考にしてください.

  1. 動作周波数の設定
    内部オシレータを動作周波数として使用するとき,PIC16F1936では周波数選択ビットIRCFにより,16[MHz]から31[kHz]までの周波数を選ぶことができます.今回,4[MHz]にするときには,IRCF=1101にすればよいです.従って,C言語では次のように書けばよいです.
    /* 内部オシレータの速度を4[MHz]とする */
    IRCF0 = 1;
    IRCF1 = 0;
    IRCF2 = 1;
    IRCF3 = 1;

  2. LCD制御機能を停止
    今回制御の対象となる9番ピンから11番ピンのうち,9と10番ピンはLCDの制御を行う端子として使用できる機能を有しています.そこで汎用ピンとして使用するため,LCDの制御を行う機能を停止させる必要があります.従って,C言語では次のように書けばよいです.
    /* LCD を制御しないようにする */
    LCDEN = 0;

  3. 出力端子の設定
    出力端子にするには,TRISxy=1にすればよいです.ここで,xはポートのグループ名を表しており,PIC16F1936の場合にはA,B,C,Eのいずれかになります.また,yはポートの番号を表しており,0から7までの数字が入ります.各端子のポートグループおよび番号が何なのか調べるには,上記回路図を参照してください.例えば,9番ピンには下図のように「RA7」と書いてあります.つまり,9番ピンはグループ名A,番号7です.
    PICLED02

    このピンを出力にするには次のプログラムを追記してください.
    /* RA7を出力端子とする */
    TRISA7=0;

  4. Lowを出力
    端子からLowを出力するにはLATxy=0,Highを出力するにはLATxy=1とします.このxyは前章に示したものと同じで,xはグループ名,yは番号を表しています.今回,9番ピンつまりRA7からLowを出力するには,次のプログラムを追記してください.
    /* RA7からLowを出力する */
    LATA7 = 0;
JSN Teki is designed by JoomlaShine.com