PIC(その他のマイコン)にLEDを接続するには、2つの方法があります。
下の図をちょっと見て下さい
(1)左がPIC16F88のI/OポートRB3から抵抗+LEDを通りGNDへ流れる回路。
(2)右が5vから抵抗+LEDを通りPIC16F88のI/OポートRB4へ流れる回路。
(1)RB3のpinが0vの時、GNDは0vなので電流は流れません。
RB3のpinが5vの時、PIC側からGND側に電流が流れLEDは点灯します。
このように、PIC側から吐き出す電流を、ソース電流(I_source)といいます。
(2)RB4のpinが5vの時、電源側は5vなので電流は流れません。
RB4のpinが0vの時、電源側からPIC側に電流が流れLEDは点灯します。
このように、PIC側に吸い込む電流をシンク電流(I_sink)といいます。
ソース電流(I_source)かシンク電流(I_sink)かは、回路図の設計で決まります。
(1)のようにソース電流(I_source)で半田付けした回路に
シンク電流(I_sink)を流そうとしても出来ません。(2)で逆も無理ですね。
PICのI/Oポートを5vや0vしたりするのがプログラムです。
プログラムで1か0を指定します。
プログラムで1を指定するとPICはHigh(5v)になります。
プログラムで0を指定するとPICはLow(0v)になります。
PICマイコンの中にSwitchがあり
「1」のSwitch を入れるとHigh(5v)になり
「0」のSwitch を入れるとLow(0v)になる
と考えると解りやすいですね。
I/OポートのRA0-7(8本)とRB0-7(8本)それぞれ独自のスイッチがあります。
RA5だけは、特殊で入力のみです。
Datasheetを見るとInputになっています。
すごく大雑把な説明ですが何となく解って頂けたでしょうか。。