اطلاعیه

Collapse
No announcement yet.

SIM900 و مشکل با آن

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    SIM900 و مشکل با آن

    سلام من با SIM900 دارم کار میکنم ، متاسفانه یک مرتبه که ON و یک مرتبه که OFF ارسال میشه خوب کار میکنه ، اما مجددا تکرار کنم ، روی LCD دستورات CMGR و تاریخ و ... مزینه و سریع رد میشه و کاری دیگه انجام نمیده .
    منتها یه حرکتی زدم و به محض دریافت SMS و انجام کار ، WATCHDOG روشن میکنم و میکرو ریست نرمافزاری میشه .این جواب داد .

    دوستان راهنمایی بفرمایند که بدون واتچ داگ این ماژول راه بیفته جه کنم ؟
    $regfile = "m32def.dat"
    $crystal = 8000000
    $baud = 9600

    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Pinc.4 , Db5 = Pinc.5 , Db6 = Pinc.6 , Db7 = Pinc.7 , E = Pinc.2 , Rs = Pinc.0

    Config Watchdog = 64

    '------------------------------
    '______________________________

    Config Portc.3 = Output
    Blk Alias Portc.3

    Config Portd.6 = Output ' LED
    Config Pind.2 = Input ' INT0

    Config Int0 = Low Level


    Dim A As Bit
    Dim R As Bit : R = 0
    Dim X As Byte : X = 0
    Dim B As Byte
    Dim G As Byte
    Dim N As Byte

    Dim Sms As String * 250 : Sms = ""
    Dim Flag_sms1 As Eram Byte
    Dim Flag_sms As Byte
    Main:
    Set Blk

    Waitms 20
    Cursor Off
    Waitms 500
    Cls
    Locate 1 , 5
    Lcd "WELCOME"
    Waitms 300

    M:
    Cls
    Locate 1 , 5
    Lcd "WAITING..."
    Waitms 300
    Print "AT+CMGD=0,4"
    Waitms 800
    Cls
    Locate 1 , 6
    Lcd "GSM ON"
    Waitms 300
    Cls
    Enable Interrupts
    Enable Int0
    On Int0 Z
    Cls


    Do
    Locate 1 , 1
    Lcd "WAITING RECEIVE"
    Locate 2 , 7
    Lcd "SMS"
    Waitms 400
    Loop

    Z:
    Locate 1 , 4
    Lcd "RECEIVE SMS"
    Waitms 300
    Cls
    Waitms 150
    Do
    Print "AT+CMGR=1"
    Sms = ""
    G = 0
    A = 0
    Cls
    Waitms 100

    Do
    B = Inkey()
    Select Case B
    Case 0:
    Case 13:
    Incr G

    If Sms <> "" Then
    A = 1
    Exit Do
    End If

    Case 10:
    If Sms <> "" Then
    A = 1
    Exit Do
    End If

    Case Else
    If G = 3 Then
    Sms = Sms + Chr(b)

    End If
    End Select
    Loop
    Cls
    Locate 1 , 1
    Lcd Sms
    Waitms 500
    Goto Sr

    Loop

    Sr:
    If A = 1 Then
    If Sms = "ON"then
    Portd.6 = 1
    Waitms 100
    Cls
    Locate 1 , 4
    Lcd "OPEN DOOR"
    Waitms 400
    Goto Sho
    End If
    End If

    If A = 1 Then
    If Sms = "OFF"then
    Portd.6 = 0
    Waitms 100
    Cls
    Locate 1 , 4
    Lcd "CLOSE DOOR"
    Waitms 400
    Goto Sho2
    End If
    End If




    Sho:

    Cls
    Print "AT+CMGR=1"
    Sms = ""

    Incr X
    Do
    B = Inkey()
    Select Case B
    Case 0:
    Case 13:

    If Sms <> "" Then Exit Do


    Case 10:
    If Sms <> "" Then Exit Do


    Case Else
    Sms = Sms + Chr(b)

    End Select
    Loop

    If X = 1 Then Goto Sho
    If X = 2 Then Goto Sho
    If X = 3 Then Goto Sho
    If X = 4 Then Goto Sho
    If X = 5 Then Goto Sho
    If X = 6 Then Goto Sho
    If X = 7 Then Goto Sho
    If X = 8 Then Goto Sho
    If X = 9 Then Goto Sho
    If X = 10 Then Goto Sho
    If X = 11 Then Goto Sho
    If X = 12 Then Goto Sho
    If X = 13 Then Goto Sho
    If X = 14 Then Goto Sho
    If X = 15 Then Goto Sho
    If X = 16 Then Goto M

    X = 0
    A = 0
    G = 0
    Cls

    Waitms 10
    Goto Main
    'Start Watchdog
    Return


    Sho2:
    Cls
    Print "AT+CMGR=1"
    Sms = ""

    Incr X
    Do
    B = Inkey()
    Select Case B
    Case 0:
    Case 13:

    If Sms <> "" Then Exit Do


    Case 10:
    If Sms <> "" Then Exit Do


    Case Else
    Sms = Sms + Chr(b)

    End Select
    Loop

    If X = 1 Then Goto Sho2
    If X = 2 Then Goto Sho2
    If X = 3 Then Goto Sho2
    If X = 4 Then Goto Sho2
    If X = 5 Then Goto Sho2
    If X = 6 Then Goto Sho2
    If X = 7 Then Goto Sho2
    If X = 8 Then Goto Sho2
    If X = 9 Then Goto Sho2
    If X = 10 Then Goto Sho2
    If X = 11 Then Goto Sho2
    If X = 12 Then Goto Sho2
    If X = 13 Then Goto Sho2
    If X = 14 Then Goto Sho2
    If X = 15 Then Goto Sho2
    If X = 16 Then Goto M

    X = 0
    A = 0
    G = 0
    Cls

    Waitms 10
    Goto Main
    'Start Watchdog
    Return
    End 'end program

    #2
    پاسخ : SIM900 و مشکل با آن

    کیست مرا یاری کند :angry: :angry: :angry:

    دیدگاه


      #3
      پاسخ : SIM900 و مشکل با آن

      نوشته اصلی توسط ahmadigonabad
      سلام دوست عزیز مشکل از تاخیرات هست
      این کد رو تست کن
      http://ahmadigonabad.ir/wp-content/uploads/noname1.txt
      ممنون دوست عزیز .
      الان مدار دستم نیس ، چک میکنم خبرشو میدم

      سپاس فراوان .

      دیدگاه


        #4
        پاسخ : SIM900 و مشکل با آن

        نوشته اصلی توسط ahmadigonabad
        این برنامه الان پیام که بیاد چک میکنه و رو ال سی دی هم نشون میده
        و یه پایه اگه زمین بشه میره یه پیام میفرسته
        من خودم بسکام زیاد بلد نیستم سمت سی رفتی بهتر میتونم کمکت کنم
        http://ahmadigonabad.ir/?attachment_id=907
        ممنون زحمت کشیدی دوست عزیز .

        دیدگاه

        لطفا صبر کنید...
        X