2012_332AB_P4

Project Name [edit]

  [edit]

I. Project Description

Tema proiectului consta in adaugarea unui afisaj placii EV/Z3.

Vom atasa placutei Z3 un afisaj grafic extern diferit de cel prezent pe ea, de o dimensiune mai mare. Folosim pe post de display un ecran de nokia 1100 care se va conecta la PIC prin 4 pini. Placuta va primi date pe seriala de la EV/Z3 dupa care v-a afisa pe ecran un mesaj corespunzator datelor trimise. LCD-ul poate functiona in 2 moduri fie va anima un mesaj care cicleaza predefinit de utilizator fie se vor scrie caractere introduse de la tastura EV/Z3-ului.

Pentru alimentarea placutei am facut 2 tipuri de alimentari una pe miniusb si una pe baza de incarcator.

 

II. Project Requirements

Pentru implementarea hardware am folosit schema in Proteus , cea recomandata.Pe langa aceasta am adauga un afisaj LCD de Nokia 1100 care comunica cu PIC-ul , trebuie mentionat ca PIC-ul folosit nu este 16F628A ci 16F628 dar functionarea lui este aceeasi si nu ar trebui sa fie probleme.Pentru conectarea LCDului de Nokia la PIC a trebuit sa adaugam cateva rezistente deoarece acesta functioneaza la 3.3V la fel si pentru alimentarea lui a trebuit sa adaugam un divizor de tensiune.Pinii folositi pentru conectarea la LCD sunt RB4-RB7(voi introduce o schema in care voi detalia exact ce si cum).Teoretic la final dispozitivul va fi capabil sa afiseze ciclic un text pe care l-am introdus anterior in programul ev/z3 si pe care acesta il v-a transmite serial , sau alt mod in care e programat PICul sa functioneze e sa afiseze caracterele trimise de la tastatura Ev/z3.

 

 

Theacher Proposal
 - placa cu PIC, 50*100, placa de test fludor.  LCD - 2 linii 8 caractere.

Soft: Placa Z3 va anima ceva pe LCD folosind un protocol de comunicatie.

set linie coloana cod_ascii - astra trimiteti prin serial

Sa animati un text care cicleaza.

Sau un joculet (omulet care se misca cu tastatura Z3)

III. User Flow

Aceasta gen de aplicatie este foarte raspandita in ziua de astazi in care vedem nenumarate reclame , animand texte care cicleaza , chiar si in autobuz sau la metrou primim informatii intr-un astfel de mod despre statia care urmeaza sau data sau orice fel de informatii.Iar faptul ca se pot introduce si mesaje aleatoare de la tastatura reprezinta un plus fiindca orice isi poate afisa mesajul dorit , chiar daca acesta nu va fi animat.

IV. Required components

The hardware components used. List them and take a screenshot of them.

PIC16F628A

MAX232

mufa DB9

rezistente

condensatori

display nokia 1100

mufa mini usb

led verde

 Poza componente

La care se adauga LCDul de Nokia 1100 , rezistenele si respectiv cablurile.

V. Hardware Design

Aceasta este schema proteus dupa care a fost proiectata placuta.Se poate observa si modul in care functioneaza LCD-ul in simulare . Mentionez ca pentru a functiona aceasta schema este necesar fisierul PCF8814.dll care reprezinta driverul pentru Proteus de LCD Nokia 1100.

Schema Proteus

Pentru adaugarea LCD-ului in urma verificarii datashetului pentru acesta am folosit urmatoarea schema in ceea ce priveste rezistenele (divizorii de tensiune) pentru a fi siguri ca acesta primeste tensiuni in conformitate cu modul in care a fost gandit.Circuit pentru LCD

 Modul de conectare a pinilor pe LCD :

Pini LCD

Si respectiv tensiunile aferente :

Tensiuni LCD

 Si in final poze cu placuta completa :

Poze placa 1Poza placa 2

 

VI. Software Design

Programul de pe uC are mai multe functii legate de intializarea lcdului , clear lcd , mutarea cursorului si respectiv scrierea unui caracter folosind codul ASCII , toate acestea au fost scrise folosind datasheetul LCDului pentru a vedea modul in care functioneaza acesta.

Partea principala a programului este primirea de carcatere pe serial in registru RXREG si folosind functiile pentru scriere de caracter respectiv pentru a muta cursorul adecvat si astfel sa poata fi afisat un mesaj coerent pe ecran.

El are 2 moduri de functionare care sunt selectate prin variabila mode , unul pentru afisarea unui text ciclic , cealalta pentru afisat caractere primite prin modul serial.

Modul in care au fost definiti pini :

#define SetBit(x,y) (x|=(1<<y))
#define ClrBit(x,y) (x&=~(1<<y))

#define SCLK_on     SetBit(PORTB,7)
#define SDA_on         SetBit(PORTB,6)
#define CS_on         SetBit(PORTB,5)
#define RST_on         SetBit(PORTB,4)
#define SCLK_off     ClrBit(PORTB,7)
#define SDA_off     ClrBit(PORTB,6)
#define CS_off         ClrBit(PORTB,5)
#define RST_off     ClrBit(PORTB,4)

#define lcd_CMD        0
#define lcd_DATA    1

#define TX_PORT    2
#define RX_PORT    1
#define TX_BIT    (1<<TX_PORT)
#define RX_BIT    (1<<RX_PORT)

Modul in care functioneaza partea de recive - transmit :

while(1==1)
        {
        
        
            while(!RCIF    ); // Wait until data recieved on the serial port
            rcv = RCREG;  // Get the received character
        
            lcd_init();
            if(j==16)
                if(i==3)
                {
                lcd_gotoxy(i=3,j=0);
                }
                else
                {
                lcd_gotoxy(++i,j=0);
                }
            else
                lcd_gotoxy(i, j);
            j++;

            lcd_putch(rcv);    
        

        //    while(!TRMT);  // Wait until we're free to transmit
        //    TXREG = rcv;   // Transmit    
        
        }
    }

Partea de trimite a fost folosita doar pentru debugging in simulari.Codul a fost scris cu ajutorul softwareului MPLAB si compliat cu HI-TECH C Compiler.

Pentru partea de EV/Z3 implementata in OpenWatcom si scrisa in limbaj C folosind functiile deja predefinite am implementat partea de text ciclc atunci cand textul este inserat anterior si apoi transmis pe serial caracter cu caracter folosind functia SerialWrite , pentru debugging a fost facut un afisaj si pe displayul EV/Z3ului folosind functia DisplayString care ar trebui sa functioneze la fel cu cel atasat de noi.

 

 

VII. Results

Data about the final project implementation. Includes screenshots, movies, comments about your project in action.

VIII. Download

After you have presented your project at the laboratory (week 13-14) you will add all your sources here. Any hardware simulation used, code archive and so on.

IX. Status

You will have to update this every 2 weeks to include details of what you have done on your project. E.g.: aquired componets, made board, written code for EV/Z3

27.03 - Am cumparat componentele necesare realizarii placutei.

05.04 - Am lipit componentele pe placuta.

12.04 - Am inceput programarea PIC-ului pentru afisajul LCD.

18.04 - Am prezentat placuta la laborator si am facut primele teste.

 20.04 - Am scris codul complet pentru PIC , atat pentru partea de comunicare seriala cat si pentru partea de afisaj LCD si l-am verificat in simulatorul Proteus cu succes.

02.05 - In urma primelor teste , placuta s-a prezentat defecta asa ca am reverificat conexiunile facute

05.05 - Am facut codul pentru EV/Z3 care trebuie testat cu placuta

09.05 - Am retestat placuta dar fara succes , in urma inlocuirii uC si a unor teste cu multimetrul am ajuns la concluzia ca trebuie refacute niste lipituri la conexiunea seriala

 

X. Personal Contribution

Oancea Dumitru :

Contributia mea la acest proiect a constat in faptul ca am cumparat piesele, am realizat montajul, am  lipit piesele pe placuta de test conform cerintelor impuse in proiect si am adaugat si facut conexiunea display-ului cu pic-ul.Am facut debugging pe partea de hardware in laboratorul de electronica si am rezolvat probleme care erau.

Cazacu Daniel :

M-am ocupat de partea software si anume scrierea softului pentru PIC (initializarea LCDului , afisarea pe LCD si comunicarea seriala cu EV/Z3) , am realizat programul pentru EV/Z3 de comunicare intre placuta noastra si EV/Z3.Am realizat schema de simulare in Proteus si schema electrica pentru adaugarea LCDului(unde trebuie monatete rezistenele si de cat sa fie acestea).

Comun :

Am lucrat impreuna  la testarea partilor hardware si software in cadrul laboratorului.