Thông báo

Collapse
No announcement yet.

Giúp về chế độ nhận SMS SIM900?

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Giúp về chế độ nhận SMS SIM900?

    Em có làm đề tài giao tiếp SIM900!
    em cấu hình nhận SMS như sau:
    AT+CMGF=1<CR>
    AT+CNMI=1,2,0,0,0<CR>


    nhưng sau khi tin nhắn đến cái phần chứ nội dung SMS lại là mã HEX? có biết cách chuyển về Test không?Cám ơn!Click image for larger version

Name:	SIM900.PNG
Views:	1
Size:	6.6 KB
ID:	1417148

  • #2
    Bạn đọc tin nhắn khác xem sao

    Comment


    • #3
      Ơ ngon, bạn làm thế nào thế? có điều nhìn cái này thì mình nghĩ là dịch lại được thôi mà format của nó rõ thế còn gì? mỗi một ký tự sẽ được chứa trong 2 byte có nghĩa là có thể dùng để chứa ký tự Unicode. Nếu không quan tâm đến Unicode thì cứ đọc dạng như (0054=ascii(54)=6; 0065=ascii(65)=A; ........) Do ở đây không có ký tự unicode nào nên byte đầu trống (00) byte kế tiếp là số hiệu của ký tự trong bảng mã ascii

      Comment


      • #4
        giả sử 1 hàm
        Code:
        char string2char(char* str)// Đối số là chuỗi gồm 2 ký tự đại loại như '54'
        {							// Kết quả trả về là 54
        	char tmp=str[0]-'0';
        	tmp*=10;
        	tmp+=str[1]-'0';
        	return tmp;
        }

        Comment


        • #5
          Ko cần dịch lại đâu, bạn chỉnh các thông số của lệnh CMNI là sẽ được thôi. Xem datasheet xem, các con số đó đều có ý nghĩa của nó mà
          - Chuyên cung cấp và nhận đặt hàng các loại linh kiện điện tử, module GSM, GPS...
          Số 70 - Hoàng Sâm - Nghĩa Đô - Cầu Giấy - Hà Nội
          __Your Success, Our Happiness__

          Comment


          • #6
            Code:
            #include <REGX52.H>
            #include <string.h>
            #include "stdio.h"
            #include "math.h"
            
            // Define Macro
            #define RL1 P2_0
            #define RL2 P2_1
            #define RL3 P2_2
            #define RL4 P2_3		
            
            				
            //--------------------------------------------------------
            // Global variable
            #define BUFF_SIZE 20
            unsigned char buffer[BUFF_SIZE];	
            //unsigned char dl_rv;
            unsigned char timer_count;
            bit flag__;
            bit ok;
            char dem;		  
            
            
            //-------------------------------------------------------------
            // Function Static
            void truyen_mang(char *s);
            void xu_ly_tin_nhan(void);
            void Process_mess(char *dtin);
             //---------------------------------------------------------------------
             // ctrinh delay
            void delay(unsigned int ms)
            {
            	unsigned int i;
            	for(i=0;i<ms;i++);
            }
            //-------------------------- chuong trinh ngat nhan byt co tin nhan gui toi
            //	khi co tin nhan gui toi thi thuc hien doc tin nhan
            void isr_tinnhan() interrupt 0
            {
            	truyen_mang("AT+CMGR=1\r"); // doc tin nhan tai o nho thu 1 cua SIM.	
            	delay(2000);
            }
            //-------------------------------------------------------
            // ham xu ly du lieu nhan duoc
            
            //-----------------------------------------------------------------
            // khoi tao UART
            void khoitao_uart(void)
            {
            	SCON=0x52;
            	TMOD=0x21;      // khoi tao 2 timer time1 dung cho UART, timer0 dùng de tao time doc tin nhan
            	TH1=TH1=-3;		 // baud = 9600
            	//TH0 = -10000/256; // 10ms										 
            	//TL0 = -10000%256; 
            	TR1=1;
            //	ES = 1;
            	//TR0 = 1;
            //	ET0 = 1;
            	EX0 = 1;
            	IT0 = 1;
            	EA =1;
            }	 
            //---------------------------------clear buff------------
            //
            void clear_buffer(void)
            {
            	unsigned char i;
            	for(i = 0 ; i< BUFF_SIZE ; i++)
            		{
            			buffer[i] = '\0';
            		}
            }
            
            //--------------------------------------------------------------------------
            // Chuong trinh ngat UART nhan du lieu tu sim
            void isr_interrup() interrupt 4
            { 	char dl_rv;
            	if(RI)
            	  {
            	  	dl_rv=SBUF;
            		switch (dl_rv)
            			{
            				case '\*':
            				clear_buffer();
            				dem = 0;
            				break;
            				case '#':
            				Process_mess(buffer);
            				break;
            				default:
            				buffer[dem] = dl_rv;
            				dem++;
            				if(dem>BUFF_SIZE)
            				dem=0;
            				break;
            			}
            			RI = 0;
            			}		
            }
            //--------------------------------------------------------
            //+CMGR: "REC READ","+841653263756","","13/05/20,19:49:22+28"TB1 ON 1234>
            //>
            //OK
            //--------------------------------------------------
            
            
            //----------------------------------------------------------------
            // truyen mang dl xuong sim
            void truyen_mang(char *s)
            {
            //	putchar(0x0d);				 //xuong dong
            	while(*s)
            	{
            		putchar(*s);
            		s++;
            		delay(1000);
            	}
            }
            //----------------------------------------------------------------
            // Khoi	   tao Sim 900
            void khoitao_sim(void)
            {
            	delay(4000);
            	truyen_mang("AT\n\r");
            	delay(10000); 
            	truyen_mang("AT+CMGF=1\n\r");
            	delay(10000);	
            }
            
            //----------------------------------------------------------
            // xu ly tin nhan nhan duoc
            
            void Process_mess(char *dtin)   
            {
            if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '1') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'N') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
            	{
            		RL1 = 0;
            						truyen_mang("AT+CMGD=1\r");
            		delay(10000);
            				truyen_mang("AT+CMGS=\"+841649802694\"\r");                                        
                 delay(10000);
            	   delay(10000);
                 truyen_mang("Thiet Bi 1 da duoc bat");
                 putchar(0x1A);
            	}
            if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '2') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'N') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
            	{
            		RL2 = 0;
            						truyen_mang("AT+CMGD=1\r");
            		delay(10000);
            		truyen_mang("AT+CMGS=\"+841649802694\"\r");                                        
                 delay(10000);
            	   delay(10000);
                 truyen_mang("Thiet Bi 2 da duoc bat");
                 putchar(0x1A);
            
            	}
            if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '3') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'N') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
            	{
            		RL3 = 0;
            		truyen_mang("AT+CMGD=1\r");
            		delay(10000);
            		truyen_mang("AT+CMGS=\"+841649802694\"\r");                                        
                 delay(10000);
            	   delay(10000);
                 truyen_mang("Thiet Bi 3 da duoc bat");
                 putchar(0x1A);
            	}
            if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '4') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'N') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
            	{
            		RL4 = 0;
            						truyen_mang("AT+CMGD=1\r");
            		delay(10000);
            		truyen_mang("AT+CMGS=\"+841649802694\"\r");                                        
                 delay(10000);
            	   delay(10000);
                 truyen_mang("Thiet Bi 4 da duoc bat");
                 putchar(0x1A);
            	}
            if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '1') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'F') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
            	{
            			RL1 = 1;
            		truyen_mang("AT+CMGD=1\r");
            		delay(10000);
            		  truyen_mang("AT+CMGS=\"+841649802694\"\r");                                        
                 delay(10000);
            	   delay(10000);
                 truyen_mang("Thiet Bi 1 da duoc tat");
                 putchar(0x1A);
            	}
            if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '2') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'F') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
            	{
            		RL2 = 1;
            				truyen_mang("AT+CMGD=1\r");
            		delay(10000);
            				truyen_mang("AT+CMGS=\"+841649802694\"\r");                                        
                 delay(10000);
            	   delay(10000);
                 truyen_mang("Thiet Bi 2 da duoc tat");
                 putchar(0x1A);
            	}
            if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '3') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'F') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
            	{
            		RL3 = 1;
            						truyen_mang("AT+CMGD=1\r");
            		delay(10000);
            			truyen_mang("AT+CMGS=\"+841649802694\"\r");                                        
                 delay(10000);
            	   delay(10000);
                 truyen_mang("Thiet Bi 3 da duoc tat");
                 putchar(0x1A);
            	}
            if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '4') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'F') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
            	{
            		RL4 = 1;
            		truyen_mang("AT+CMGD=1\r");
            		delay(10000);
            		truyen_mang("AT+CMGS=\"+841649802694\"\r");                                        
                 delay(10000);
            	   delay(10000);
                 truyen_mang("Thiet Bi 4 da duoc bat");
                 putchar(0x1A);
            }
            }
            //------------------ chuong trinh chinh----------------
            //
            void main(void)
            {	
            	khoitao_uart();
            	//PS=1;
            	khoitao_sim();
            	delay(10000);
            	flag__ = 0;
            	ok     = 0;
            					truyen_mang("AT+CMGD=1\r");
            		delay(10000);
            					truyen_mang("AT+CMGS=\"+841649802694\"\r");                                        
                      delay(10000);
             	    	 delay(10000);
                      truyen_mang("Do an tot nghiep svth: Nguyen Huy Bien k12D He Thong Da Duoc Khoi Dong");
                      putchar(0x1A);
            	delay(10000);
            			    ES=1;
            
            	while(1)
            	{
            	;
            	}
            }
            Nguyễn Huy Biên - 01649 802 694
            gmail :

            Comment


            • #7
              bạn chỉ cần khởi tạo lênh AT+CMGF = 1\r\n là oke. ko cần gì thêm nhé, code đó mình làm chạy ầm ầm đó
              Nguyễn Huy Biên - 01649 802 694
              gmail :

              Comment


              • #8
                hoi dap sim900

                Nguyên văn bởi bienhou Xem bài viết
                bạn chỉ cần khởi tạo lênh AT+CMGF = 1\r\n là oke. ko cần gì thêm nhé, code đó mình làm chạy ầm ầm đó
                Bạn ơi cho mình hỏi: Trong code của bạn dùng ngắt ngoài để nhận biết có tin nhắn gửi đến, nhưng mình không biết chân ngắt ngoài đó sẽ nối vào đâu của sim 900. Bạn chỉ giáo giúp mình với.

                Comment

                Về tác giả

                Collapse

                vuive_2020 Tìm hiểu thêm về vuive_2020

                Bài viết mới nhất

                Collapse

                Đang tải...
                X