1

pic16f88とpic16f688の2枚の写真があります。f88は、ボタンが押されるたびにメッセージを送信するループを実行しています。また、ボタンが押されたときではなく、毎秒送信するタイミングループでこれを試しました。

DEFINE osc 8
osccon.4 = 1:osccon.5 = 1:osccon.6=1
ANSEL = 0

pinout var  PORTB.1
LED    VAR  PORTB.0   ' Assign name "LED" to PORTB.0
btn    var  PORTA.0

TRISA.0 = 1

myloop:
    if (not(btn)) then
    High LED        ' Turn on LED connected to PORTB.0
    Serout2 pinout,396,["PBPSUX"]
    endif
    Low LED         ' Turn off LED connected to PORTB.0

    Goto myloop

    End

そして、私の2番目の写真であるf688は、メッセージを待っており、何かを受信した場合はLEDをオンにすることになっています。

DEFINE osc 8
osccon.4 = 1:osccon.5 = 1:osccon.6=1
ANSEL = 0

pinin  var  PORTA.1
LED    VAR  PORTA.0   ' Assign name "LED" to PORTB.0
test   var  byte[5]

low LED
myloop:

   Pause 500       ' Delay for .5 seconds to allow the other pic to start sending.
   low LED

   Serin2 pinin,396,[wait("P"),str test\5]

   if (test) then
      goto lighton
   endif

   pause 500
   high LED

   Goto myloop

lighton:
    high LED
    goto lighton   
End

2番目の写真が何も受け取らない場合は、再び待機を開始することになっています。

どういうわけか、最初の写真は点滅していて、シリアルのオシロスコープを使用してノイズを確認できるため、最初の写真が見つかります。ただし、2番目の写真が点灯することはありません。

誰かが私が間違っているかもしれないことを見ることができますか?

4

1 に答える 1

1

LEDの定義が間違っているため、チップが受信しても実際には点灯しません。他のデバイスのようにPORTB.0ではなくPORTA.0であるはずですか?

于 2012-12-30T11:15:28.300 に答える