Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » tehnologie » electronica electricitate
Proiect la "Programarea Microcontrolerelor" - SISTEM DE AFISARE CU LED-URI

Proiect la "Programarea Microcontrolerelor" - SISTEM DE AFISARE CU LED-URI


Facultatea de "Inginerie Mecanica"

Specializarea Mecatronica



Proiect la "Programarea Microcontrolerelor"

Tema de proiect

SISTEM DE AFISARE CU LED-URI

Sa se proiecteze programele de functionare, in limbaj de asamblare, pentru un sistem de comanda cu microcontroller al unei matrice de LED-uri de forma 8x8 monocolor, a carui schema hardware generica este data mai jos:


Randurile matricei de LED-uri sunt legate la portul extern 1 al sistemului IMC500, iar coloanele matricei sunt legate la portul extern 2 al sistemului IMC500. Aprinderea unui LED presupune punerea pe "1" logic a randului si pe "0" logic a coloanei la intersectia carora se afla LED-ul.

Programele de functionare trebuie sa realizeze urmatoarele functii:

Deplasarea unui text dat pe afisor, cu posibilitatea de comanda de pe tastatura unui PC, pentru urmatoarele functii:

o       selectarea sensului de deplasare (stanga, dreapta, sus, jos);

o       Selectarea vitezei de deplasare in minim 2 trepte (fast, slow);

o       Pornirea si oprirea afisarii;

o       Testarea afisorului (aprinderea tuturor LED-urilor)

Deplasarea grafica pe afisor, cu aceleasi functii de mai sus.

Observatie: In program se vor implementa minim 2 efecte de deplasare pentru text si minim 2 pentru grafic, la alegere.

Proiectul va contine:

Scurta introducere in care este prezentata solutia de afisare.

Schema hardware a sistemului, din care sa rezulte modul de conectare a randurilor si coloanelor afisorului la porturile externe.

Modul de utilizare a resurselor microcontroller-ului 80C552 (timer-e, comunicatie seriala) si sistemului IMC500.

Descrierea efectelor de deplasare alese si a algoritmilor utilizati pentru implementare.

Protocolul de comunicatie intre PC si sistemul de afisare (comenzile alese).

Programele de functionare scrise in limbaj de asamblare.

Fisierul listing.

Privind evolutia istorica a operatiei de comanda a unui proces putem contura imaginea unui microcontroller. Un controller este un sistem folosit pentru a comanda si a prelua stari de la un proces sau un aspect al mediului inconjurator. La inceput un controller era un echipament de mari dimensiuni. Dupa aparitia microprocesoarelor dimensiunile controller-elor s-au redus. Procesul de miniaturizare a continuat, toate componentele necesare unui controller au fost integrate pe acelasi chip. S-a nascut astfel calculatorul pe un singur chip specializat

pentru implementarea operatiilor de control; acesta este microcontroller-ul. Un microcontroller este un circuit realizat pe un singur chip care contine tipic:

unitatea centrala;

generatorul de tact (la care trebuie adaugat din exterior un cristal de cuartsau in aplicatii mai putin pretentioase, un circuit RC);

memoria volatila (RAM); memoria nevolatila (ROM/PROM/EPROM/EEPROM);

dispozitive I/O seriale si paralele; controller de intreruperi, controller DMA, numaratoare/temporizatoare (timers), covertoare A/D si D/A, etc.;

periferice.


Module de comunicatii seriale

Comunicatia seriala este o metoda bine agreata si in contextul MC

deoarece ofera compatibilitate cu o gama extinsa de dispozitive si necesita un numar minim de fire, implicit un numar minim de conexiuni (pini putini).

In transferul serial de date este necesar sa se cunoasca inceputul si sfarsitul informatiei transferate. Pentru a identifica cele doua coordonate emitatorul si receptorul trebuie sa fie sincronizati. Sincronizarea se poate realiza prin trei metode, dintre care numai doua sunt folosite in MC, urmand sa le consideram doar pe acestea in continuare. Oricare din metode presupune ca durata unui bit este

aceeasi atat la emitator cat si la receptor (este folosit acelasi semnal de ceas pentru serializarea informatiei). Numarul de biti transmisi intr-o secunda reprezinta rata de transfer numita baud rate; aceasta se masoara in biti/secunda (bps). Durata unui bit este 1 baud rate).

Module Timer

Natura aplicatiilor pentru care s-a nascut microcontroller-ul implica o multitudine de functii de timp puse la dispozitia utilizatorului prin module de timp numite timer. Un MC este echipat in mod obligatoriu cu un astfel de modul mai mult sau mai putin complex. Un sistem timer obisnuit pune la dispozitie un set de functii implementate pe baza unui numarator liber central si a unor blocuri functionale pentru fiecare functie in parte. Timer-ul are in structura sa, dintre toate celelalte subsisteme, cele mai multe registre. Toate functiile unui timer pot genera

intreruperi independente; fiecare are controlul propriu si propriul vector de intrerupere.

Modulele timer complexe sunt construite cu arii de numarare programabile (PCA). Pentru aplicatii speciale in timp real s-au construit module timer cu unitate aritmetica si logica proprie.

Timer-ul este folosit pentru a masura timpul si pentru a genera semnale cu perioade si frecvente dorite. Timer-ele nu sunt doar circuite cu functii de temporizare; in modulul timer sunt implementate cateva mecanisme care pun la dispozitia utilizatorului functii specifice. Mecanismul de comparare permite controlul unor semnale de iesire; mecanismul de captura permite monitorizarea unor semnale de intrare; numaratoarele interne permit generarea de referinte de timp interne, necesare in bucle de intarziere, multiplexarea diferitelor sarcini software, s.a. Timer-ul poate fi folosit practic pentru orice functie de timp, inclusiv

generarea unor forme de unda sau conversii D/A simple. Functiile oferite de un timer sunt:

  1. Captura la intrare (IC - input capture) - aceasta functie se bazeaza pe posibilitatea de a stoca valoarea numaratorului principal la momentul aparitiei unui front activ al unui semnal extern. Facilitatea permite masurarea latimii unui impuls sau a perioadei unui semnal. Facilitatea poate fi folosita si ca referinta de timp pentru declansarea altor operatii.
  2. Comparare la iesire (OC - output compare) - se compara la fiecare impuls de ceas valoarea numaratorului principal cu cea a unui registru. Daca se constata egalitate, in functie de programarea anterioara pot avea loc urmatoarele evenimente: declansarea unei actiuni la un pin de iesire (optional), setarea unui flag intr-un registru sau generarea unei intreruperi pentru unitatea centrala (optional). Functia este folosita pentru a genera intarzieri sau pentru a genera o forma de unda cu valori dorite pentru frecventa si pentru factorul de umplere.
  3. Intreruperi in timp real (RTI - real-time interrupt) - intr-un sistem exista sarcini care trebuiesc executate periodic sau care nu permit depasirea unui interval limita intre doua executii. Aceste sarcini sunt lansate ca rutine de tratare a intreruperii generate de timer.
  4. COP (computer operating properly) watchdog- aceasta functie este folosita pentru a reseta sistemul in cazul in care din erori de programare (bugs) sau erori in desfasurarea programului datorate perturbatiilor mediului, registrul COP nu este accesat intr-un interval de timp prescris.
  5. Acumulare de pulsuri (pulse accumulator) - este functia folosita pentru a numara evenimentele ce apar intr-un interval de timp determinat sau pentru a masura durata unui impuls.

SISTEMUL IMC500

Pentru a deplasa textul de pe sistemul de afisare se folosesc doua trepte de viteze (Fast-Slow); doua sensuri de deplasare: stanga-dreapta, cu posibilitatea de comanda de pe tastatura unui PC; pornirea si oprirea afisarii; testarea afisorului se face prin aprinderea tuturor led-urilor.

Taste folosite:

S - 53H-start A-41H-stop

F -46H - deplasare rapida W -57H - deplasare inceata

R-52H deplasare dreapta G-47H- deplasare stanga

U-55H-deplasare sus D-44H-deplasare jos

L-4CH-aprind tot





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.