![]() |
|
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 2013
Bài gửi: 7
: |
Trích:
Đây là code của em: #include <16f877a.h> #device PIC16F877A*=16 ADC=10 #include <string.h> #include <lcd_lib_4bit.c> #fuses nowdt,hs,noput,noprotect,nodebug,nobrownout,nolvp, nocpd,nowrt #use delay(clock=12000000) #use fast_io(b) #use fast_io(e) #define Led0 PIN_C0 #define Led1 PIN_C1 #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8) char chuoi[90],noidung_sms[20],tu_khoa[20]; int8 dem,i,j,k,new_sms,z,vitri,x,y,adc,f; /*********** Khai bao ngat nhan noi tiep ***********/ #INT_RDA void ngat() { chuoi[dem]=getc(); if(chuoi[dem]=='') { z++; if(z==2)new_sms=1; } dem++; } void xuly(); void xuly_sms(); void gsm_config(); void xoa(); void nhiet_do(); void main() { enable_interrupts(global);//Cho phep ngat toan cuc enable_interrupts(int_rda);//Cho phep ngat nhan noi tiep setup_adc(ADC_clock_internal); // thiet lap tan so lay mau ADC setup_adc_ports(AN0); // ngo vao A0 set_adc_channel(0); // chan doc gia tri adc bang read_adc() portd=1;delay_ms(1000);portd=0;delay_ms(1000); //1 led sang LCD_init(); //khoi tao LCD Printf(LCD_putchar," DO AN "); LCD_putcmd(0xC0);Printf(LCD_putchar,"Dang cau hinh ");delay_ms(1000); gsm_config();//goi chuong trinh con cau hinh Module GSM LCD_putcmd(0xC0);Printf(LCD_putchar,"Cau hinh xong ");delay_ms(2000); new_sms=0; z=0; while(1) { signed int16 x; signed int16 adc; int16 y=70; // nhiet do bao dong x=read_ADC(); adc=x/2; // do C f=adc*1.8+32; // do F LCD_putcmd(0x01);// xoa man hinh chi thi LCD_putcmd(0x80);Printf(LCD_putchar," Nhiet do phong "); LCD_putcmd(0xC0);Printf(LCD_putchar,"%u",adc);LCD_ putcmd(0xC0+4);Printf(LCD_putchar,"C"); LCD_putcmd(0xC0+8);Printf(LCD_putchar,"%u",f);LCD_ putcmd(0xC0+12);Printf(LCD_putchar,"F"); delay_ms(500); if(new_sms==1) { LCD_putcmd(0x01);// xoa man hinh chi thi LCD_putcmd(0x80); Printf(LCD_putchar,"Co tin nhan moi "); LCD_putcmd(0xC0); Printf(LCD_putchar,"Dang xu ly"); xoa(); puts("at+cmgr=1"); delay_ms(500); xuly_sms(); LCD_putcmd(0x01);// xoa man hinh chi thi xuly(); trang_thai(); nhiet_do(); delay_ms(200); puts("at+cmgd=1"); delay_ms(500); xoa(); delay_ms(500); } if(adc>=y) // kiem tra nhiet do cao { LCD_putcmd(0x01);// xoa man hinh chi thi LCD_putcmd(0x80);Printf(LCD_putchar," Nhiet do cao ! "); LCD_putcmd(0xC0);Printf(LCD_putchar,"Dang goi dien "); printf("ATD01674577163;"); putc(13); delay_ms(20000); puts("ATH"); delay_ms(1000); printf("AT+CMGS=\"01675491246\"\r\n"); delay_ms(500); printf("Nhiet do luc nay la:\r\n %u",adc); // gui nhiet do ve may delay_ms(500); printf("do C"); delay_ms(500); putc(26); // ctrl +Z delay_ms(500); } } void gsm_config() { delay_ms(2000); printf("at\r\n"); delay_ms(500); printf("at\r\n"); delay_ms(500); printf("at\r\n"); delay_ms(500); printf("at\r\n"); delay_ms(500); printf("ate0\r\n"); delay_ms(500); printf("at+cmgf=1\r\n"); delay_ms(500); printf("at+cmgd=1\r\n"); delay_ms(500); xoa(); delay_ms(500); } //+++++++++++++++ xoa +++++++++++++++++// void xoa() { new_sms=0; z=0; dem=0; y=0; vitri=0; for(i=0;i<=90;i++) //Xoa chuoi[] {chuoi=0;} for(i=0;i<=20;i++) //Xoa noidung_sms[] {noidung_sms=0;} } //+++++++++++++++++++++ xu ly tin nhan ++++++++++++++// void xuly_sms() { y=0; k=0; for(i=0;i<=strlen(chuoi);i++) { if(chuoi=='\n') { k++; if(k==2)vitri=i+1 ; } } for(x=vitri;x<strlen(chuoi)-8;x++) {noidung_sms[y]=chuoi[x]; y++ ; // lay noi dung } } //+++++++++++++++ XU LY va DIEU KHIEN +++++++++++++++++++// void xuly() { strcpy(tu_khoa,"On1"); if(strcmp(tu_khoa,noidung_sms)==0) { output_bit(Led1,1); LCD_putcmd(0x80); Printf(LCD_putchar,"Den 1 da mo "); LCD_putcmd(0xC0); Printf(LCD_putchar,"Gui sms p.hoi"); printf("AT+CMGS=\"01675491246\"\r\n"); delay_ms(500); printf("den 1 da mo"); delay_ms(500); putc(26); // ctrl +Z delay_ms(500); } strcpy(tu_khoa,"Off1"); if(strcmp(tu_khoa,noidung_sms)==0) { output_bit(Led1,0); LCD_putcmd(0x80); Printf(LCD_putchar,"Den 1 da tat "); LCD_putcmd(0xC0); Printf(L CD_putchar,"Gui sms p.hoi"); printf("AT+CMGS=\"01675491246\"\r\n"); delay_ms(500); printf("den 1 da tat"); delay_ms(500); putc(26); // ctrl +Z delay_ms(500); } strcpy(tu_khoa,"On2"); if(strcmp(tu_khoa,noidung_sms)==0) { output_bit(Led2,1); LCD_putcmd(0x80); Printf(LCD_putchar,"Den 2 da mo "); LCD_putcmd(0xC0); Printf(LCD_putchar,"Gui sms p.hoi"); printf("AT+CMGS=\"01675491246\"\r\n"); delay_ms(500); printf("den 2 da mo"); delay_ms(500); putc(26); // ctrl +Z delay_ms(500); } strcpy(tu_khoa,"Off2"); if(strcmp(tu_khoa,noidung_sms)==0) { output_bit(Led2,0); LCD_putcmd(0x80); Printf(LCD_putchar,"Den 2 da tat "); LCD_putcmd(0xC0); Printf(LCD_putchar,"Gui sms p.hoi"); printf("AT+CMGS=\"01675491246\"\r\n"); delay_ms(500); printf("den 2 da tat"); delay_ms(500); putc(26); // ctrl +Z delay_ms(500); } } void nhiet_do() { strcpy(tu_khoa,"nhietdo"); if(strcmp(tu_khoa,noidung_sms)==0) { LCD_putcmd(0x80); Printf(LCD_putchar,"Kiem tra nhiet "); LCD_putcmd(0xC0); Printf(LCD_putchar,"do ve dt "); printf("AT+CMGS=\"01675491246\"\r\n"); delay_ms(500); printf("Nhiet do luc nay la:\r\n %u",adc); // gui nhiet do ve may delay_ms(500); printf("do C"); delay_ms(500); putc(26); // ctrl +Z delay_ms(500); } } |
|
![]() |
![]() |
![]() |
#2 |
Đệ tử 6 túi
|
Sim908
Lâu quá không ghé thăm diễn dàn. Tuy nhiên, thấy các bạn trao đổi rất nhiệt tình về luồng này của mình.
Cám ơn các bạn. Hy vọng các bạn nhanh chóng giải quyết được vấn đề của mình. Thân.
__________________
-------------------------------------------------------------------------------------- Phùng Minh Tuân Email: tuan.phmt@gmail.com "Cuộc đời sóng gió nuôi ta lớn Bao lần thất bại dạy ta khôn". |
![]() |
![]() |
![]() |
#3 |
Nhập môn đệ tử
Tham gia ngày: Oct 2013
Bài gửi: 3
: |
Các anh ơi cho em hỏi em đang viết 1 chương trình dùng pic 16f877a để thưc hiện lệnh gọi lên module sim nhưng sao mãi không, các anh xem code em viết đúng không, mong các anh giúp đỡ em
#include <16f877a.h> #device *=16 adc=10 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=12000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7) #include <lcd.h> void main() { int8 str[20]; LCD_Init(); delay_ms(10); LCD_Gotoxy(1,0); sprintf(str,"gps"); LCD_Puts(str); delay_ms(1000); LCD_Clear(); LCD_Gotoxy(1,0); sprintf(str,"goidien"); LCD_Puts(str); delay_ms(1000); LCD_Clear(); while(1) { printf("ATD090......;"); putc(13); delay_ms(20000); } } |
![]() |
![]() |
![]() |
#4 |
Đệ tử 1 túi
Tham gia ngày: Oct 2008
Bài gửi: 19
: |
Chào các anh ,em hiện đang gặp khúc mắc ở chỗ gửi tin nhắn cho nhiều số điện thoại và nội dung tin nhắn muốn chèn 1 dữ liệu (chẳng hạn nhiệt độ) vào thì làm cách nào ạ,em đã đọc kỹ trong manual sim nhưng chưa tìm ra cách
Chân thành cảm ơn các anh |
![]() |
![]() |
![]() |
#5 |
Đệ tử 4 túi
|
Bạn đã làm được cái hàm gửi tin nhắn chạy chưa?
__________________
LẠI QUANG TUYẾN Phone: 0906.189.269 |
![]() |
![]() |
![]() |
#6 |
Đệ tử 1 túi
Tham gia ngày: Oct 2008
Bài gửi: 19
: |
|
![]() |
![]() |
![]() |
#7 |
Đệ tử 1 túi
Tham gia ngày: Oct 2008
Bài gửi: 19
: |
Vẫn chưa làm được và đang cần cao nhân giúp đỡ ạ!
|
![]() |
![]() |
![]() |
#8 |
Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 1
: |
Xin chào cả nhà.
Mình đang test 1 con SIM908 của ATC Đăng gặp 1 vấn đề về SIM Card Khi khởi động nên thì báo không có SIM ÿÿ RDY +CPIN: NOT INSERTED +CFUN: 1 GPS Ready AT OK Mình sử dụng nguồn điện 4V 3A (LM2596S) Đo điện áp tại chân SIM_VDD thì bằng 0. Trong khi SIM bình thường hoạt động thì chân này phải là 1.8V hoặc 3V. Đã thăm quan nhiều diễn đàn của tây, nhưng họi đều nói lại phần nguồn thiếu, hoặc phần cứng không đúng. Nhưng đã kiểm tra tất cả đều OK Mong các bạn tham khảo kiểm tra hộ |
![]() |
![]() |
![]() |
#9 |
Nhập môn đệ tử
Tham gia ngày: Apr 2014
Bài gửi: 4
: |
Nguồn sử dụng:
- Chỉ sử dụng 1 nguồn duy nhất: VBAT= 3.2 - 4.8V. Dòng đỉnh của nguồn này trong quá trình trao đổi thông tin(call, send SMS...) có thể lên tới 2A, vì vậy khi thiết kế nguồn VBAT cần đảm bảo nguồn đủ khả năng cung cấp dòng lên tới 2A. - Khi VBAT xuống dưới 3.1V, module sẽ tự động ngắt(tắt). - Một tụ điện Tantalum 100uF có ESR thấp(ESR=<0.7Ohm) được đề nghị thêm vào để tăng sức mạnh cho nguồn VBAT. Tụ này để để gần các chân nguồn của Sim908(càng gần càng tốt). |
![]() |
![]() |
![]() |
#10 | |
Nhập môn đệ tử
Tham gia ngày: Mar 2012
Bài gửi: 1
: |
GPS sim 908
Trích:
|
|
![]() |
![]() |
![]() |
#11 |
Nhập môn đệ tử
Tham gia ngày: Jan 2015
Bài gửi: 1
: |
mình cũng gặp vấn đề giống bạn nhattri mà không biết là lỗi gì... có ai giúp với. Cảm ơn nhiều
|
![]() |
![]() |
![]() |
#12 |
Nhập môn đệ tử
Tham gia ngày: Jun 2015
Bài gửi: 1
: |
upupup
các bạn cho mình hỏi là kit EVB của mình có 2 port rs232 (GSM + GPS) thì mình muốn giao tiếp vối sim908 thì mình giao tiêp qua port nào và baudrate là bao nhiêu?? mình cảm ơn |
![]() |
![]() |
![]() |
#13 |
Nhập môn đệ tử
Tham gia ngày: Sep 2014
Bài gửi: 1
: |
2012 và bây giờ là 2016 muốn hỏi lại các tiền bối.
![]() Em muốn nhận tín hiệu từ vệ tinh nhanh nhất, chính xác nhất và ổn định nhất thì nên dùng sim908 hay UBLOX NEO 6M VKEIL hay một loại nào khác ạ? Giá cả không thành vấn đề ạ. Em xin cảm ơn.. |
![]() |
![]() |
![]() |
|
|