Рефераты. Программирование микроконтроллера на ассемблере. Симуляция игральной кости

RET                         ; Das Programm wird an der Stelle
                            ; fortgesetzt, an der das Unter-
                            ; programm aufgerufen wurde, also
                            ; nach der lcall uptime

END

Programmablaufpläne (siehe auch 1d)


Aufgabe 3. 8051Win-Simulation von Würfelmodell


Hexzahlenberechnung für die Ausgabe auf dem Würfel-2 in 8051Win









W-Anzeige

 

4

2

1

8

4

2

1

Dual

Hexergebnis

Belegung

-

D6

D5

D4

D3

D2

D1

D0

    linke hex – rechte hex

-

Augenzahl 1

0

0

0

0

1

0

0

0

8

08h

Augenzahl 2

0

0

1

0

0

0

1

0

2 – 2

22h

Augenzahl 3

0

0

1

0

1

0

1

0

    2 – 8+2

2Ah

Augenzahl 4

0

1

0

1

0

1

0

1

 4+1 – 4+1

55h

Augenzahl 5

0

1

0

1

1

1

0

1

     4+1 – 8+4+1

5Dh

Augenzahl 6

0

1

1

1

0

1

1

1

4+2+1 – 4+2+1

77H


 

a) Würfelmodell mit integriertem Decoder


Erklärung

Da der Würfel einen integrierten Decoder besitzt, kann der Zähler aus der Aufgabe 1 benutzt werden. Dieser Zähler gibt die Zahlen an P2 aus. Der Decoder wandelt die Zahlen in entsprechend andere Zahlen, damit die Würfelaugen richtig leuchten.

Assemblercode

Code at 0000h


P1 equ 90h               ; Start/Stopp Schalter

P2 equ 0A0h              ; Ausgabe erfolgt an der Adresse 0A0h

   

laden: mov R1, #01h      ; Wert #01h wird ins Register R1 geladen

stopp:  JB P1.0, stopp   ; Bei geschaltetem Schalter (gesetztem
                         ; Bit) wird es zu Stopp gesprungen.

mov P2, R1        ; Hier erfolgt die Ausgabe an Adresse 0A0h,
                         ; d. h. an P2.

    inc R1               ; Registerinhalt wird um eins erhöht.

    cjne R1, #07h, stopp ; Wenn Registerinhalt ungleich #07h ist,
                         ; dann verzweigt das Programm zu Stopp

    sjmp laden           ; Es wird zu Laden gesprungen

End

Programmablaufplan

Bild 16. Programmablaufplan vom Würfelmodell mit integriertem Decoder

 
 

 



b) Würfelmodell ohne Decoder mit indirekter Adressierung

Erklärung

Bei dieser Aufgabe besitzt der Würfel keinen integrierten Decoder, die Würfelaugen müssen trotzdem richtig leuchten. Das heißt, dass bei einer Zwei auch die richtigen zwei Würfelaugen leuchten müssen (s. Bild 18). Die folgende Codierungstabelle enthält die Hexzahlen, die für jeden Ausgabewert (1 bis 6) die richtigen Würfelaugen zum Leuchten bringen.


Ausgabewert

Hexzahl

Eins

08h

Zwei

41h

Drei

49h

Vier

55h

Fünf

5D4

Sechs

77h


Diese Hexzahlen werden gemäß der Aufgabestellung im Adressbereich 31h…36h abgespeichert. Der Zähler geht dann diesen Adressbereich immer wieder durch. Durch die indirekte Adressierung werden diese Hexzahlen nacheinander ausgegeben.

 

Assemblercode

Code at 0000h


P1 equ 90h   ; Schalter

P2 equ 0A0h  ; Ausgabe

; Decoder:

; es werden bestimmte Werte in dem

; Adressbereich 31h bis 36h

; abgespeichert

;------------------------

mov 31h, #08h

mov 32h, #41h

mov 33h, #49h

mov 34h, #55h

mov 35h, #5Dh

mov 36h, #77h

;------------------------

laden: mov R1, #31h   ; im R1 wird der Wert

                      ; 31h abgespeichert

       mov A, @R1     ; in A steht jetzt der

                      ; Wert 08h (indirekte

                      ; Andressierung)

       mov P2, A      ; Akkuinhalt wird

                      ; ausgegeben


stopp: JB P1.0, stopp ; Stopp/Start-Schalter


count:

inc R1                ; erhohe R1

mov A, @R1            ; in A wird der Wert der

                      ; Adresse, welche in R1

                      ; steht, abgespeichert.

mov P2, A             ; Ausgabe des Akkuinhalts

cjne A, #77h, stopp   ; Verzweigen zum Stopp bei

                      ; Ungleichheit.


sjmp laden            ; Sprung zum Laden


END



Programmablaufplan

Bild 19. Programmablaufplan für die Aufgabe 3b

 
 

 

 

 

 

 


Aufgabe 4. 8051Win-Simulation der 7-Segment-Anzeige

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.