سلام دوستان من میخام خروجی ماژول sim300 که همه دیتاهارو تونستم بگیرم و تقریبا همه چیز اوکی ولی موقعی که میخام اطلاعات رو بگیرم ومثلا یه دستور if مقایسش کنم با مقدار مطلوب و فرضا یه رله رو روشن کنم
خروجی مودمم وقتی که اس ام اس میدم بهش یه همچین چیزی میده
+CMT: "+98911.....46","no name","12/08/23,00
04+14"
1
همینطور که میبینید اول یسری اطلاعات از شماره و اسم و ساعت و تاریخ میده بعدش یه خط پایین تر کاراکتری رو که ارسال کردیم نشون میده
مثلا من عدد یک رو ارسال کردم
اما تو برنامه نویسیم مشکل دارم طوری که بعضی وقتا رله روشن میشه بعضی اوقات نه
اینم برنامش
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
'~~~~~~~~~~~~~~~~~~~~~~~~~~ Configurations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db7 = Portb.1 , Db6 = Portb.2 , Db5 = Portb.3 , Db4 = Portb.4 , E = Portb.5 , Rs = Portc.0
Config Pind.2 = Input
Config Portc.3 = Output
Config Portc.4 = Output
Config Portc.5 = Output
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Variable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dim B As Byte
Dim Sms As String * 250 : Sms = ""
Dim Smsf As String * 250 : Smsf = ""
Dim S As Byte
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ initionaliz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
S = 0
Cls
Cursor Off
Home
Lcd "Get SMS..."
Waitms 1000
Cls
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Main program ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Do
If Pind.2 = 0 Then
Print "AT+CMGR=1"
Sms = ""
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)
Sms = Right(sms , 1)
'***************************************
If Sms = "3" Then
Set Portc.3
Lcd "3"
Wait 1
Cls
End If
If Sms = "2" Then
Set Portc.4
Lcd "2"
Wait 1
Cls
End If
If Sms = "1" Then
Set Portc.5
Lcd "1"
Wait 1
Cls
End If
'***************************************
End Select
Loop
End If
Loop
End
خروجی مودمم وقتی که اس ام اس میدم بهش یه همچین چیزی میده
+CMT: "+98911.....46","no name","12/08/23,00

1
همینطور که میبینید اول یسری اطلاعات از شماره و اسم و ساعت و تاریخ میده بعدش یه خط پایین تر کاراکتری رو که ارسال کردیم نشون میده
مثلا من عدد یک رو ارسال کردم
اما تو برنامه نویسیم مشکل دارم طوری که بعضی وقتا رله روشن میشه بعضی اوقات نه
اینم برنامش
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
'~~~~~~~~~~~~~~~~~~~~~~~~~~ Configurations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db7 = Portb.1 , Db6 = Portb.2 , Db5 = Portb.3 , Db4 = Portb.4 , E = Portb.5 , Rs = Portc.0
Config Pind.2 = Input
Config Portc.3 = Output
Config Portc.4 = Output
Config Portc.5 = Output
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Variable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dim B As Byte
Dim Sms As String * 250 : Sms = ""
Dim Smsf As String * 250 : Smsf = ""
Dim S As Byte
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ initionaliz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
S = 0
Cls
Cursor Off
Home
Lcd "Get SMS..."
Waitms 1000
Cls
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Main program ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Do
If Pind.2 = 0 Then
Print "AT+CMGR=1"
Sms = ""
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)
Sms = Right(sms , 1)
'***************************************
If Sms = "3" Then
Set Portc.3
Lcd "3"
Wait 1
Cls
End If
If Sms = "2" Then
Set Portc.4
Lcd "2"
Wait 1
Cls
End If
If Sms = "1" Then
Set Portc.5
Lcd "1"
Wait 1
Cls
End If
'***************************************
End Select
Loop
End If
Loop
End