5.2. Structure d'un programme en assembleur
Le programme suivant montre la structure de base d'un programme en assembleur.
;************************************************* *********
Exemple de structure d'un programme en assembleur;
, Le microcontrôleur 8051.
;
; Programme à clignoter tous les bits du Port 0
, Avec un certain temps.
;
; Auteur: Rafael Aranda
; Date: 20-10-2009
: Version: 1.0
;************************************************* *********
NOMOD51 $
$ INCLUDE (REG51.INC)
Structure nom
STACK EQU 030H, l'adresse du pointeur de pile
;*************************************
; Début vecteurs d'interruption
;*************************************
L'utilisation de 0
ORG 0H; Code Source (Situation de la ROM)
VECTEUR: JMP START; Reset
VECTOR ORG 3 H; INT0
VECTOR ORG 0 BH; Minuteur de 0
VECTOR ORG 13 H; INT1
VECTOR ORG une BH; Timer 1
VECTOR ORG 23 H; série Puerto RI + TI
VECTOR ORG 2 BH, Timer 2
;********************************
; Tâches de préparation initiale
;********************************
Vecteur h 30 ORG
START: MOV SP, # STACK-1; Set pointeur de pile
MOV PSW, # 00000000b; Sélectionne registre banque 0
MOV P1, # 0H; port Préparer
;*******************
Grand programme
;*******************
PROGRAMME: MOV P1, # 0H; Mettez les morceaux de Port 0 à 0
APPEL DE RETARD; Effectuer un retard
MOV P1, # 0FFh; Mettez les morceaux de Port 0 à 1
APPEL DE RETARD; Effectuer un retard
PROGRAMME JMP; Réaffirmant l'infini
;***************************
; Sous-programme de synchronisation
;***************************
RETARD: MOV R2, # 7FH
RET_3: MOV R1, # 0FFh
RET_2: MOV R0, # 0FFh
RET_1: DJNZ R0, RET_1
DJNZ R1, RET_2
DJNZ R2, RET_3
RET
FIN