Chào mọi người.
Chào anh long tu_người lập ra luồng thông tin này
Em đã đọc tất cả những chia sẽ của các anh nên em cũng muốn chia sẽ ít lên đây vừa làm cho topic thêm phong phú vừa nhờ các ae giúp luôn.
Chả là hiện giờ em đa làm đề tài cuối khóa về SIM908 đọc tọa độ gửi tin nhắn về điện thoại và server.
Nhưng trong quá trình làm mạch thì em gặp phải "một vấn đề" mà em mò hoài hok ra đọc sạch sẽ datasheet của SIM908 luôn rồi lang thang hoài trên mạng mà hojk ra lun nên post lên mong các ae giúp đỡ e và những người đi sau gặp biết mà tránh., đó là trong lệnh lấy tọa độ e hok sử dụng truy xuất liên tục wa chân GPS_txd mà dùng lệnh "AT+CGPSINF" lấy tọa độ THÔNG WA CHÂN GSM, nhưng đọc hiển thị lcd mà đọc hoài hok được.
===>dữa liệu về đưa ra hiện LCD sai te le luôn.
DƯới đây là phần code viết bằng CCS và phần cứng trên protues
---------------------------------------------------------------------------------------------------------
#include<16f887.h>
#fuses nowdt,put,hs,noprotect,nolvp,nodebug,nobrownout,no cpd
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=pin_c6,rcv=pin_c7,bi ts=8,stop=1)
#define pwr pin_d5
#define rs pin_d6
#define e pin_d7
#define lcd output_b
void command_write(unsigned char cmd);
void data_write(unsigned char data);
void setup_lcd();
void show(unsigned char row,unsigned char colum,char s);
void system();
void gps_lcd();
void timed_getc();
char chuoi[20],kd[11],vd[11],rec[90];
unsigned int td=0;
#INT_RDA
void receive()
{
rec[td]=getc();
td++;
}
void command_write(unsigned char cmd)
{
lcd(cmd);
output_low(rs);
output_high(e); delay_ms(5);
output_low(e); delay_ms(5);
}
void data_write(unsigned char data)
{
lcd(data);
output_high(rs);
output_high(e); delay_ms(5);
output_low(e); delay_ms(5);
}
void setup_lcd()
{
output_low(e); output_low(rs);
command_write(0x38);
command_write(0x0c);
command_write(0x01);
command_write(0x06);
}
void show(unsigned char row,unsigned char colum,char s)
{
switch(row)
{
case 1: command_write(0x80+colum);
break;
case 2: command_write(0xc0+colum);
break;
case 3: command_write(0x94+colum);
break;
case 4: command_write(0xd4+colum);
break;
}
while(*s)
{
data_write(*s); s++;
}
}
void system() //cấu hình phần cứng
{
char o,k,c,a,l;
do
{
strcpy(chuoi,"WELCOM TO GPS SIM908"); show(4,0,chuoi);
printf("at\r\n"); o=getc();k=getc();
strcpy(chuoi," "); show(4,0,chuoi);
}while((o!='O')||(k!='K'));
do
{
strcpy(chuoi,"CONFIG FORMATING..."); show(4,0,chuoi);
printf("at+cmgf=1\r\n"); o=getc(); k=getc();
strcpy(chuoi," "); show(4,0,chuoi);
}while((o!='O')||(k!='K'));
do
{
strcpy(chuoi,"CONFIG FORMATING..."); show(4,0,chuoi);
printf("at+cgpspwr=1\r\n"); o=getc(); k=getc();
strcpy(chuoi," "); show(4,0,chuoi);
}while((o!='O')||(k!='K'));
do
{
strcpy(chuoi,"CONFIG FORMATING..."); show(4,0,chuoi);
printf("at+cgpsrst=0\r\n"); o=getc(); k=getc();
strcpy(chuoi," "); show(4,0,chuoi);
}while((o!='O')||(k!='K'));
do
{
strcpy(chuoi,"CONFIG FORMATING..."); show(4,0,chuoi);
printf("at+cgpsipr=9600\r\n"); o=getc(); k=getc();
strcpy(chuoi," "); show(4,0,chuoi);
}while((o!='O')||(k!='K'));
do
{
strcpy(chuoi,"CONFIG FORMATING..."); show(4,0,chuoi);
printf("at&w\r\n"); o=getc(); k=getc();
strcpy(chuoi," "); show(4,0,chuoi);
}while((o!='O')||(k!='K'));
strcpy(chuoi,"LOADING..."); show(4,0,chuoi);
delay_ms(5000);
strcpy(chuoi," "); show(3,0,chuoi);
strcpy(chuoi," "); show(4,0,chuoi);
strcpy(chuoi,"W:");
show(3,0,chuoi);
strcpy(chuoi,"N:");
show(4,0,chuoi);
}
void gps_lcd() //lọc tọa độ
{
unsigned int vt=0,i=0;
while(rec[vt]!=',') {vt++;}
vt++;
command_write(0x99);
while(rec[vt]!=',') {kd[i]=rec[vt++]; data_write(kd[i]); i++;}
vt++; i=0;
command_write(0xd9);
while(rec[vt]!=',') {vd[i]=rec[vt++]; data_write(vd[i]); i++;}
}
void main()
{
set_tris_b(0x00); set_tris_c(0x80); set_tris_d(0x00);
port_b_pullups(0xff);
setup_lcd();
strcpy(chuoi,"DATN:UDDV_GPS_SIM908");
show(1,0,chuoi);
strcpy(chuoi,"NG_T_TAM & HA_V_QUAN");
show(2,0,chuoi);
output_high(pwr); delay_ms(1000); output_low(pwr);
system();
enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
while(true)
{
printf("at+cpgsinf=0\r\n"); //lấy toại độ
gps_lcd(); td=0;
delay_ms(5000);
}
}
-------------------------------------------------------------------------------------------------------
phần cứng:
- thì em mua Breakout nên có sắn đưa chân ra lun rùi e chỉ sắn sài thui.
http://www.mediafire.com/download/eu...e/HARDWARE.png
Rất mong mọi người giúp đỡ.
Em chân thành cảm ơn