Codigo Que Funcionou(Lat e Long)

6

Click here to load reader

Transcript of Codigo Que Funcionou(Lat e Long)

Page 1: Codigo Que Funcionou(Lat e Long)

#include <18f4520.h>

#fuses hs,nolvp,nowdt

#use delay (clock=8000000)

#use rs232(baud=4800,xmit=pin_c6,rcv=pin_c7)

char dado;

int1 controle=0;

int1 controle1=0;

int1 controle2=0;

char vetor[70];

char indice=0;

int x1;

#define rs pin_E2 // alterar esses canois pois eles devem

#define en pin_E1 // se adequar ao novo wardware

void inicializa(void);

void atualiza_tela(char dado);

void lcd_inst (char dado);

void lcd_dado(char dado);

void main (void)

{

inicializa();

for (x1=0;x1<70;x1++) vetor[x1]=0;

while(1)

{

if (controle2)

Page 2: Codigo Que Funcionou(Lat e Long)

{

controle2=0;

if (vetor[12]=='A')

{

lcd_inst(0x80);

lcd_dado(vetor[14]);

lcd_dado(vetor[15]);

lcd_dado(vetor[16]);

lcd_dado(vetor[17]);

lcd_dado(vetor[18]);

lcd_dado(vetor[19]);

lcd_dado(vetor[20]);

lcd_dado(vetor[21]);

lcd_dado(vetor[22]);

lcd_dado(vetor[23]);

lcd_dado(vetor[24]);

lcd_inst(0xc0);

lcd_dado(vetor[26]);

lcd_dado(vetor[27]);

lcd_dado(vetor[28]);

lcd_dado(vetor[29]);

Page 3: Codigo Que Funcionou(Lat e Long)

lcd_dado(vetor[30]);

lcd_dado(vetor[31]);

lcd_dado(vetor[32]);

lcd_dado(vetor[33]);

lcd_dado(vetor[34]);

lcd_dado(vetor[35]);

lcd_dado(vetor[36]);

lcd_dado(vetor[37]);

}

}

}

}

#int_rda

void isr_serial(void)

{

dado=getc();

if (controle)

{

vetor[indice]=dado;

indice++;

if (indice==5)

{

controle=0;

indice=0;

if(vetor[0]=='G' && vetor[1]=='P' && vetor[2]=='R' && vetor[3]=='M' && vetor[4]=='C')

{

Page 4: Codigo Que Funcionou(Lat e Long)

controle1=1;

return;

}

}

}

if (controle1)

{

vetor[indice]=dado;

indice++;

if (indice==57)

{

controle1=0;

controle2=1;

}

return;

}

if (dado== '$')

{

controle=1;

indice=0;

}

}

void inicializa(void)

{

enable_interrupts(global);

Page 5: Codigo Que Funcionou(Lat e Long)

enable_interrupts(int_rda);

delay_ms(2000);

lcd_inst(0x30);

delay_ms(3);

lcd_inst(0x30);

lcd_inst(0x30);

lcd_inst(0x38);

lcd_inst(0x01);

delay_ms(1);

lcd_inst(0x0c);

lcd_inst(0x06);

}

void lcd_inst(char dado)

{

output_low(rs);

output_d(dado);

delay_cycles(2);

output_high(en);

delay_cycles(2);

output_low(en);

delay_ms(1);

}

void lcd_dado(char dado)

{

output_high(rs);

Page 6: Codigo Que Funcionou(Lat e Long)

output_d(dado);

delay_cycles(2);

output_high(en);

delay_cycles(2);

output_low(en);

delay_ms(1);

}