![]() |
|
Tài trợ cho PIC Vietnam |
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 |
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Sep 2012
Bài gửi: 1
: |
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(); } } } |
![]() |
![]() |
|
|