Cel mai popular joc din copilarie.Pe romaneste,X si 0.Regurile sunt simple.Cred ca toata lumea le cunoaste,dar pentru cei care nu au mai jucat niciodata,iata pe scurt regurile:
Proiectul contine module hardware:
Si software:
Diagrama Bloc:
Piesele folosite:
Dispunerea pinilor
Matricea de leduri
Schema placii de baza (varianta cu card SD si ISP)
Exemplu de definitii:
#define COL1_ON PORTB&=~(1<<0) #define COL1_OFF PORTB|=(1<<0) #define ROW1_ON PORTA|=(1<<0) #define ROW1_OFF PORTA&=~(1<<0)
Pentru deplasarea unui led pe matrice (folosit pentru simularea in Proteus):
while (1){ PORTD_Val = PIND; if (!(PORTD_Val&(1<<0))) ii--; if (!(PORTD_Val&(1<<1))) ii++; if (!(PORTD_Val&(1<<2))) jj--; if (!(PORTD_Val&(1<<3))) jj++; if(ii<0) ii=1; if(ii>4) ii=4; if(jj<0) jj=0; if(jj>4) jj=4; aprinde(ii,jj); _delay_ms(10); }
Rezultatele obtinute sunt totusi altele referitor la jocul de X si 0.Datorita faptului ca in Proteus nu se poate simula foarte bine si ca am avut unele probleme tehnice cu placuta(conectarea matricei in ordinea corecta,lipituri mai slabe), am reusit totusi sa afisez un mic text (chiar si cu un desen): I ♥ P M
Din punct de vedere hardware, butoanele nu le-am mai conectat intru-cat pentru afisarea textului nu aveau nici un folos.
Un filmulet: http://www.youtube.com/watch?v=IIj5QXisVtI
Partea cea mai dificila a fost descoperirea pinilor pentru aprinderea in ordine a matricei(am descoperit ordinea corect abia dupa ce terminasem de lipit si am vazut ca nu merge),dar si faptul ca in Proteus nu am putut simula jocul de X si 0.Asta , din cauza faptului ca nu se pot aprinde 2 leduri pe randuri si coloane diferite,adica nu pot sa aprind (0,0) cu (1,1).Pe placuta a mers,dar in Proteus nu.
In concluzie proiectul pana la momentul predarii afiseaza acel text pe matrice,dar i se poate face “tunning” pentru implementarea unui sau mai multor jocuri(chiar si in acelasi timp):x si 0, snake,collision avoidance,shooter,etc.Se mai poate adauga cu usurinta(in sensul ca raman destui pini disponibili) un display pentru scor,vieti ramase,etc.
Codul sursa il gasiti aici: 332cb_olteanu_marius.zip