سلام.. ممنونم از پاسختون بسیار مفید بود..
الان مدار داره کار میکنه و من تونستم شماره فرستنده پیامک و خوده پیامک رو جدا کنم و نمایش بدم اما
مدار رو که اول روشن میکنم ( منظورم میکرو هست , sim900 همیشه روشنه) مدار به درستی کار میکنه و پیغام رو نمایش میدم اما پیامک دومی که میاد هیچ اتفاقی نمافته.. انگار نه انگار..
شاید باید دستوری رو ارسال کنم یا کار خاصی انجام بدم که نمیدونم ..هر وقت تغذیه میکرو رو وصل میکنم پیامک که میاد رو نشون میده..
من در اخر برنامه یه goto main گذاشتم که برگرده به اول ولی انگار برنمیگرده...
کد:
Print "ATE0"
Waitms 400
Print "AT+IPR=9600"
Waitms 400
Print "at+csmp=49,167,0,0"
Waitms 400
Cls : Cursor Off
Main:
Test = Test + 1
Locate 4 , 15 : Lcd Test
Waitms 500
Print "at+cmgf=1"
Waitms 700
Enable Urxc
Do
Loop
Reciv:
Disable Urxc
'Cls
Do
R = Inkey()
Select Case R
Case 0
Case 10
If Text_dastor <> "" Then Goto Ebi
Case 13
If Text_dastor <> "" Then Goto Ebi
' Kalameh = Chr(r)
Case Else
Text_dastor = Text_dastor + Chr(r)
End Select
Loop
Return
Ebi:
Home
Lcd Text_dastor ; " "
Dastor = Mid(text_dastor , 1 , 6)
Home L : Lcd Dastor
S_sms = Mid(text_dastor , 13 , 2)
If Dastor = "+CMTI:" Then : Goto Read_sms
Else : Jmp Main : End If
Fo = Len(text_dastor)
Home T : Lcd Fo ; " " ; S_sms
Read_sms:
Waitms 4000
Cls
Print "AT+CMGR=" ; S_sms
Bitwait Ucsra.5 , Set
Do
R = Inkey()
Select Case R
Case 0
Case 10
If Sms <> "" Then Exit Do
Case 13
If Sms <> "" Then Exit Do
Case Else
Sms = Sms + Chr(r)
End Select
Loop
Sho_sms = Mid(sms , 22 , 13)
Do
R = Inkey()
Select Case R
Case 0
Case 79
If Payamak <> "" Then Exit Do
Case Else
Payamak = Payamak + Chr(r)
End Select
Loop
A = Len(payamak)
A = A - 5
Data_sms = Mid(payamak , 2 , A)
Home : Lcd Sho_sms
Home L : Lcd Data_sms
Goto Main شماره و پیامک رو نشون میده ولی انگار برنمیگرده یا چیزه دیگه ایه
End