Conectarea Unui Microcontroler La Gps

Embed Size (px)

Citation preview

Conectarea unui modul GPS la un microcontroler 8051

Caracteristici: Se va realiza conectarea la GPS fie prin implementarea protocolului, fie prin conectarea microcontrolerului 8051 la un circuit ce implementeaz respectivul protocol printr-o interfa existent (SPI, UART, USB, CAN etc). Se va asigura afisarea strii de conectat (afiaje cu segmente sau matrice de LEDuri sau afisaj LCD). Se va preciza performana conexiunii. Codul surs va trebui s in cont n redactare de constrngerile specifice care pot aprea n cadrul unui sistem ncorporat.

GPS-ul a devenit un tool eficient in domeniul stiintific, al comertului, al supravegherii si urmaririi. Acest proiect prezinta o mica aplicatie bazate pe Global Positioning System. Aceasta depisteaza utilizarea GPS-ului modul/receiver pentru a determina latitudinea and longitudinea locatiei sale. Datele obtinute de la GPS receiver sunt procesate de microcontroller pentru a extrage latitudinea si longitudinea.Modulul GPS transmite continuu date seriale (protocolul RS232 ) in conformitate cu standardele NMEA Valorile latitudine si longitudine ale locatiei sunt continute in sintaxa GPGGA. In acest program, aceste valori sunt extrase din sintaxa GPGGA si afisate pe LCD.

Datele seriale sunt preluate din modulul GPS prin intermediul MAX232in registrul SBUF al controller-ului 8051 . Datele seriale de la receiver-ul GPS sunt preluate folosind Intreruperile Serialeale controller-ului. Aceste date sunt compuse dintr-o secventa NMEA din care secventa GPGGA este identificata si procesata.

Extragerea valorilor ce indica locatia se face in felul urmator : Primii sase biti ai datelor primite sunt comparate cu sirul pre-stocat ($GPGGA) si daca coincid atunci data este prelucrata in continuare; altfel, procesul se repeta din nou. Virgula delimiteaza sirul GPGGA , iar pozitiile ce indica latitudinea si longitudinea sunt extrase gasind virgula respectiva si extragand datele.Pozitiile ce indica latitudinea si longitudinea sunt afisate pe LCD care este interfatat cu AT89C51.

Conexiunile circuitului sunt:Receiver-ul1 (R1) al MAX232 a fost utilizat pentru comunicarea seriala. Pinul pentru receiver-ul de GPS este conectat la R1IN (pin13) al MAX232 . R1OUT (pin 12) al MAX232 este conectat la RxD (P3.0) al AT89C51.

Pinii 1-3 al portului P1 (P1.0, P1.1 & P1.2 respectiv) al AT89C51 sunt conectate la pinii de control (RS, R/W& EN) al LCD-ului. Pinii de date al LCD-ului sunt conectati la Portul P2 al controller-ului. Latitudinea si longitudinea sunt afisate pe LCD.

Codul:/* Programul de baza care arata cum sunt extrase latitudinea si longitudinea din datele GPGGA si sunt afisate pe LCD*/#include#define port2 P2sbit rs = P1^0;sbit rw = P1^1;sbit e = P1^2;char info[70];char test[6]={"$GPGGA"};char comma_position[15];unsigned int check=0,i;unsigned char a;void receive_data();void lcd_latitude();void lcd_longitude();//DELAY FUNCTIONvoid delay(unsigned int msec){int i,j ;for(i=0;i 24 MHz)Crystal 2

19Crystal 1

20Ground (0V)Ground

21Pinii pe 8 biti ai portului (P2) de input/output /Adresele bitilor cei mai semnificativi cand interfateaza cu memoria externaP2.0/ A8

22P2.1/ A9

23P2.2/ A10

24P2.3/ A11

25P2.4/ A12

26P2.5/ A13

27P2.6/ A14

28P2.7/ A15

29Program store enable;Citeste din memoria externa a programuluiPSEN

30Address Latch EnableALE

Programul introduce input-uri in cursul programarii FlashProg

31External Access Enable; Vcc pentru executiile programului internEA

Programming enable voltage; 12V (during Flash programming)Vpp

32Pinii pe 8 biti ai portului (P0) de input/output /Adresele bitilor cei mai putin semnificativi cand interfateaza cu memoria externa P0.7/ AD7

33P0.6/ AD6

34P0.5/ AD5

35P0.4/ AD4

36P0.3/ AD3

37P0.2/ AD2

38P0.1/ AD1

39P0.0/ AD0

40Tensiunea de alimentare; 5V (pana la 6.6V)Vcc

LCDCP045

LCD (Liquid Crystal Display) este un modul electronic de display si se gaseste intr-o gama larga de aplicatii. Un display de LCD 16x2 este un modul de baza si este foarte folosit in diverse circuite si device-uri.Aceste module sunt preferate in raport cu ledurile multi segment . Motivele: LCD-urile sunt mai economice, usor programabile, nu exista limitari in afisarea caracterelor speciale , a animatiilor , etc.

Un 16x2 LCDinseamna ca poate afisa 16 caractere pe linie si ca exista 2 astfel de linii.Pe acest LCD fiecare caracter este afisat intr-o matrice de pixeli de dimensiuni 5x7. Acest LCD are doua registre numite Command (Comanda) si Data (Date).Registrul Command stocheaza instructiunile de comanda trimise LCD-ului. O comanda este o instructiune data LCD-ului pentru a executa un anumit task precum stergerea ecranului, initializarea acestuia, pozitionarea cursorului, etc. Registrul de date stocheaza datele pentru a fi afisate pe LCD . Datele sunt valori ASCII al caracterelor ce vor fi afisate pe LCD.Diagrama Pinilor:

Descrierea Pinilor:Pin NoFunctionName

1Ground (0V)Ground

2Tensiunea de alimentare; 5V (4.7V 5.3V)Vcc

3Ajustarea contrastului, printr-un rezistor variabil

VEE

4Selecteaza registrul de comanda cand sunt valori mici; si registrul de date cand sunt valori mariRegister Select

5Valori mici pentru a scrie in registru; Valori mari pentru a citi din registruRead/write

6Trimite date la pinii de date cand este dat un impuls descrescatorEnable

7Pinii de date pe 8 bitiDB0

8DB1

9DB2

10DB3

11DB4

12DB5

13DB6

14DB7

15Backlight VCC(5V)Led+

16Backlight Ground (0V)Led-