<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ファイル