/************************************************************* * Blink_LED.c(Lチカテスト) * * PIC18F14K50 * Vdd= 5.0Vで使用 * * 書込み器: PICkit2使用 * 2015/2/9 N.Ishii ***************************************************************/ #include #include #pragma config FOSC = IRC, PLLEN = ON, FCMEN = OFF #pragma config IESO = OFF, USBDIV = OFF, CPUDIV = NOCLKDIV #pragma config PWRTEN = OFF, BOREN = OFF, WDTEN = OFF #pragma config HFOFST = OFF, MCLRE = OFF #pragma config STVREN = ON, BBSIZ = OFF, LVP = OFF #pragma config XINST = OFF #pragma config CP0 = OFF, CP1 = OFF, CPB = OFF #pragma config WRT0 = OFF, WRT1 = OFF, WRTB = OFF, WRTC = OFF #pragma config EBTR0 = OFF, EBTR1 = OFF, EBTRB = OFF #define LED LATCbits.LATC2 #define SW PORTBbits.RB7 /// システム初期化関数 void init(void) { OSCCON= 0b01100110; // 内蔵発振器8MHzを設定 UCONbits.USBEN = 0 ; // USBは使用しない /// この実験では、RE未使用なので、アナログ入力と併用の、RB4,5に該当する /// ANSELxビットを'0'にリセットする必要はないが、汎用的な意味でやっておく。 ANSELHbits.ANS10 = 0; // RB4 digital input ANSELHbits.ANS11 = 0; // RB5 digital input TRISC= 0; // RC is Output TRISB= 0b11110000; // RB4-7 is Input /// 内部プルアップ設定 INTCON2bits.RABPU = 0; // プルアップ許可(これが無いとプルアップされない) WPUB = 0b11110000; // RB4-7 is Pull-Up LATC= 0; // LED 消灯 } void main(void) { init(); while(1) { if(SW == 0){ // 200mS間隔で、LEDを点滅させる LED= 1; Delay10KTCYx(40); LED= 0; Delay10KTCYx(40); } } }