MPLAB X IDE v3.05 XC8 12F675 スイッチ2個 LED2個 各スイッチONで各LED点灯 |
// ***************************************************************************** // < コンパイラ MPLAB X XC8 > 怪答PIC 2015/07/06 // // スイッチ2個 LED2個 SW1⇒LED1 SW2⇒LED2 各スイッチONで各LED点灯 (^^; // ***************************************************************************** #include <pic.h> // 内部クロック4MHz使用する(INTIO) // ウオッチドックタイマ無し(WDTE_OFF) // 電源ONから64ms後にプログラムを開始(PWRTE_ON) // 4番目のピン(RA3)をデジタル入力に設定(MCLRE_OFF) // __CONFIG(FOSC_INTRCIO & WDTE_OFF & PWRTE_ON & MCLRE_OFF); // CONFIG #pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = ON // Power-Up Timer Enable bit (PWRT enabled) #pragma config MCLRE = OFF // GP3/MCLR pin function select (GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD) #pragma config BOREN = ON // Brown-out Detect Enable bit (BOD enabled) #pragma config CP = OFF // Code Protection bit (Program Memory code protection is disabled) #pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled) // ***************************************************************************** // -- ピン説明 -- // 1 電源+ 電源 プラス // 2 GPIO5 入出力 // 3 GPIO4 入力 // 4 GPIO3 入出力 // 5 GPIO2 入出力 // 6 GPIO1 入出力 // 7 GPIO0 入出力 // 8 電源 - 電源 マイナス // ***************************************************************************** // ***************************************************************************** // --入出力設定-- 2ピン 3ピン 4ピン 5ピン 6ピン 7ピン // -- TRISIO -- GP5 GP4 GP3 GP2 GP1 GP0 // -- TRISIO -- 0 0 1 1 0 0 0 0 // ***************************************************************************** // ---内部プルアップ設定--- 2ピン 3ピン 4ピン 5ピン 6ピン 7ピン // -- WPU -- GP5 GP4 GP3 GP2 GP1 GP0 // -- WPU -- 0 0 1 1 0 0 0 0 // ***************************************************************************** void main() { OPTION_REG = 0; // GPIOプルアップ CMCON = 0x07; // コンパレータは使用しない ANSEL = 0b00000000; // アナログは使用しない(すべてデジタル入出力) TRISIO = 0b00110000; // ピンは出力に割当 (GP4は入力専用) 入力(1) 出力(0) WPU = 0b00110000; // 内部プルアップ指定 GP4 GPIO = 0b00000000; // 出力ピンの初期化 while(1) { if (GPIO4 == 0) // 3番ピンのスイッチが押されたか? { GPIO1 = 1 ; // 6番ピンにHIGHを出力する(LED ON) } else { GPIO1 = 0 ; // 5番ピンにLOWを出力する(LED OFF) } if (GPIO5 == 0) // 3番ピンのスイッチが押されたか? { GPIO2 = 1 ; // 5番ピンにHIGHを出力する(LED ON) } else { GPIO2 = 0 ; // 5番ピンにLOWを出力する(LED OFF) } } } 12F675_006.c |