sven
pointers don't kill programs, programmers kill programs
wat doe ik verkeerd?
ik wil P3 uitlezen in deze in R2 plaatsen, om daarmee de snelheid te kunnen regelen van een tijdsvertraging:
main mov a,#0h
mov P3,#00h
flash mov P1,#0ffh
acall delay
mov P1,#0
acall delay
sjmp flash
delay mov a,P3
mov r2,a
delay2 djnz r3,delay2
djnz r2,delay2
ret
.end
alles werkt, behalvee dat inlezen van P3 en dat overbrengen naar r2
dit stukje dus
mov a,P3 ; plaats de inhoud van P3 in accu
mov r2,a ; plaats de inhoud van accu in r2
weet er trouwens iemand een goede emulator voor 8051 (afgeleide), liefst freeware...
Jeroen
Moderator
Ik kan het fout hebben, maar moet het niet dit zijn:
mov P3,a ; plaats de inhoud van P3 in accu
mov a,r2 ; plaats de inhoud van accu in r2
Andersom dus. Zo staat het in ieder geval in mijn boek computerarchitectuur.
mov (source),(destination)
/edit
Zie hier net in een ander topic dat het daar wel zo gebruikt wordt. Dan weet ik het ook niet.
sven
pointers don't kill programs, programmers kill programs
alles was juist op 1 stukje code na
main mov a,#0h
mov P3,#0FFh
de poort moet dus op FF staan alvorens men deze kan gebruiken als ingang. Dom van mij, dat vergeet ik dus nooit meer.
de volledige code, voor geinteresseerden:
main mov a,#0h
mov P3,#0FFh
flash mov P1,#0ffh
acall delay
mov P1,#0
acall delay
sjmp flash
delay mov a,P3
xrl a,11000011b
rl a
rl a
mov r2,a
delay2 djnz r3,delay2
djnz r2,delay2
ret
.end