S
scgoo
Guest
hi, im benytter PIC16f628 for design mitt.programmet vil motta signal i form av tegn som vist i koden nedenfor.PC og PIC vil kommunisere via serieport (RS232).
men når jeg sender en "A" til PIC, det gjorde ikke gå til "TurnLeft" subroutine, men går det til "forvirre".det samme skjer når jeg sender "B", "C", D, E til PIC.det vil gå til "forvirre".men når jeg sender en karakter "W", vil det ta det som "D" og gå til den triste, og sende "Y" det vil ta det som "C", og sende "u" det vil ta det som "E ".
Derfor vil dette skje?
Jeg er forvirrende ...
noen forslag?Pekeren?
takk!'''''''''''' initialisering'''''''''''
suksess = 0: i = 0: bell_on = 0
init:
INTCON =% 11000000
PIE1.5 = 1
PÅ Interrupt GoTo handler
viktigste:
hvis suksess = 1 og deretter
bell_on = 1
bekrefter = 0
i = 200
while (i! = 0)
i = i - 1
pause 5
Wend
if (store = "A") så
gosub TurnLeft
bekrefter = 1
endif
if (store = "B" og bekrefter <> 0) then
gosub TurnRight
bekrefter = 1
endif
if (store = "C" og bekrefter <> 1) then
gosub Happy
bekrefter = 1
endif
if (store = "D" og bekrefter <> 1) then
gosub Sad
bekrefter = 1
Endif
if (store = "E" og bekrefter <> 1) then
gosub Angry
bekrefter = 1
endif
if (bekrefte <> 1) then
gosub forvirre
Endif
bekrefter = 0
suksess = 0
bell_on = 0
endif
goto main
Happy:
LED = 1
PORTA =% 00000111
PAUSE 500
LED = 0
PAUSE 500
return
Trist:
PORTA =% 00000010
LED = 1
PAUSE 500
LED = 0
PAUSE 500
return
Angry:
PORTA =% 00000011
LED = 1
PAUSE 500
LED = 0
PAUSE 500
returnForvirre:
PORTA =% 00000100
LED = 1
PAUSE 500
LED = 0
PAUSE 500
returnTurnLeft:
PORTA =% 00000101
LED = 1
PAUSE 500
LED = 0
PAUSE 500
returnTurnRight:
PORTA =% 00000110
LED = 1
PAUSE 500
LED = 0
PAUSE 500
return''''''''''''''' avbryte'''''''''''
deaktivere
handler:
hserin 10, feil, [store]
suksess = 1FEIL:
CV
aktivere
men når jeg sender en "A" til PIC, det gjorde ikke gå til "TurnLeft" subroutine, men går det til "forvirre".det samme skjer når jeg sender "B", "C", D, E til PIC.det vil gå til "forvirre".men når jeg sender en karakter "W", vil det ta det som "D" og gå til den triste, og sende "Y" det vil ta det som "C", og sende "u" det vil ta det som "E ".
Derfor vil dette skje?
Jeg er forvirrende ...
noen forslag?Pekeren?
takk!'''''''''''' initialisering'''''''''''
suksess = 0: i = 0: bell_on = 0
init:
INTCON =% 11000000
PIE1.5 = 1
PÅ Interrupt GoTo handler
viktigste:
hvis suksess = 1 og deretter
bell_on = 1
bekrefter = 0
i = 200
while (i! = 0)
i = i - 1
pause 5
Wend
if (store = "A") så
gosub TurnLeft
bekrefter = 1
endif
if (store = "B" og bekrefter <> 0) then
gosub TurnRight
bekrefter = 1
endif
if (store = "C" og bekrefter <> 1) then
gosub Happy
bekrefter = 1
endif
if (store = "D" og bekrefter <> 1) then
gosub Sad
bekrefter = 1
Endif
if (store = "E" og bekrefter <> 1) then
gosub Angry
bekrefter = 1
endif
if (bekrefte <> 1) then
gosub forvirre
Endif
bekrefter = 0
suksess = 0
bell_on = 0
endif
goto main
Happy:
LED = 1
PORTA =% 00000111
PAUSE 500
LED = 0
PAUSE 500
return
Trist:
PORTA =% 00000010
LED = 1
PAUSE 500
LED = 0
PAUSE 500
return
Angry:
PORTA =% 00000011
LED = 1
PAUSE 500
LED = 0
PAUSE 500
returnForvirre:
PORTA =% 00000100
LED = 1
PAUSE 500
LED = 0
PAUSE 500
returnTurnLeft:
PORTA =% 00000101
LED = 1
PAUSE 500
LED = 0
PAUSE 500
returnTurnRight:
PORTA =% 00000110
LED = 1
PAUSE 500
LED = 0
PAUSE 500
return''''''''''''''' avbryte'''''''''''
deaktivere
handler:
hserin 10, feil, [store]
suksess = 1FEIL:
CV
aktivere