Hallo Leute Ich habe folgendes Problem... Ich soll an einer 7 Segment Anzeige an der Stelle(dem Segement) 8 die zahlen 1 bis 9 in kurzen abständen anzeigen lassen.... Wie mach ich das??? Mein erstes Problem is wie berechne ich die Zeit dazu ?? Ich hab mir das irgendwie so vorgestellt mov p1,#1001111b mov p3,#8 call warte mov p1,#1111111b mov p3,#8 call warte ..... ..... warte: mov r1,#60 ;das er dann da wartet und weiter macht ___________________________________________________________ oder so irgendwie mov p1,#1001111b mov p3,#8 mov r1,#60 ; das er hier wartet und wenn die Zeit abgelaufen mov p1,#1111111b is, weiter macht mov p3,#8 ________________________________________________ So in der Art soll das ausehen dann ... nur ich weiß halt nich wie ich diese Warteschleife machen soll... mk1: mov p1,#1001111b mov p3,#8 call warte mov p1,#1111111b mov p3,#8 call warte mov p1,#0000111b mov p3,#8 call warte mov p1,#1111101b mov p3,#8 call warte mov p1,#1101101b mov p3,#8 call warte mov p1,#1100110b mov p3,#8 call warte mov p1,#1001111b mov p3,#8 call warte mov p1,#1011011b mov p3,#8 call warte sjmp mk1 ;Sprung zum Label mk1 warte: mov r1,#60 MW1: djnz r1,MW1 ret
Hi,
du kannst das ganze auch so machen:
zaehlen DATA 08h
MOV DPTR,#sek
return: MOV zaehlen,#10d
start:
DEC zaehlen
MOV A,zaehlen
JZ return
MOVC A,@A+dptr
call wait
MOV p1,A
JMP start
wait:
MOV R1,ffh
ww2: MOV R2,ffh
ww1: DJNZ R2,ww1
DJNZ R1,ww2
RET
sek:
DB 00,1001111b, 1111111b, 0000111b, 1111101b 1101101b, 1100110b,
1001111b, 1011011b, 01010101b
END
Du mußt nur noch das Datenfelder ändern die stimmen nicht! und immer 8
bit hinschreiben, zur Sicherheit.
Dann wird es laufen.
mfg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.