PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : کمک فوری،ارتباط با ماژول sim900



ariaaaa
20-06-2013, 01:25
سلام دوستان:0013:
پروژه پایان ترمم کنترل لوازم با اس ام اس هس با ماژول sim900 برنامه اش رو هم نوشتم اما اس ام اس اول رو که میفرستم میگیره و انجام میده اما دیگه مسیجا بعدی رو که میفرسم عکس العملی نشون نمیده ، برنامه ام رو میزارم از عزیزان خواهش میکنم یه نگاهیش بندازن ببینن مشکل از کجا میتونه باشه :alc:
برنامه ام تو فایل پیوست هم هس
$regfile = "m16def.dat"
$crystal = 8000000
$baud = 9600
'================================================= ===================================
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
'================================================= ===================================
Enable Interrupts
Enable Urxc
'================================================= ====================================
On Urxc Uart0
Declare Sub Getsms
Declare Sub Del
Declare Sub Sendon
Declare Sub Sendoff
'================================================= ====================================
Dim Text As String * 100 : Text = ""
Dim Baf As String * 10 : Baf = ""
Dim Reg As String * 40 : Reg = ""
Dim H As String * 1 : H = ""
Dim Tool As Byte : Tool = 0
Dim A(100) As Byte
Dim B As Byte : B = 0
Dim C As Byte : C = 0
Dim D As Byte : D = 0
Dim E As Byte : E = 0
Dim F As Byte : F = 0
Dim G As Byte : G = 0
Dim Flag As Byte : Flag = 0
'================================================= ===================================
Config Portd = Output
'================================================= ===================================
Cursor Off
Cls
'================================================= ===================================
Main:
Call Del
Select Case Flag
Case 1 :
Locate 1 , 1
Lcd " MOTOR IS ON"
Locate 2 , 1
Lcd " Waiting For SMS"
Case 2 :
Locate 1 , 1
Lcd " MOTOR IS OFF"
Locate 2 , 1
Lcd " Waiting For SMS"
Case Else :
Locate 1 , 1
Lcd " Waiting For SMS"
End Select
'================================================= ===================================
Do
Print "AT+CMGR=1"
Waitms 400
Call Getsms
Tool = Len(text)
Baf = ""
For B = 1 To Tool
H = Mid(text , B , 1)
If H = "M" Then
Baf = Baf + H
C = B + 1
H = Mid(text , C , 1)
If H = "=" Then
Baf = Baf + H
D = C + 1
H = Mid(text , D , 1)
If H = "O" Then
Baf = Baf + H
E = D + 1
H = Mid(text , E , 1)
If H = "N" Then
Baf = Baf + H
End If
End If
End If
End If
Next B
If Baf = "M=ON" Then
Cls
Locate 1 , 1
Lcd "MOTOR ON"
Set Portd.6
Call Sendon
Flag = 1
Exit Do
End If
'================================================= ==================================
Baf = ""
For B = 1 To Tool
H = Mid(text , B , 1)
If H = "M" Then
Baf = Baf + H
C = B + 1
H = Mid(text , C , 1)
If H = "=" Then
Baf = Baf + H
D = C + 1
H = Mid(text , D , 1)
If H = "O" Then
Baf = Baf + H
E = D + 1
H = Mid(text , E , 1)
If H = "F" Then
Baf = Baf + H
F = E + 1
H = Mid(text , F , 1)
If H = "F" Then
Baf = Baf + H
End If
End If
End If
End If
End If
Next B
If Baf = "M=OFF" Then
Cls
Locate 1 , 1
Lcd "MOTOR OFF"
Reset Portd.6
Call Sendoff
Flag = 2
Exit Do
End If
'================================================= ===================================
Loop
Waitms 250
Goto Main
End 'end program
'================================================= ===================================
Uart0:
Incr G
A(g) = Udr
Return
'================================================= ===================================
Sub Getsms
Text = ""
For G = 1 To 100
Text = Text + Chr(a(g))
Next G
End Sub
'================================================= ===================================
Sub Del
Reg = "AT+CMGDA=" + Chr(34) + "DEL ALL" + Chr(34)
Print Reg
Waitms 500
While G = 0
nop
Wend
Call Getsms
Locate 1 , 1
Lcd Text
Locate 2 , 1
Lcd "DELLET ALL SMS"
Wait 5
Cls
End Sub
'================================================= ====================================
Sub Sendon
Print "AT"
Waitms 500
Print "AT+CMGF=1"
Waitms 500
Print "AT+CMGS=" ; Chr(34) ; "093********" ; Chr(34)
Print "AT+CMGS=" ; Chr(34) ; "093********" ; Chr(34)
Waitms 500
Print " MOTOR IS ON"
Waitms 600
End Sub
'================================================= ===================================
Sub Sendoff
Print "AT"
Waitms 500
Print "AT+CMGF=1"
Waitms 500
Print "AT+CMGS=" ; Chr(34) ; "093********" ; Chr(34)
Print "AT+CMGS=" ; Chr(34) ; "093********" ; Chr(34)
Waitms 500
Print " MOTOR IS OFF"
Waitms 600
End Sub

meysam.z
20-06-2013, 12:39
دوست عزیز مشکل اینجاست که شما اول بیاید سلول های حافظه سیم کارت رو پاک کنید بعد دریافت کنید امکان داره شما وقتی دفعه اول برای ماژول SMS می فرستی ماژول SMS رو دریافت و در خانه یک حافظه ذخیره می کنه و شما داده ها رو از خانه شماره یک می خونی و متناظر با اون یه کاری انجام میدی دفعه بعد هم که شما برای ماژول SMS میفرستی در خانه شماره 2 ذخیره می شه و الی اخر ...
دستور پاک کردن حافظه سیم کارت توسط ماژول :



print("AT+CMGD=0,4")