User: alciro    User
 Original    Translate to:  Deutsch  English  Français  中文  
 

Microcontroladores 8051

5. Assembler-Programmierung

5.1. Basic-Programmierung Beispiele

Beispiele für Programme in Assembler für den Mikrocontroller 8051.

E-1. Counter im Akkumulator von 0 bis 99 in Hexadezimal

NAME CONTADOR_HEX

ORG 0

INICIO: MOV A,#0
REPETIR: INC A
CJNE A,#99,REPETIR

END

Flussdiagramm des Zählers in hexadezimal.

E-2. Counter im Akkumulator von 0 bis 99 in BCD

NAME CONTADOR_BCD

ORG 0

INICIO: MOV A,#0
REPETIR: ADD A,#1
DA A
CJNE A,#99,REPETIR

END

Flussdiagramm des BCD Dezimal Zähler.

E-3. Rechten Hand Rotation von 1 Bit im Absorbertank.

NAME ROTACION_ACUMULADOR <br/> <br/> 0 ORG < Br / >< Br / > HOME: MOV A, #1 < Br / > WIEDERHOLEN: RR, < Br / > JMP Wiederholung < Br / > < Br / > ENDE

E-4. Verzögerung von 256 Anweisungen DJNZ Programm.

Die Zeit des Verzuges vom Programm nicht über einen festen Wert, richtet sich nach den Anweisungen, die Teil der Schleife (die Gebrauchtmaschine-Zyklen) und der Mikroprozessor (CPU)-Taktfrequenz sind.

Für dieses Beispiel in Frage, wird die Schleife auf die DJNZ-Anweisung, die zwei Zyklen für Ausführung Maschine braucht durchgeführt. Jeder Maschinenzyklus verwendet 12 Uhr Perioden. Wenn die CPU-Frequenz 12 MHz ist, ist die Zeit zum Ausführen von 256 Iterationen 512 μ s (Mikrosekunden).

1\ Ciclo\ m\acute{a}quina \ =\ \frac{1}{12\ MHz}*12\ Periodos\ =\ 1\ \mu Segundo \\ Tiempo\ =\ 1\ \mu Segundo*2\ Ciclos*256\ Iteraciones\ =\ 512\ \mu Segundos

NAME   RETARDO_1

ORG    0

INICIO:    MOV    R0,#0FFH
RET1:      DJNZ   R0,RET1
            
    Ende

Flussdiagramm eines Timer-Programm.

E-5. Geschachtelte Software Delay drei Register R0, R1 und R2.

Um den zweiten machen Software Verzögerung länger als die Schlaufen tun hat mit der Verschachtelung. Die Abbildung zeigt eine verschachtelte Schleifen mit Register R0, R1 und R2. In diesem System, jede Erniedrigung des Registers R1, das Register R0 ist mal dekrementiert 256 und für jede Abnahme der R2, R1 hat Iterationen gemacht 256, so dass das Endergebnis ist 2 ^ 24 = 16.777.216 Iterationen. Die daraus resultierende beträgt etwa 33.554432 Sekunden, je nach den Bedingungen Beispiel skizziert in der vorherigen.

 1\ \mu Segundo*2\ Ciclos*16777216\ Iteraciones\ \approx \ 33554432\ \mu Segundos\ \left\{ 33,554432\ Segundos \right\}

Zur Bestimmung der Zeit müssen die Bits, die wichtigsten Werte entsprechend R2 ändern.

Wasted Rechenleistung der CPU Timings oder Verzögerungen bei der Software nur dann sinnvoll, wie der Mikroprozessor hat nur einen Prozess dienen. Die normale Arbeit ist es, Timern und Interrupts für Timing Aufgaben verwenden, und lassen die CPU frei für andere Prozesse.

NAME RETARDO_2

ORG 0

RETARDO: MOV R2,#0FFH
RET3: MOV R1,#0FFH
RET2: MOV R0,#0FFH
RET1: DJNZ R0,RET1
DJNZ R1,RET2
DJNZ R2,RET3

END

Flussdiagramm eines Software-Timer mit drei Platten.
Loading
copyright © 2007-2024  www.alciro.org  All rights reserved.         
Share |