[HELP] Pic 16F877A + Module SIM900A

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • khangcntt.kt
    Thành viên mới
    • Mar 2013
    • 5

    #1

    [HELP] Pic 16F877A + Module SIM900A

    Chào mọi người!

    Hiện tại Mình đang gặp 1 lỗi giao tiếp giữa Module Sim900A và Pic16F877A.
    Dữ liệu từ PIC gửi lên SIM900A thì được thực hiện( như Gọi Điện hoặc nhắn tin),
    nhưng dữ liệu mà muốn lấy từ SIM900A về PIC thì lại không lấy được. Ở đây SIM900A trả về các ký tự trả về không như ý muốn(Toàn ký tự loằn nhằng.), nếu nắp thêm trở vào chân RX của PIC thì mỗi lần kết quả lại ra khác nhau.

    Cảm ơn Mọi người!
    Code:
    #include<16f877a.h>
    #device *=8 adc=10
    #FUSES NOWDT, HS , NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
    #use delay(clock=20000000)
    #use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,stream=GSM)
    #include <lcd.c>
    #int_RDA
    void ngat_rda()
    {
    char ch=fgetc(GSM);
    if((ch!=13) || (ch!=10))// neu ch khac ky tu CR va LF
    {
    lcd_putc(ch);
    }
    }
    void main()
    {
    lcd_init();
    lcd_gotoxy(1,1);
    enable_interrupts(INT_RDA);
    enable_interrupts(GLOBAL);
    fprintf(GSM,"AT");// Kiem tra ket noi giua MCU va SIM900
    putc(13);// ky tu CR( Carriage return)
    delay_ms(500);
    fprintf(GSM,"ATD+841659084698;");// Thuc hien Cuoc goi Toi sdt 01659084698
    putc(13);
    delay_ms(500);
    while(true)
    {
    }
    }
  • falleaf
    Administrator
    • Jul 2005
    • 3429

    #2
    Coi lại mức áp giữa 2 thằng

    Chúc vui
    Falleaf
    Công ty TNHH Thương mại và Giao nhận R&P
    58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
    mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

    Comment

    • khangcntt.kt
      Thành viên mới
      • Mar 2013
      • 5

      #3
      Anh ơi! nghĩa là sao ạ, em mới nhập môn. Hi Module sim thì em mua bên vntech24h, anh ấy bảo có cầu phân áp rồi, có thể làm việc với MCU 3,3V hoặc 5,0V
      Thank anh nhiều!
      Last edited by khangcntt.kt; 11-12-2013, 02:16.

      Comment

      • demon52
        Thành viên tích cực
        • Mar 2009
        • 305

        #4
        Module SIM đó đang hoạt động ở điện áp 4.x V, có cầu phân áp lựa chọn giao tiếp với MCU hoạt động tại 3v3 hoặc 5v ( đã test cho rất nhiều mạch vì bán được ít nhất 30-40 cái rồi ). Hôm đó mình đã test cho bạn tại nhà mình rồi, có thể là do bạn làm mạch và code thế nào thôi, bạn phải đọc kĩ lệnh AT và sử lý ngắt UART cẩn thận, tốc độ baud nữa...
        Cắm USB2COM giao tiếp với PIC trước xem PIC gửi lệnh đúng chưa, sau đó lại cắm vào Module SIM để tìm được sai tại đâu.
        À đã nhập đủ lk cơ bản rồi, khi nào bạn bè mua nhớ giới thiệu nhé, bán rẻ hết cỡ nếu các bạn sv nhiệt tình , tuy nhiên ko hỗ trợ code làm đồ án đâu nhé, giúp được tới đâu thì mình giúp thôi.
        Cảm ơn đã ủng hộ
        Web:
        ->Nhận thiết kế, hoàn thiện dự án, sản phẩm điện tử<-
        -->Giải pháp GSM/GPRS/GPS - Công nghệ RFID<--

        Comment

        • khangcntt.kt
          Thành viên mới
          • Mar 2013
          • 5

          #5
          Vâng anh! Tiện thể em hỏi luôn cầu phân áp thì cắm theo chiều ngang hay dọc anh nhỉ?
          Hi.

          Comment

          • sangtx1992
            Thành viên mới
            • Jul 2014
            • 2

            #6
            Nguyên văn bởi khangcntt.kt Xem bài viết
            Chào mọi người!

            Hiện tại Mình đang gặp 1 lỗi giao tiếp giữa Module Sim900A và Pic16F877A.
            Dữ liệu từ PIC gửi lên SIM900A thì được thực hiện( như Gọi Điện hoặc nhắn tin),
            nhưng dữ liệu mà muốn lấy từ SIM900A về PIC thì lại không lấy được. Ở đây SIM900A trả về các ký tự trả về không như ý muốn(Toàn ký tự loằn nhằng.), nếu nắp thêm trở vào chân RX của PIC thì mỗi lần kết quả lại ra khác nhau.

            Cảm ơn Mọi người!
            Code:
            #include<16f877a.h>
            #device *=8 adc=10
            #FUSES NOWDT, HS , NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
            #use delay(clock=20000000)
            #use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,stream=GSM)
            #include <lcd.c>
            #int_RDA
            void ngat_rda()
            {
            char ch=fgetc(GSM);
            if((ch!=13) || (ch!=10))// neu ch khac ky tu CR va LF
            {
            lcd_putc(ch);
            }
            }
            void main()
            {
            lcd_init();
            lcd_gotoxy(1,1);
            enable_interrupts(INT_RDA);
            enable_interrupts(GLOBAL);
            fprintf(GSM,"AT");// Kiem tra ket noi giua MCU va SIM900
            putc(13);// ky tu CR( Carriage return)
            delay_ms(500);
            fprintf(GSM,"ATD+841659084698;");// Thuc hien Cuoc goi Toi sdt 01659084698
            putc(13);
            delay_ms(500);
            while(true)
            {
            }
            }
            Có lẻ sai mức điện áp 2 chân thôi. bạn nên chọn thạch anh 20MHZ
            TX-PIC ----->RX-SIM (Phân áp 2k2,3k3 nối mass)
            RX-PIC------>TX-SIM (1k keo nguon 5V) la ok

            Comment

            • 11dhdk1a
              Thành viên mới
              • Jan 2013
              • 4

              #7
              các bác cho em hỏi. module sim900a có chức năng GPS không.
              em xin cảm ơn

              Comment

              • 51electric
                Thành viên mới
                • Oct 2011
                • 5

                #8
                hè. em cũng đang mắc cái này. pic vẫn chưa đọc được kết quả từ sim900a trả về. em dùng terminal và proteus mô phỏng lệnh để test thì được rồi.

                Comment

                • 51electric
                  Thành viên mới
                  • Oct 2011
                  • 5

                  #9
                  sim900 và 900a không có GPS đâu bạn. sim908 mới có bạn à

                  Comment

                  Về tác giả

                  Collapse

                  khangcntt.kt Tìm hiểu thêm về khangcntt.kt

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

                  Collapse

                  Đang tải...