PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụng

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 01-06-2013, 10:08 PM   #15
vulan1507
Nhập môn đệ tử
 
Tham gia ngày: Mar 2012
Bài gửi: 2
:
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
Hình Kèm Theo
File Type: jpg SHEMATIC.JPG (98.7 KB, 21 lần tải)
File Type: jpg 111.jpg (148.6 KB, 9 lần tải)
vulan1507 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 10:37 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam