dieoberelfe@web.de

Gast #55831
Lesenswert?

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
Gast #55832
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren