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

Microcontroladores 8051

5. Assembler programmation

5.1. des exemples de programmation Basic

Exemples de programmes en assembleur pour le microcontrôleur 8051.

E-1. Contre dans l'accumulateur de 0 à 99 en hexadécimal

NAME CONTADOR_HEX

ORG 0

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

END

Schéma du compteur en hexadécimal.

E-2. Contre dans l'accumulateur de 0 à 99 en BCD

NAME CONTADOR_BCD

ORG 0

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

END

Schéma de principe du compteur décimal BCD.

E-3. Rotation de la main droite de 1 bit dans l'accumulateur.

nom ROTACION_ACUMULADOR <br/> <br/> 0 ORG < br / >< br / > page d'ACCUEIL : MOV A, #1 < br / > RÉPÉTER : RR à < br / > répétition JMP < br / > < br / > FIN

E-4. Retard de programme DJNZ 256 instructions.

Le temps de retard de programme n'a pas une valeur fixe, varie selon les instructions qui font partie de la boucle (les cycles de la machine utilisée) et la vitesse d'horloge de microprocesseur (CPU).

Pour cet exemple en question, la boucle est exécutée sur l'ordre de DJNZ, qui a besoin de deux cycles de la machine pour l'exécution. Chaque cycle machine utilise 12 périodes d'horloge. Si la fréquence du CPU est de 12 MHz, le temps nécessaire pour effectuer des 256 itérations est 512 μ s (microsecondes).

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
            
    FIN

Schéma d'une minuterie par le programme.

E-5. logiciels imbriqués délai de trois registres R0, R1 et R2.

Afin de rendre délai de logiciels pour plus que le second a à voir avec l'imbrication des boucles. La figure montre un boucles imbriquées avec les registres R0, R1 et R2. Dans ce système, chaque décrément du registre R1, le registre R0 est décrémenté 256 fois, et pour chaque diminution de R2, R1 a fait 256 itérations, de sorte que le résultat final est de 2 ^ 24 = 16777216 itérations. Le temps qui en résulte est d'environ 33.554432 secondes, selon les conditions décrites dans l'exemple précédent.

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

Pour déterminer le temps à changer les bits qui représentent les valeurs les plus importantes correspondant à R2.

puissance de calcul Wasted des timings CPU ou des retards dans le logiciel n'a de sens que le microprocesseur doit servir qu'à un processus. Le travail normal est d'utiliser des minuteries et des interruptions pour des tâches de synchronisation, et de laisser le CPU libre pour d'autres procédés.

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

Schéma d'un temporisateur logiciel avec trois enregistrements.
Loading
copyright © 2007-2024  www.alciro.org  All rights reserved.         
Share |