Extras din laborator
Scopul lucrării:
- Studierea principiilor de scriere a programelor in limbajul C. Definirea functiei main si a functiilor de preluare a intreruperilor.
- Utilizarea codului resurselor dezvoltate in limbajul assembler in limbajul C;
- Intelegerea modului de localizarea a resurselor (variabile si subrutine);
- Modulul de utilizare a registrilor de catre compilatorul C si transmiterea de parametrii.
Sarcina lucrării:
Sa se proiecteze un sistem bazat pe microcontroler care va detecta tasta apasata pe o tastatura 4x4 conectata la pinul de intrerupere extern si un port GPIO si sa afiseze tasta la un afisor cu sapte segmente, In fundal se va incrementa valoarea unui contur care se va afisa la alt afisor cu 7 segmente. Perioada de incrementare se va asigura utilizind functia _delay_ms();
Date teoretice:
Limbajul C este un limbaj de programare structural, care permite scrierea de programe, prin
identificatori, cuvinte cheie, numere, operatori, care se organizeaza intr-un program urmind
anumiten reguli de sintaxa.Limbaj ul C, deși este un limbaj (de nivel înalt, păstrează contach cu
partea hardware a unui microcontroller. Printre facilitățile pe care le oferă limbajul C putem
enumera : facilitate pentru manipularea biților, a câmpurilor de biți, manipularea funcțiilor cu
pointeri la funcții precum și adresarea directă a memorie.
Structurile de date pot fi:
Locale - sunt vizibile doar in cadrul blocului in care sunt definite;
Globale - sunt "vazute din orisicare punct al programului;
Resursele globale se vor localiza in memoria de programe, , sau in memoria operativa.
Structurile locale se localizeaza in zona stivei si durata 'lor de viata este limitata de durata
executiei blocului in care sunt defmite.Vor exista 8 tipuri predefinite ale variabilei. O variabila
este un obiect, care presupune ca-si schimba valoarea sau poate fi modificata pe parcursul
executiei programului.
Pentru limbajul C variabila va avea urmatoarele proprietati:
Nume (identificatorul obiectului);
Adresa (locatia la care a fost rezervata memoria);
Tip (volumul de memorie rezervat si modul de lucru cu variabila);
Tipurile de variabile de baza:
signed char (1byte) -128 127
unsigned char (1 byte) 0 255 (ASCII)
signed int (2 bytes) -32768 322767
unsigned int (2 bytes) 0...65535
short int (2 bytes) jumatate de cuvint masina
long int (4 bytes) cuvint masina dublu
float (4 bytes) 76E-38 3.40e +38
doublefloat (8 bytes) ]. 7E-308 1, 7E+308
Specificatori in limbajul C:
Extern (declaratia definita in exterior si permite referirea catre aceasta)
Auto (variabila se aloca memorie in stiva)
Static (variabila se aloca memorie in, regiunea heap)
Register (variabilei se aloca un registru de uz general)
Const (variabilei se aloca memorie din memoria de progam)
Volatile (se atribuie ,variabilelor ca se presupun ca. sunt modificate din mai multe procese
deferite)
Preview document
Conținut arhivă zip
- Transferul parametrilor catre subrutina ASM - Chemarea subrutinei ASM in C.docx