PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   Nhờ giúp đỡ sim900 (http://www.picvietnam.com/forum/showthread.php?t=30562)

BachHo 25-09-2012 02:32 PM

Nhờ giúp đỡ sim900
 
Chào mọi người. Mình đang làm về đề tài sim900. Khi có SMS đến thì sim900 trả về chuỗi +CMTI. Mình đã kiểm tra nó trong ngắt nhận. Song khi test trên mạch Pic, thì chỉ gửi được SMS đầu là nó báo có sms. Sau đó, gửi tin thì nó ko báo gì nữa. Dù mình đã reset tất cả rồi nhưng vẫn không được. Mọi người xem tại sao giúp mình với.
Code của mình đây. Thanks mọi người nhé.
#include <16f877a.h>
#fuses nowdt,hs,noput,noprotect,nodebug,nobrownout,nolvp, nocpd,nowrt
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)
#include <lcd_lib_4bit.c>

char sms[80];
char c=0x00,c1=0x00,c2=0x00,c3=0x00,c4=0x00,c5=0x00;
int8 new_sms=0,i=0,j=0;

#INT_RDA
void ngat()
{
c=getc();
if(c=='+') c1=c;
if(c=='C') c2=c;
if(c=='M') c3=c;
if(c=='T') c4=c;
if(c=='I') c5=c;
if(c1=='+' && c2=='C' && c3=='M' && c4=='T' && c5=='I') new_sms=1;
sms[i]=c; i++;
}

void delete_sms()
{
printf("AT+CMGD=1,4");//delete all message
putc(13);delay_ms(500);
}

void reset()
{
i=0;
new_sms=0;
c=0x00,c1=0x00,c2=0x00,c3=0x00,c4=0x00,c5=0x00;
for(j=0;j<90;j++) //Xoa sms[]
{sms[j]=0;}
}


void main()
{
enable_interrupts(global);
enable_interrupts(int_rda);
lcd_init();printf(lcd_putchar,"Seting....");delay_ ms(2000);lcd_putcmd(0x01);
reset();
delete_sms();
reset();
printf(lcd_putchar,"Start");delay_ms(3000);lcd_put cmd(0x01);
while(true)
{
if(new_sms==1)
{
reset();
printf(lcd_putchar,"New message");delay_ms(3000);lcd_putcmd(0x01);
// printf("at+cmgs=\"0922609003\"\r\n");
// delay_ms(500);printf("Da nhan duoc sms");delay_ms(500);putc(26);delay_ms(500);
reset();
}
}
}

daotruong 12-10-2012 12:33 AM

chào bạn, bạn đã làm được module Sim900 đó ok chưa.

Tien Le 15-10-2012 02:48 PM

:) Cái này bạn config lại bằng cấu hình nhận tin nhắn của SIM900 nhé, nó mặc định là dạng lưu tin nhắn trong vùng nhớ của SIM nên nó không hiện ra được. Đó là lệnh AT+CNMI, good luck!
-----
Bán các module SIM900 giá 430k/chiếc. LH:0972821993

pthien0288 01-01-2013 10:35 PM

mình cũng tìm hiểu chút đỉnh về vấn đề này vấn đề mà bạn gặp phải là khi gửi tin nhắn đến sim và sim trả về +CMTI báo đã nhận tin nhắn sau đó bạn phải xóa tin nhắn nhận được trong sim như vậy bạn muốn gửi bao nhiêu lần cũng được


Múi giờ GMT. Hiện tại là 11:49 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam