TOP>MPLAB XC8編(PIC12F675)> (02)LEDを点滅させる(PIC12F675 XC8)> ソース
LEDを点滅させる(ソース)
(PIC12F675 XC8)
更新日2012.5.20 |
作成日2008.10.5 |
以下のソースを取り込んで、コンパイル→PIC書き込み→実行して下さい。
// ========================== ここから ============================== //ファイル名 led_onoff.c //作成日 2008.9.28 //更新日 2012.5.12 //作成者 mit.ueno //バージョン 1.1 //コンパイラ MPLAB XC8 //PIC PIC12F675 //クロック 4MHz(INTIO) //概要 // GP4,5のLEDを0.5秒間隔で点滅させる // XC8用に非互換修正 //使用ポート // GP4:LED // GP5:LED #include "pic.h" //xc8 __CONFIG(INTIO & WDTDIS & PWRTEN & MCLRDIS); __CONFIG(FOSC_INTRCIO & WDTE_OFF & PWRTE_ON & MCLRE_OFF); static void pic_init(); static void Delay_ms(unsigned char ms); static void Delay_1ms(); // ================ メイン処理 ====================== main() { pic_init(); // PICの初期化 while(1) { GPIO5 = 1; GPIO4 = 0; Delay_ms(250); Delay_ms(250); GPIO5 = 0; GPIO4 = 1; Delay_ms(250); Delay_ms(250); } } // =============== PICの初期化 ====================== static void pic_init() { GPIO = 0; CMCON = 0x07; // コンパレータ未使用 ANSEL = 0x00; // AN未使用 TRISIO = 0x0F; // GP4,5:out } // =============== 1mS×ms ウェイトルーチン ======= static void Delay_ms(unsigned char ms) { unsigned char c; for (c=ms ; c>0 ; c--) { Delay_1ms(); } } // =============== 1mSウェイトルーチン ============ static void Delay_1ms() { unsigned int cnt; unsigned int i; cnt = 76; for (i=0 ; i<cnt ; i++) { NOP(); } } // ========================== ここまで ==============================