--------------------------------------------------------------------- #include <xc.h> #define _XTAL_FREQ 4000000 // delay用に必要(クロック4MHzを指定) // コンフィギュレーション1の設定 #pragma config FOSC = INTOSC // 内部クロック使用する(INTOSC) #pragma config WDTE = OFF // ウオッチドッグタイマー無し(OFF) #pragma config PWRTE = ON // 電源ONから64ms後にプログラムを開始する(ON) #pragma config MCLRE = OFF // 外部リセット信号は使用せずにデジタル入力(RA3)ピンとする(OFF) #pragma config CP = OFF // プログラムメモリーを保護しない(OFF) #pragma config CPD = OFF // データメモリーを保護しない(OFF) #pragma config BOREN = ON // 電源電圧降下常時監視機能ON(ON) #pragma config CLKOUTEN = OFF // CLKOUTピンをRA4ピンで使用する(OFF) #pragma config IESO = OFF // 外部・内部クロックの切替えでの起動はなし(OFF) #pragma config FCMEN = OFF // 外部クロック監視しない(OFF) // コンフィギュレーション2の設定 #pragma config WRT = OFF // Flashメモリーを保護しない(OFF) #pragma config PLLEN = OFF // 動作クロックを32MHzでは動作させない(OFF) #pragma config STVREN = ON // スタックがオーバフローやアンダーフローしたらリセットをする(ON) #pragma config BORV = HI // 電源電圧降下常時監視電圧(2.5V)設定(HI) #pragma config LVP = OFF // 低電圧プログラミング機能使用しない(OFF) // 指定した時間(numx10ms)だけウエイトを行う処理関数 void Wait(unsigned int num) { int i ; // numで指定した回数だけ繰り返す for (i=0 ; i<num ; i++) { __delay_ms(10) ; // 10msプログラムの一時停止 } } // メインの処理関数 void main() { OSCCON = 0b01101010 ; // 内部クロックは4MHzとする ANSELA = 0b00000000 ; // アナログは使用しない(すべてデジタルI/Oに割当てる) TRISA = 0b00001000 ; // ピンは全て出力に割当てる(RA3は入力のみとなる) PORTA = 0b00000000 ; // 出力ピンの初期化(全てLOWにする) // 約1s毎にLEDの点滅を繰り返す while(1) { RA2 = 1 ; // 5番ピン(RA2)にHIGH(5V)を出力する(LED ON) Wait(100) ; // 1秒ウエイト RA2 = 0 ; // 5番ピン(RA2)にLOW(0V)を出力する(LED OFF) Wait(100) ; } } ---------------------------------------------------------------------CコンパイルとPIC書き込みを実行して下さい。
ピン番号 | 7 | 6 | 5 | 4 | 3 | 2 |
ピンの名前 | RA0 | RA1 | RA2 | RA3 | RA4 | RA5 |
MPLAB X用に記事変更(*1) 2015/10/02
【きむ茶工房ガレージハウス】
Copyright (C) 2006-2015 Shigehiro Kimura All Rights Reserved.