Gheorghe-Adrian BRĂNESCU - Joc X & 0 pe LCD
Autorul poate fi contactat la adresa: Login pentru adresa
Introducere
Proiectul presupune implementarea unui joc tip X & 0 pe un ecran LCD.
Scopul acestuia este de a permite ca doi utilizatori sa joace unul impotriva celuilalt (for fun).
Am fost atras de ideea de a interfata si controla un LCD.
Proiectul este util pentru mine pentru a aprofunda notiunile necesare indeplinirii obiectivelor prezentate mai sus, iar pentru utilizatori reprezinta un joc clasic distractiv.
Descriere generală
Cursorul va fi controlat cu cele 4 butoane de directie (cu rolul de sageti), iar confirmarea casutei marcate va fi facuta cu un buton OK.
In functie de ce jucator urmeaza la rand, o casuta din matricea (3 x 3) afisata pe LCD va fi marcata cu X sau cu 0.
Cand unul dintre jucatori va obtine 3 simboluri identice pe linie, coloana sau diagonala va castiga. Altfel, daca matricea se umple va fi egal.
Hardware Design
Placa de test
LCD DEM 16481 SYH-LY (alfanumeric 4×16)
Push button: 5 buc → up, down, right, left, ok
Barete pini (1×16 - 2 buc pentru LCD, 1×6 pentru butoane)
Conectori mama-mama (12 buc pentru LCD, 6 pentru butoane)
Fire legaturi
Software Design
Programmer's Notepad (editare)
WinAVR (compilare)
Rezultate Obţinute
Concluzii
Cea mai grea parte a proiectului a fost intelegerea “protocolului” de interfatare a LCD-ului. Un alt obstacol a reprezentat reglarea contrastului (initial am incercat valori pentru tensiune mentionate in datasheet si nu reuseam sa obtin scrisul inteligibil, ca intr-un final sa descopar ca punerea la masa a pinului de contrast oferea o calitate destul de buna a contrastului). Per total, proiectul este unul foarte accesibil si la indemana oricui e dispus sa citeasca o documentatie de doar cateva pagini.
Ca suport de plecare am folosit biblioteca “lcd.h” scrisa de asistentii de la PM pe care am adaptat-o restrictiilor impuse de controllerul (de fapt sunt 2 drivere responsabile fiecare pentru cate 2 linii - 1 si 3, respectiv 2 si 4) LCD-ului meu: diferente intre Enable cycle time (T_cycE), adresele de inceput ale DDRAM, CGRAM, adresele liniilor ce alcatuiesc display-ul, incompatibilitati intre formatul instructiunilor etc.
Download
Bibliografie/Resurse
Resurse Hardware
-
Resurse Software
-