<PIC16F689のI/Oピン全使用> PIC16F689のI/Oピンは全部で18ピンあります。この18ピンを全部使って17個のLEDを 点滅させます。18ピンの内RA3は出力ピンとして使えないので入力ピンにして点滅スタート用 に使います。 画像のLEDは18個ありますが、18個目は接続していません。 基板に組立(クリックして見て下さい)回路図
プログラムソース ******************************** main ********************************** #include <pic.h> #include <htc.h> #include <stdio.h> __CONFIG(PWRTEN & WDTDIS & MCLRDIS & INTIO);/*内部発振*/ //__CONFIG(PWRTEN & WDTDIS & MCLREN & HS);/*水晶発振*/ #define _XTAL_FREQ 31000 //#define _XTAL_FREQ 10000000 #define JIKAN1 200 #define JIKAN2 100 ioport(); led_onoff(); s_flug1(); s_flug2(); int flug=1; main() { OSCCON=0;//INTCONにするときに必要で0は31Khz ioport(); while(1){ if(RA3==0 && flug==1)s_flug1(); if(RA3==1 && flug==0)s_flug2(); } } s_flug1() { flug=0; } s_flug2() { flug=1; led_onoff(); } led_onoff() { RC0=1;//1 __delay_ms(JIKAN1); RC0=0; __delay_ms(JIKAN2); RC1=1;//2 __delay_ms(JIKAN1); RC1=0; __delay_ms(JIKAN2); RC2=1;//3 __delay_ms(JIKAN1); RC2=0; __delay_ms(JIKAN2); RC3=1;//4 __delay_ms(JIKAN1); RC3=0; __delay_ms(JIKAN2); RC4=1;//5 __delay_ms(JIKAN1); RC4=0; __delay_ms(JIKAN2); RC5=1;//6 __delay_ms(JIKAN1); RC5=0; __delay_ms(JIKAN2); RC6=1;//7 __delay_ms(JIKAN1); RC6=0; __delay_ms(JIKAN2); RC7=1;//8 __delay_ms(JIKAN1); RC7=0; __delay_ms(JIKAN2); RA0=1;//9 __delay_ms(JIKAN1); RA0=0; __delay_ms(JIKAN2); RA1=1;//10 __delay_ms(JIKAN1); RA1=0; __delay_ms(JIKAN2); RA2=1;//11 __delay_ms(JIKAN1); RA2=0; __delay_ms(JIKAN2); RA4=1;//12 __delay_ms(JIKAN1); RA4=0; __delay_ms(JIKAN2); RA5=1;//13 __delay_ms(JIKAN1); RA5=0; __delay_ms(JIKAN2); RB4=1;//14 __delay_ms(JIKAN1); RB4=0; __delay_ms(JIKAN2); RB5=1;//15 __delay_ms(JIKAN1); RB5=0; __delay_ms(JIKAN2); RB6=1;//16 __delay_ms(JIKAN1); RB6=0; __delay_ms(JIKAN2); RB7=1;//17 __delay_ms(JIKAN1); RB7=0; __delay_ms(JIKAN2); } ioport() { ANSEL=0; ANSELH=0; TRISA=0x08; /*RA0-2,RA4-5を出力RA3を入力に設定*/ TRISB=0; /*PORTB全ピンを出力に設定*/ TRISC=0; /*PORTC全ピンを出力に設定*/ PORTA=0x08; /*RA0-2,RA4-5をLRA3をHに設定 16進*/ PORTB=0x00; /*PORTB全ピンをLに設定 16進*/ PORTC=0x00; /*PORTC全ピンをLに設定 16進*/ //PORTA=0b01010101; /*PORTAピンをLHLHLHLHに設定 2進*/ //PORTB=0b10101010; /*PORTBピンをHLHLHLHLに設定 2進*/ //PORTC=0b01010101; /*PORTCピンをLHLHLHLHに設定 2進*/ } ******************************** main ここまで********************************** PIC16F689のI/Oピン全使用 HEXファイル