Introducere

Prezentarea pe scurt a proiectului:

  • Proiectul consta intr-o tabela de scor care primeste cifre de la o telecomanda si afiseaza pe un LCD scorul.
  • Scopul proiectului este sa de a avea posibilitatea de retine scorul unei partide de fotbal.
  • Este util in pentru meciuri din vacanta in care se joaca fotbal amator si datorita multor goluri este usor de tinut minte scorul

Descriere generală

Hardware Design

  • listă de piese

ATMEGA16(placa de baza):

Receptor IR TSOP1138:

LCD 16*2 alfanumeric

  • scheme electrice

Receptor IR:

Interfata LCD:

Placa de baza:

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare : win-avr, avr-gcc
  • (etapa 3) surse şi funcţii implementate: lcd.c, remote.c, main.c

1. Protocolul decodat este protocolul NEC :

a) semnalul primit de la receptor (1 sau 0 logic):

b) portocolul care desmneaza aparatul de la care a venit semnalul (bitii de adresa) si comanda data de acesta (bitii de comanda)


2) functiile folosite pentru decodarea semnalului:

void ResetIR(); in cazul aparitiei unei erori reface starea initiala(sterge orice date primite: adrese comenzi)

void RemoteInit(); activeaza intreruperile, seteaza timer-ul si vectorul pe care se vor primi adrese si comenzi

unsigned char GetRemoteCmd(char wait); dupa executarea unei rutine de tratare a intreruperii (la primirea unei comenzi corecte) se intoarce codul comenzii, altfel se intoarce (RC_NONE)⇒ nu s-a primit nimic sau un char. invalid


3) functiile pentru interfata cu LCD-ul:

void LCDInit(uint8_t style); functia de initializare a modulului LCD: activarea modului pe 4 biti, setarea porturilor I/O. void LCDWriteString(const char *msg); functia ce scrie un sir de caractere.

void LCDWriteInt(int val,unsigned int field_length); functia ce scrie un intreg void LCDGotoXY(uint8_t x,uint8_t y); functia ce plaseaza cursorul pe LCD

Low level:

void LCDByte(uint8_t,uint8_t); functia ce trimite un byte la LCD

#define LCDCmd ( c ) (LCDByte(c,0)) definitii pt a detecta daca byte-ul este comanda sau data

#define LCDData(d) (LCDByte(d,1))

void LCDBusyLoop(); functie ce asteapta ca LCD-ul sa execute oricare functiile de mai sus

Rezultate Obţinute

placuta finala :

Download

arhiva cu soft-ul : soft.zip

Bibliografie/Resurse

Interfata LCD si Receptorul IR (TSOP 1738 nu mai este in stocul magazinelor): using-ir-remote-with-avr-mcus

Programul de la care am pornit pentru decodare: using-ir-remote-with-avr-mcus-part-ii

Protocolul de decodare NEC : nec.htm

pm/prj2010/pgp/tabelascor.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