Fejl i assembler program.
Her er et program jeg har skrevet, der skal få en diode på udgangen p1.0 til at blinke. Hvis p1.1 sættes til 1, skal den derimod lyse.Rent teoretisk kan jeg ikke finde nogen fejl i programmet, men når jeg kører den igennem en simulator (SYSTEM 51), springer den JB P1.1,COUNT2 sætningen over, til trods for at jeg har sat bittet til 1.
Jeg leder efter en der kan komme med en begrundelse for det ikke virker, eller måske et alternativt løsningsforslag. Problemet SKAL løses i assembler, og med min kode som udgangspunkt, da jeg senere skal bruge det til en projektopgave. Andre kommentarer eller idéer vedr. programmet modtages gerne. :)
Håber i kan hjælpe..
; PROGRAM DER FÅR DIODE TIL AT BLINKE, DIODEN LYSER VED STRØM TIL P1.1
ORG 0000H
MOV P1.0,#01H
MOV P1.1,#00H
INIT: LCALL COUNT ; HOPPER NED OG TÆLLER.
CLR P1.0
LCALL COUNT
SETB P1.0
JB P1.1,COUNT2
JMP INIT
COUNT: MOV R0,#0FFH
MOV R1,#0CFH
MOV R2,#003H
COUNT1: DJNZ R0,COUNT1 ;HER BLIVER DER TALT TIL 500 MS
DJNZ R1,COUNT1
DJNZ R2,COUNT1
RET
COUNT2: DJNZ R0,COUNT2
JB P1.1,COUNT2
LJMP INIT