Scopul acestui proiect este implementarea unui calculator ce efectueaza urmatoarele operatii aritmetice:
Utilizatorul are la dispozitie doua tastaturi de la care va introduce numerele asupra carora se efectueaza calculele si operatiile ce vor fi realizate. Pe ecranul LCD vor fi afisate cifrele pe masura ce ele sunt introduse, un rezultat partial care tine cont de prioritatea operatiilor si rezultatul final atunci cand se apasa tasta egal.
Componentele utilizate sunt:
Schema electrica pentru conectarea tastaturilor si LCD-ului este urmatoarea:
Tastaturile au avut pinii asezati intr-o ordine diferita fata de modul normal in care primii pini corespund coloanelor iar urmatorii liniilor. Asadar am avut urmatoarele asocieri intre linii/coloane si pinii tastaturilor:
Conectarea LCD-ului am facut-o asa cum este redat in schema. De asemenea a conectat pinii 0 si 2 la masa iar pinul 1 la Vcc.
Mediul de dezvoltare Ubuntu 10.04.
Pentru afisarea pe LCD am utilizat API-ul din laboratorul 1.
Pentru asigurarea interfetei cu tastatura:
Maparea tastelor este urmatoarea:
Calculatorul implementat de mine tine cont de prioritatea operatiilor atunci cand calculeaza. Pe ecran va fi afisat ultimul rezultat conform prioritatilor (de exemplu daca s-a introdus 1 + 2 * 3 * → se va afisa 6). Deasemenea se permite afisare unui numar cu virgula.
Algoritmul dupa care functioneaza calculatorul:
In cazul unei operatii nepermise (impartire la zero, arcsin si arccos in afara [-1, 1]) se afiseaza “ERROR” si se asteapta resetarea. In urma operatiei de resetare se va afisa “0” pe ecran si calculul anterior va fi abandonat.
Proiectul este functional, se pot efectua operatii aritmetice asupra numerelor introduse de la tastatura iar rezultatul este afisat pe ecran. Am adaugat pozele de mai jos:
LCD-ul:
Tastatura:
Tot calculatorul:
Proiectul a fost interesant dar mi-a ocupat destul de mult timp deoarece am avut probleme la conectarea LCD-ului pentru ca nu se aprindea dar si la conectarea tastaturilor pentru ca au fost incurcati pinii, nu au fot pusi in ordine coloane apoi linii.