PROIECTE 2011
Proiectele realizate in cadrul Laboratorului de SMP, 2011, le gasiti mai jos, Fiecare echipa are de completat in pagina WIKI corespunzatoare proiectului sau capitolele existente.
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 . Mi-a fost recomandat si mie de ceilalti laboranti.
-
Pentru conectarea la porturile de I/O trebuie sa izolati galvanic folosind optocuploare, ex LTV817 - puteti sa cautati pe site, si rezistente sa limiteze curentul maxim la 5mA U=R*I si trebuie avut in vedere ca rezistentele sa reziste la puterea la care e proiectat circuitul P=U*I...
-
Pentru alte elemente elecronice puteti folosi diode 1N4007, tranzistori BD139/140 de putere mare. Binenteles ca nu sunteti limitati la folosirea acestora, e doar o propunere.
-
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.
2011_P16
Calculator de buzunar
Project Description
Pentru proiect avem de implementat un calculator cu ajutor placii Z3. Calculatorul va implementa urmatoarele operatii:
- adunare, scadere, inmultire, impartire, modulo
- sinus, cosinus
- logaritm in baza 2 si in baza 10
Project Requirements
Trebuie sa emulati Calculatorul din Windows.
Operatii: + - * / % intreaga
logaritm - intreg (baza 2 10)
cos sin
La logaritm ma intereseaza ce algoritm folositi. La cos/sin folositi tabele de cosinus si sinus (atentie la memoria maxima folosita - << 32-8KB)
User Flow
Se incarca programul ce se vrea rulat cu metoda binecunoscuta de la laborator apoi facem pasii Go->0800-0000->CHG/RET si va incepe executia programului.
Datorita insuficientei de butoane avute la dispozitie vom face implementarea operatiilor +,-,/,*,% intr-un program iar in altul operatiile sin, cos, log2, log10;
Din aceasta clipa utilizatorul poate folosi oricare din functiile implementate in programul respectiv.
Implementarea butoanelor:
Pentru program:
0->9 tastele numerice;
A-> '+' ;
B-> '-' ;
C-> '*' ;
D-> '/' ;
E-> '%' ;
F-> 'CE';
arrow-right-> 'sin';
arrow-left-> 'cos';
CHG/RET-> "=" ;
Tastatura avuta la dispozitie si displayul LCD :
Required components
Implementarea tastelor pentru Program1:
Din platform_io.h am folosit functia ReadKey pentru citirea inputurilor is DisplayString pentru afisarea datelor prelucrate.
Software Design
static char cod[19]={'0','2','4','6','8','A','C','E','c','l','1','3','5','7','9','B','D','F','r'};
return cod[key];
}
{
case 'A' : { operatie='p'; nr1=nr2; nr2=0; break;}
case 'B' : { operatie='m'; nr1=nr2; nr2=0; break;}
case 'C' : { operatie='i'; nr1=nr2; nr2=0; break;}
case 'D' : { operatie='d'; nr1=nr2; nr2=0; break;}
case 'E' : { operatie='r'; nr1=nr2; nr2=0; break;}
case 'F' :{nr2=0;nr1=0;break;}
case 'r' :{s=sin[nr2];nr2=0;i=1;break;}
case 'l' :{s=sin[90-nr2];nr2=0;i=1; break;}
case 'c' : {switch (operatie)
{
case 'p': {nr2=nr2+nr1;break;}
case 'm': {nr2=nr1-nr2;break;}
case 'd': {nr2=nr1/nr2;break;}
case 'r': {nr2=nr1%nr2;break;}
case 'i': {nr2=nr1*nr2;break;}
}break;}
default :{
nr2=nr2*10 + (c-'0');
}
}
Results [edit]
Consider ca aceste aspecte au fost deja acoperite in capitolele precedente.
Download [edit]
Arhiva cu schema hardware + cod microcontroller + tot proiectul OpenWatcom.
Arhiva va contine 2 directoare (1 singur pentru proiecte doar software)
Hardware design - schema uC + codul folosit pentru a genera fisierul .HEX
Software design - template-ul Open Watcom folosit
Status
20 Aprilie-> in sfarsit am gasit o placa Z3 care functioneaza corect :D
27 Aprilie-> am implementat convert si am reusit sa citim de la tastatura + DisplayString afiseaza corect pe LCD
11 Mai-> Program este terminat switch-case-ul functioneaza :)
17 Mai-> Finalizat Program si testat proiectul :D:D