#freeze 閲覧総計:&counter(); (本日:&counter(today); 昨日:&counter(yesterday);) 【目次】(項目をクリックすると、そこに飛べます) #contents ~ *発光ダイオード(LED)の点滅 [#x4aa3fb2] 16F886の「Device Flags(CONFIG)」「Configレジスタ」の概要理解と、 実際の稼働確認を目的とし、発光ダイオード(LED)の点滅プログラムを作った。 ・内蔵発振器(8MHz)を利用する。 ・MCLRはPIC内部プルアップで利用する。 CONFIG1, CONFIG2に関する詳細情報はデータシートの208/288ページ http://ww1.microchip.com/downloads/jp/DeviceDoc/jp027084.pdf 【結果】無事発光ダイオード(LED)が点滅した。 また、点滅間隔を1秒であり、発振器とプログラムが連動している事を確認した。 08/06/12 ※HI-TECH C PRO(Lite mode)のプログラムを追記 08/08/14 |&attachref(P1010641.JPG,zoom,150x150,button){新しい写真添付};|&attachref(16F886.JPG,zoom,150x150,button){新しい写真添付};| **MikroCのプログラム [#s4191fe0] /** * 16F886の稼働テスト 発光ダイオード(LED)の点滅 * * LED: RC2 * Clock: 8.0MHz 内蔵発振器使用 * Device Flags: * _INTRC_OSC_NOCLKOUT _WDT_OFF _PWRTE_ON _MCLRE_OFF * _CP_OFF _CPD_OFF _BOR_OFF _IESO_ON _FCMEN_ON * _LVP_OFF _DEBUG_OFF _BOR21V _WRT_OFF * * MikroC v8.1.0 */ void main() { //PICの初期化 PORTC = 0b00000000; //PortCの中身をきれいにする OSCCON = 0b01110000; //内蔵発信機 8MHz使用に設定 TRISC = 0b00000000; //PortC 8個全て0:出力設定 //初期化終わり while (1) { PORTC = 0b11111111; //PortC全てをON Delay_ms(500); //0.5秒待つ PORTC = 0b00000000; //PortC全てをOFF Delay_ms(500); //0.5秒待つ } } ★この情報は役に立ちましたか? #vote(はい[10],普通[7],いいえ[7]) #comment_nospam **HI-TECH C PRO(Lite mode)のプログラム [#x366a049] /** * 16F886の稼働テスト 発光ダイオード(LED)の点滅 * * LED: RC2 * * HI-TECH C PRO PIC10/12/16 MCU Family(Lite) v9.60 * MPLAB v8.14 */ #include <htc.h> __CONFIG(INTIO & WDTDIS & PWRTEN & MCLREN & UNPROTECT & DUNPROTECT & BORDIS & IESODIS & FCMDIS & LVPDIS & DEBUGEN); __CONFIG(BORV21); //__delay_us(), __delay_ms()へのクロック情報の設定 #ifndef _XTAL_FREQ #define _XTAL_FREQ 8000000 //PICのクロックをHzで設定 #endif //関数のプロトタイプ宣言 extern void my_delay_ms(unsigned int x); void main(void) { unsigned int wait = 500; //待ち時間(ミリ秒) //PICの初期化 TRISC = 0b00000000; //PORTC全てを0:出力に設定 OSCCON = 0b01110000; //内蔵発振器 8MHz使用に設定 // A/D利用PORTの設定 // ANALOG=1, DIGITAL=0 // ANSEL = 0b00000000; //AN4-0ピンはデジタルで使用 ANSELH = 0b00000000; //AN13-8ピンはデジタルで使用 PORTC = 0b00000000; //PORTCの中身をきれいにする //PICの初期化終わり while (1) { //PORTC = 0b11111111; //PortC全てをON RC2 = 1; //LED(RC2)をON my_delay_ms(wait); //所定時間待つ //PORTC = 0b00000000; //PortC全てをOFF RC2 = 0; //LED(RC2)をOff my_delay_ms(wait); //所定時間待つ } } void my_delay_ms(unsigned int x) { while (x) { __delay_ms(1); x--; } } ★この情報は役に立ちましたか? #vote(はい[10],普通[0],いいえ[1]) - 音を出す(警報等)連続や断続など出すプログラム教えてください。 -- [[PIC入門年金族]] &new{2009-12-01 (火) 12:33:50}; - ある回数点滅したら終わりにする方法教えてください。 -- [[PIC入門年金族]] &new{2009-12-10 (木) 21:49:07}; #comment_nospam