PIC同士の接続については、1、2、3線シリアル・インターフェースが解りやすい。
このうちの、2線式2種類(RS232C、I2C)の接続例図を示す。
ピン名称については、RS232Cでは、Tx、Rx であり、I2Cでは、SCL、SDA である。
3線式のSPIでは、SCK、SDI、SDO で、1線では、DQ と呼ぶ。もちろん、もう1線 基準電位の GND を忘れてはいけない。
ちなみに、PS/2では、CL、DT で、USBでは、D+、D- である。
これらは、GND とさらに +5V ラインも必要だから4線式?
で、通信プログラムの、サンプルコーディングを示す。
RS232C通信のコーディング例 3つ(mikro BASIC、Great Cow BASIC、Swordfish BASIC)
対向はPCでもPICでも同じである。
(段付けのために、先頭に2B空白がある)
---------------- <mikro BASIC> ----- 16F/18F ----------
dim received_byte as byte ' Declare variable
Usart_Init(115200) ' Initialize USART module
if Usart_Data_Ready = 1 then ' If data is received
received_byte = Usart_Read ' Read received data
end if
Usart_Write(received_byte) ' Send data via USART
' ----------
Forum → Contributors → Hardware USART Library と辿って得られた「usart.h」を流用している。
---------------- <Great Cow BASIC> ---- 16F -----------
dim received_byte ' Declare variable
initusart ' Initialize USART module 19200bps
received_byte=HserIn ' Read received data
HserTX(received_byte) ' Send data via USART
' ----------
(段付けのために、先頭に2B空白がある)
---------------- <Swordfish BASIC> -- 18F -------------
Include "USART.bas" ' Declare module
Include "ISRRX.bas"
Dim received_byte As Byte ' Declare variable
SetBaudrate(br115200) ' Initialize USART module
If ISRRX.DataAvailable Then ' If data is received
received_byte=USART.ReadByte() ' Read received data
End If
USART.WriteByte(received_byte) ' Send data via USART
' ----------
コンパイラ付属のサンプルそのままかも。
お手数をおかけします。2クリック(投票を)お願いします ⇒