Codigo Que Funcionou(Lat e Long)
Click here to load reader
-
Upload
jeferson-carvalho -
Category
Documents
-
view
10 -
download
0
Transcript of 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)
{
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]);
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')
{
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);
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);
output_d(dado);
delay_cycles(2);
output_high(en);
delay_cycles(2);
output_low(en);
delay_ms(1);
}