1

我有两张照片:pic16f88 和 pic16f688。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

我的第二张照片 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

如果第二张照片没有收到任何东西,它应该再次开始等待。

出于某种原因,第一张图片可以正常工作,因为它在闪烁,我们可以使用串行示波器看到噪声。然而,第二张照片永远不会打开它的灯。

谁能看到我可能做错了什么?

4

1 回答 1

1

您的 LED 定义错误,因此即使芯片确实接收到它也不会真正点亮。您确定它应该是 PORTA.0 而不是 PORTB.0 像其他设备吗?

于 2012-12-30T11:15:28.300 回答