5.2. Struktur eines Programms in Assembler
Das folgende Programm zeigt den prinzipiellen Aufbau eines Programms in Assembler.
;************************************************* *********
; Beispiel Struktur eines Programms in Assembler
, Der Mikrocontroller 8051.
;
; Programm zu blinken alle Bits des Port 0
, Mit einer gewissen Zeit.
;
; Autor: Rafael Aranda
; Datum: 20-10-2009
: Version: 1.0
;************************************************* *********
$ NOMOD51
$ INCLUDE (REG51.INC)
Strukturname
STACK EQU 030H; Adresse Stapelzeiger
;*************************************
; Start Interrupt-Vektoren
;*************************************
Mit 0
ORG 0H; Source Code (Standort des ROM)
VECTOR: JMP START; Reset
VECTOR ORG +3 H; INT0
VECTOR ORG 0 BH; Timer 0
VECTOR ORG 13 H; INT1
VECTOR ORG ein BH; Timer 1
VECTOR ORG 23 H; Puerto Serie RI + TI
VECTOR ORG 2 BH, Timer 2
;********************************
; Aufgaben der ersten Vorbereitung
;********************************
ORG Vektor H 30
START: MOV SP, # STACK-1; Set Stapelzeiger
MOV PSW, # 00000000B; Wählt Register Bank 0
MOV P1, # 0H; Bereiten Hafen
;*******************
Major-Programm
;*******************
PROGRAMM: MOV P1, # 0H, setzen die Bits von Port 0 bis 0
CALL verzögern; Führen einer Verzögerung
MOV P1, # 0FFh, setzen die Bits von Port 0 bis 1
CALL verzögern; Führen einer Verzögerung
JMP Programm; nur bekräftigt, unendlich
;***************************
; Unterprogramm Timing
;***************************
DELAY: 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
ENDE