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ă

  • Schema bloc:


pm_proiect.jpg

  • 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

  • Lista de piese:
  1. Placa de test
  2. LCD DEM 16481 SYH-LY (alfanumeric 4×16)
  3. Push button: 5 buc → up, down, right, left, ok
  4. Barete pini (1×16 - 2 buc pentru LCD, 1×6 pentru butoane)
  5. Conectori mama-mama (12 buc pentru LCD, 6 pentru butoane)
  6. Fire legaturi
  • Schema bloc LCD:


schema_bloc_lcd.jpg

  • Schema electrica:



  • Diagrame semnal:





Software Design

  • Mediu de dezvoltare:
  1. Programmer's Notepad (editare)
  2. WinAVR (compilare)

Rezultate Obţinute


proiect_joc.jpg

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

  1. Arhiva proiectului:

branescu_adrian_333ca.zip

Bibliografie/Resurse

Resurse Hardware

Resurse Software

  1. Tutorial interfatare LCD alfanumeric: http://cs.curs.pub.ro/wiki/pm/lab/lab1
pm/prj2015/avoinescu/actanonverba.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0