<紙>さんLOG

「パソコンヲタクの雑記帳」
 PC/Linux系/物理・化学で遊んでいます。
思いついたことを綴っています。

PIC:PIC 通信(1)232C

2008年07月09日 | PIC・マイコン
                                                   日記@BlogRanking

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クリック(投票を)お願いします ⇒ 日記@BlogRanking

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。