PROIECT 2012
Proiectele realizate in cadrul Laboratorului de SMP 2012, Fiecare echipa are de completat in pagina WIKI corespunzatoare proiectului in cadrul tabelului de mai jos, in functie de grupa de care apartine La o grupa se poate implementa o singura data un proiect.
Lista cu proiectele disponibile o gasiti AICI.
Punctaj Proiect
-
2p Pagina Wiki in format HTML cu capitolele create - poze(diferite stadii ale proiectului) + schema hardware + listing software (microcontroller + OpenWatcom la Z3)
-
5p Functionalitate proiect - punctaj in functie de cerintele cerute/realizate
-
1p Calitatea proiectului - cat de organizati ati fost in realizarea acestuia, cod format frumos, optimizari etc...
-
2p Nota individuala - participarea voastra in proiect, raspunsul vostru la intrebarile laborantului la presentarea proiectului
Cerinte general valabile:
- Toate proiectele se vor integra software si/sau hardware cu placa EV/Z3. Pentru integrarea hardware se va folosi portul serial al placii EV/Z3
- Logica software de baza se va regasi pe placa EV/Z3 si va fi realizata în C + inline assembly folosind template-ul OpenWatcom de la laborator
- Pagina de wiki trebuie sa contina o descriere a ce a realizat fiecare student in cadrul proiectului
- Daca nu puneti pe site alta schema de proiectare hardware se va folosi cea cu PIC16F628A pusa la dispozitie
- Wiki-ul trebuie updat ca sa vad stadii intermediare ale proiectului
Elemente de electronica
-
Pentru a vedea/comanda un pret estimativ a componentelor va propun www.conexelectronic.ro . Gasiti si alte magazine pe Maica Domnului.
-
Letconul ar trebui sa aiba cam 40W , nu mai mult de 60 oricum , iar fludorul la 1mm-1.5mm. Sa aveti si un voltmetru cu voi.
-
Va recomand inainte sa alegeti proiectul sa cititi cateva elemente de electronica de AICI.
2012_332AC_P2
Table of contents
2. Calculator de buzunar [edit]
2.1. I. Descrierea proiectului
2.2. II. Cerintele proiectului
2.2.1. Propunerile profesorului:
2.6. VI. Rezultate
2.7. VIII. Stare proiect
2.7.1. 12 aprilie 2012
Project Name [edit]
Calculator de buzunar [edit]
Implementat pe EV Z3
I. Descrierea proiectului
Aplicatia implementata reprezinta un calculator avand functionalitati de baza.
Calculatorul realizeaza operatii cu numere pozitive pe 16 biti in virgula fixa, cu o singura zecimala, denumite in continuare ShortFloat.
Operatiile implementate sunt: adunare, scadere, inmultire, impartire, modul dupa impartire (mod).
Aplicatia a fost dezvoltata pentru placa educationala Elettronica Veneta Z3
http://www.elettronicaveneta.com/education/
Intrarile aplicatiei se introduc de la tastatura placii de dezvoltare.
Iesirile aplicatiei sunt afisate pe display-ul 16x1 al placii de dezvoltare.
O poza face cat 1000 de cuvinte.
Functionalitatea tastaturii este prezentata in tabelul de mai jos
C |
NULL |
. | R |
* | / | % | = |
8 | 9 | + | - |
4 | 5 | 6 | 7 |
0 | 1 | 2 | 3 |
II. Cerintele proiectului
- Implementarea unei arhitecturi de tip automat cu numar finit al starilor, de tip Moore
- Reprezentarea numerelor ca obiecte ale structurii "shortfloat" : un intreg pentru partea stanga a virgulei, pe 16 biti, si un intreg in partea dreapta a virgulei, limitat totusi intre 0 si 9 . Numerele reprezentate sunt pozitive.
- Implementarea unor functii de prelucrare a datelor introduse, in scopul returnarii unor siruri de caractere afisabile pe LCD.
- Afisarea unor mesaje de eroare in cazul operatiilor nepermise : Impartire la 0, restul impartirii la 0
Propunerile profesorului:
- folosesti template-ul C
- operatii + - / * mod
- emulezi calculatorul din windows - dai 2 numere intregi + operatia - sa continui cu rezultatul
- emulezi operatii float cu o zecimala - adunare scadere inmultire
- inmultirea sa fie realizata cu inline assembly.
III. Mod de utilizare
Aplicatia afiseaza un mesaj de inceput, apoi asteapta apasarea unei taste pentru initializarea modului de calcul.
La initializare este afisat pe LCD valoarea 0.
Utilizatorul poate introduce:
- o cifra, reprezentand LSD-ul numarului 1
- o virgula, considerandu-se astfel ca numarul 1 este subunitar
- o operatie, considerandu-se astfel ca numarul 1 este 0
IV. Componente necesare
Hardware:
- placa de dezvoltare EV Z3
- conexiune seriala PC - placa
- fisier binar + modZ3 pentru incarcarea programului pe placa
- compilator OpenWatcom + template laborator SMP Mihai Matei
- Windows 3.1
V. Proiectare software
Aplicatia are la baza o arhitectura de tip automat Moore. Din fiecare stare se poate realiza o tranzitie catre alta stare atunci cand sunt indeplinite conditiile impuse. Fiecare stare are asociate iesiri, materializate prin imprimarea de siruri de caractere pe LCD-ul placii de dezvoltare.
Functii folosite din template-ul de laborator:
- kIo.ReadKey() - returneaza codul tastei apasat
- kIo.DisplayBuffer(char*) - imprima pe LCD un sir de caractere terminat cu 0_ascii.
- void make_string(char* returned_string, struct shf* sf,int dec_active);
Converteste un numar de tip ShortFloat ( int left; int right; ) intr-un sir de caractere si intoarce acest rezultat in returned_string. dec_active este doar un indicator de prezenta a virgulei. - char convert (int key) - intoarce codul ascii al tastei returnate de catre kIo.ReadKey()
- void arrayReverse ( char* arr) - inverseaza ordinea caracterelor din sirul specificat
- int arraySize ( char* arr) - intoarce numarul de caractere din sirul specificat
Numerele folosite sunt obiecte de tip shortfloat, structura fiind prezentata mai jos
struct shf{
int left;
int right;
};
Trebuie observat faptul ca partea stanga a unui numar se reprezinta ca un intreg pe 16 biti, cu bit de semn, numerele calculate vor merge pana la 32767. Overflow-ul nu va fi tratat in cazul acestei aplicatii, programul permitand returnarea celei mai putin semnificative parti.
Operatiile implementate:
- Adunare
- Scadere
- Inmultire
- Impartire
- Modul dupa impartire
VI. Rezultate
- La o sesiune de debug
- Mod real - %TBA 16 mai 2012
VII. Cod Sursa
After you have presented your project at the laboratory (week 13-14) you will add all your sources here. Any hardware simulation used, code archive and so on.
VIII. Stare proiect
12 aprilie 2012
- Am citit documentatia placii de dezvoltare
- Am studiat template-ul C folosit in laborator
4-12 mai 2012
- Dezvoltatea propiu-zisa a aplicatiei
- 500 de linii de cod (~90% din numarul total de linii)