I have tried to use converters to translate the basic code to asm code to be able to download it to a pic 16f627. I have not been successful.
the code is:
CODE
'-----PORT & BAUD DEFINITION------
SerPort CON 16 'Serieport ut för att kommunicera med VB6
SerBaud CON 16780 'Baudrate
'-----STATUS/VÄRDE DEFINITION------
OLDSTATUS VAR Word
NODSTATUS VAR Word 'Visar om den specifika noden aktiveras manuellt eller via SerIn
ANYCHANGE VAR Byte 'Senaste ändring, 1 om ändringen gjorts på nod, 0 om ingen ändring har skett
Index VAR Word
CONFIRMATION VAR Byte ' Värdet visar om bekräftelse ska skickas från noden då ny data har tagits emot
SDATA VAR Byte
NodID VAR Byte
INPUT 4
INPUT 3
INPUT 2
INPUT 1
INPUT 0 ' Denna ingång berättar om data skickas allmänt. Om "1" så är det upptaget, om "0" så är det ledigt
'-----START AV PROGRAM------
SEROUT 16, 16780, ["Denna Nod´s ID är:"]
FOR index = 0 TO 10
READ index,NodID(0)
SEROUT 16,16780, [STR NodID]
NEXT
SEROUT 16, 16780, ["*"]
GOSUB CHECK_STAT: 'Få den aktuella statusen på brytarna så allt är aktivt som ska vara aktivt
OLDSTATUS = NODSTATUS
PAUSE 2000
GOTO NewStat_Check: 'Starta noden genom att fortsätta ha igång aktuell status
Print_ActiveStat:
RETURN
WAIT_A_MOMENT:
FOR Index = 0 TO 10
IF IN0 = 0 THEN RETURN
SEROUT 16, 16780, ["q*"]
PAUSE 100
NEXT
SEROUT 16, 16780, ["goto main:*"]
GOTO main:
Activate_Confirmation:
WRITE 240, "A"
SEROUT 16, 16780, ["*SBBBAHKZOP#: Bekräftelse aktiverad", "*"]
GOTO main:
Deactivate_Confirmation:
WRITE 240, "I"
GOTO main:
CHECK_STAT:
IF IN1 = 0 AND IN2 = 0 AND IN3 = 0 AND IN4 = 0 THEN NODSTATUS = "A"
IF IN1 = 0 AND IN2 = 0 AND IN3 = 0 AND IN4 = 1 THEN NODSTATUS = "B"
IF IN1 = 0 AND IN2 = 0 AND IN3 = 1 AND IN4 = 0 THEN NODSTATUS = "C"
IF IN1 = 0 AND IN2 = 0 AND IN3 = 1 AND IN4 = 1 THEN NODSTATUS = "D"
IF IN1 = 0 AND IN2 = 1 AND IN3 = 0 AND IN4 = 0 THEN NODSTATUS = "E"
IF IN1 = 0 AND IN2 = 1 AND IN3 = 0 AND IN4 = 1 THEN NODSTATUS = "F"
IF IN1 = 0 AND IN2 = 1 AND IN3 = 1 AND IN4 = 0 THEN NODSTATUS = "G"
IF IN1 = 0 AND IN2 = 1 AND IN3 = 1 AND IN4 = 1 THEN NODSTATUS = "H"
IF IN1 = 1 AND IN2 = 0 AND IN3 = 0 AND IN4 = 0 THEN NODSTATUS = "I"
IF IN1 = 1 AND IN2 = 0 AND IN3 = 0 AND IN4 = 1 THEN NODSTATUS = "J"
IF IN1 = 1 AND IN2 = 0 AND IN3 = 1 AND IN4 = 0 THEN NODSTATUS = "K"
IF IN1 = 1 AND IN2 = 0 AND IN3 = 1 AND IN4 = 1 THEN NODSTATUS = "L"
IF IN1 = 1 AND IN2 = 1 AND IN3 = 0 AND IN4 = 0 THEN NODSTATUS = "M"
IF IN1 = 1 AND IN2 = 1 AND IN3 = 0 AND IN4 = 1 THEN NODSTATUS = "N"
IF IN1 = 1 AND IN2 = 1 AND IN3 = 1 AND IN4 = 0 THEN NODSTATUS = "O"
IF IN1 = 1 AND IN2 = 1 AND IN3 = 1 AND IN4 = 1 THEN NODSTATUS = "P"
IF NODSTATUS = OLDSTATUS THEN ANYCHANGE = 0
IF NODSTATUS <> OLDSTATUS THEN ANYCHANGE = 1
RETURN
'-----START AV MAIN------
MAIN:
READ 240,CONFIRMATION(0)
GOSUB CHECK_STAT:
IF ANYCHANGE = 0 THEN SERIN_CHECK:
IF ANYCHANGE = 1 THEN STIMULERA_NOD:
GOTO main:
SERIN_CHECK:
IF IN0 = 1 THEN GOTO main:
SERIN Serport, SerBaud, BadData, 1000, NoData, [WAIT ("VB6"), SDATA(0), SDATA(1), SDATA(2), SDATA(3), SDATA(4), SDATA(5), SDATA(6), SDATA(7), SDATA(8), SDATA(9), SDATA(10), SDATA(11)]
FOR Index = 0 TO 11
IF Index = 11 THEN GOTO STIMULERA_NOD:
READ Index,NodID
IF SDATA(Index) <> NodID THEN GOTO NoData:
NEXT
GOTO nodata:
BadData:
'IF CONFIRMATION = "A" THEN
SEROUT 16, 16780, ["FN", "SBBBAHKZOP#: Felaktig paritet", "*"]
GOTO main:
NoData:
GOTO main:
STIMULERA_NOD:
OLDSTATUS = NODSTATUS
IF ANYCHANGE = 0 THEN Input_Check:
IF ANYCHANGE = 1 THEN NewStat_Check:
Input_Check:
'IF CONFIRMATION = "A" THEN
SEROUT 16, 16780, ["FN","SBBBAHKZOP#:", SDATA(11), "*"]
IF SDATA(11) = "a" THEN Activate_Confirmation:
IF SDATA(11) = "b" THEN Deactivate_Confirmation:
IF SDATA(11) = "A" THEN A:
IF SDATA(11) = "B" THEN B:
IF SDATA(11) = "C" THEN C:
IF SDATA(11) = "D" THEN D:
IF SDATA(11) = "E" THEN E:
IF SDATA(11) = "F" THEN F:
IF SDATA(11) = "G" THEN G:
IF SDATA(11) = "H" THEN H:
IF SDATA(11) = "I" THEN I:
IF SDATA(11) = "J" THEN J:
IF SDATA(11) = "K" THEN K:
IF SDATA(11) = "L" THEN L:
IF SDATA(11) = "M" THEN M:
IF SDATA(11) = "N" THEN N:
IF SDATA(11) = "O" THEN O:
IF SDATA(11) = "P" THEN P:
GOTO main:
NewStat_Check:
'IF CONFIRMATION = "A" THEN
SEROUT 16, 16780, ["FN", "SBBBAHKZOP#:", NODSTATUS, "*"]
IF NODSTATUS = "A" THEN A:
IF NODSTATUS= "B" THEN B:
IF NODSTATUS = "C" THEN C:
IF NODSTATUS = "D" THEN D:
IF NODSTATUS = "E" THEN E:
IF NODSTATUS = "F" THEN F:
IF NODSTATUS = "G" THEN G:
IF NODSTATUS = "H" THEN H:
IF NODSTATUS = "I" THEN I:
IF NODSTATUS = "J" THEN J:
IF NODSTATUS = "K" THEN K:
IF NODSTATUS = "L" THEN L:
IF NODSTATUS = "M" THEN M:
IF NODSTATUS = "N" THEN N:
IF NODSTATUS = "O" THEN O:
IF NODSTATUS = "P" THEN P:
GOTO main:
A:
LOW 10
LOW 11
LOW 12
LOW 13
'SEROUT 16, 16780, ["SBBBAHLCIAA:A*"]
GOTO main:
B:
HIGH 10
LOW 11
LOW 12
LOW 13
'SEROUT 16, 16780, ["SBBBAHLCIAA:B*"]
GOTO main:
Is it possible to translate this or by another way to download this code to the pic?!? The BS2 worked perfect but I want a Pic to do this instead. A appreciate all help!
Thanx!