Programarea Microcontrollerelor în Limbaj de Asamblare

Previzualizare laborator:

Extras din laborator:

1. Denumirea lucrarii: Programarea microcontrollerelor in limbaj de asamblare

2. Obiectivele lucrarii

- Familiarizarea cu un cross assembler

- Deprinderea cunostintelor necesare pentru crearea unui proiect software in limbaj de asamblare

- Analiza catorva programe simple in limbaj de asamblare cu microcontrollerul HC11

3. Descrierea cross-assembler-ului 2501 AD

3.1. Fisierele de lucru

Programul sursa propriu-zis in limbaj de asamblare este localizat de obicei intr-unul sau mau multe fisiere cu extensia .ASM.

In urma asamblarii, rezulta un fisier, cu extensia .OBJ continand asa-numitul “cod-obiect” – care contine deja programul in limbaj masina, dar inca nu este “cod executabil”. Transformarea finala din cod obiect in cod executabil o face linker-ul. Procesul este prezentat schematic in figura 1.

Figura 1. Schema de procesare a informatiei in cursul asamblarii

Linker-ul produce fisierul cu cod executabil si actualizeaza fisierele de listare .LST cu valorile finale ale variabilelor definite simbolic (adrese de salt, etc.).

In cazul microcontrollerului HC11, fisierul de iesire al linker-ului are de obicei extensia S19.

3.2. Principalele directive recunoscute de asamblorul 2501 AD

O “directiva” este o comanda adresata assembler-ului.

Directivele sunt inserate in fisierul sursa, exact ca si instructiunile de program, dar nu genereaza in mod direct cod, ci doar influenteaza procesul de generare a codului si de listare.

Cross assembler-ul 2501 AD admite o lista lunga de directive, dar in lucrarea de fata vom prezenta doar cateva din cele mai importante.

a. Directiva EQU – definire ecuatie

Cu ajutorul acestei directive se definesc nume simbolice pentru constante. Un exemplu tipic de utilizare a acestei directive este pentru definirea adreselor resurselor (registrele interfetelor, porturi de intrare-iesire etc.) unui microcontroller.

Sintaxa generala de invocare a adirectivei EQU este urmatoarea:

NUME_SIMBOLIC EQU constanta_numerica ;comentariu

Exemple:

REGBASE EQU $0000 ;adresa de inceput

PORTA EQU REGBASE+0

DDRA EQU REGBASE+1

DDRB EQU REGBASE+2 ;etc.

Nota: Numele simbolic incepe intotdeauna din coloana 0 a liniei de program

b. Directiva INCLUDE

Sintaxa:

INCLUDE <filename>

Are ca efect includerea in fisierul sursa curent, in pozitia curenta, continutul unui fisier sursa specificat.

Scopul acestei directive este sa permita organizarea modulara a fisierelor sursa, in module refolosibile.

De exemplu toate adresele resurselor asociate cu un anumit microcontroller pot fi definite intr-un fisier distinct. Acest lucru este util atunci cand se lucreaza cu “familii” de microcontrollere, care au resursele amplasate diferit in harta memoriei si uneori chiar denumite diferit. In aceste cazuri se creaza fisiere distincte cu definitiile resurselor, care se invoca ulterior cu ajutorul directivei INCLUDE.

Observații:

O lucrare de laborator, pe tema aferenta cursului de "Proiectarea sistemelor cu microprocesoare", la Facultatea de Automatica din Universitatea Dunarea de Jos din Galati.

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Programarea Microcontrollerelor in Limbaj de Asamblare.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
7/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
9 pagini
Imagini extrase:
9 imagini
Nr cuvinte:
1 476 cuvinte
Nr caractere:
9 117 caractere
Marime:
37.17KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Automatică
Predat:
la facultate
Materie:
Automatică
Profesorului:
Ioan Susnea
Sus!