Avatar billede red_dwarf Nybegynder
11. august 2005 - 10:36

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
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester