پاسخ : ماژول sim 548
برنامه را بررسی میکنم فردا دوباره باهم تست میکنیم
برنامه را بررسی میکنم فردا دوباره باهم تست میکنیم
Serial_data: Char = Chr(udr) If Char <> "" Then If A = 0 And Char = "$" Then A = 1 If A = 1 And Char = "G" Then B = 1 If B = 1 And Char = "P" Then C = 1 If C = 1 And Char = "G" Then D = 1 If D = 1 And Char = "G" Then E = 1 If E = 1 And Char = "A" Then F = 1
' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
$regfile "m8def.dat"
$crystal = 11000000
$baud #1 = 9600
$baud #2 = 9600
$baud = 4800
Open "comb.0:9600,8,n,1" For Output As #1
Open "comb.1:9600,8,n,1" For Input As #2
' ///////////////////////////////////////////////////////////////////////////////
'| SUBs ----------------------------------------------------------->>>>>>>>>>>>>>
' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
'Declare Sub Anim
' ///////////////////////////////////////////////////////////////////////////////
'| CONFIGURATIONs ------------------------------------------------->>>>>>>>>>>>>>
' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db7 = Portc.0 , Db6 = Portc.1 , Db5 = Portc.2_
, Db4 = Portc.3 , E = Portc.4 , Rs = Portc.5
'Config Porta.2 = Output
Config Timer1 = Timer , Prescale = 8
'Start Timer1
Cursor Off Noblink
Cls
Config Single = Scientific , Digits = 2
Config Pind.2 = Input
Config Int1 = Falling
' ///////////////////////////////////////////////////////////////////////////////
'| INTRRUPTs ------------------------------------------------------>>>>>>>>>>>>>>
' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Enable Interrupts
Enable Urxc
On Urxc Serial_data
' ///////////////////////////////////////////////////////////////////////////////
' ///////////////////////////////////////////////////////////////////////////////
'| DIMANSIONs ----------------------------------------------------->>>>>>>>>>>>>>
' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Dim Flag As Bit , Flag_sms As Bit
Dim Data_s As Byte
Dim Char As String * 1
Dim Gps_data As String * 100
Dim Gps As String * 100
Dim A As Bit , B As Bit , C As Bit , D As Bit , E As Bit , F As Bit , G As Bit , Cl1 As Bit , Cl2 As Bit
Dim Utc As String * 10
Dim Lat As String * 9 , North As String * 20
Dim Lon As String * 10 , East As String * 20
Dim Sms As String * 250 : Sms = ""
Dim Sms1 As Byte
' ///////////////////////////////////////////////////////////////////////////////
'| MACROS --------------------------------------------------------->>>>>>>>>>>>>>
' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Macro Split_data
Utc = Mid(gps , 2 , 9)
Locate 1 , 1
Lcd Utc
Lat = Mid(gps , 14 , 9)
Locate 2 , 1
Lcd Lat
Lon = Mid(gps , 26 , 9)
'Locate 1 , 1
'Lcd Lon
End Macro
' ///////////////////////////////////////////////////////////////////////////////
'| MAIN ----------------------------------------------------------->>>>>>>>>>>>>>
Cls
' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Flag = 0
Do :
Split_data
'Home
If Pind.2 = 0 Then
'Disable Urxc
Print #1 , "at"
Waitms 500
Print #1 , "at+cmgf=1"
Waitms 500
Print #1 , "AT+CMGS=" ; Chr(34) ; "0912*******" ; Chr(34)
Waitms 500
Print #1 , Lat ; Chr(26)
Waitms 500
Print #1 , "AT+CMGS=" ; Chr(34) ; "0912*******" ; Chr(34)
Waitms 500
Print #1 , Lon ; Chr(26)
Enable Urxc
End If
End
Loop
' ///////////////////////////////////////////////////////////////////////////////
'| SUB ROUTINE ---------------------------------------------------->>>>>>>>>>>>>>
' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
'----------------=============== CHECK POSITION ===============-----------------
'--------================= GET $GPGGA DATA FROM MODULE =================--------
Serial_data:
Char = Chr(udr)
If Char <> "" Then
If A = 0 And Char = "$" Then A = 1
If A = 1 And Char = "G" Then B = 1
If B = 1 And Char = "P" Then C = 1
If C = 1 And Char = "G" Then D = 1
If D = 1 And Char = "G" Then E = 1
If E = 1 And Char = "A" Then F = 1
If A = 1 And B = 1 And C = 1 And D = 1 And E = 1 And F = 1 Then
If Len(gps_data) < 72 Then
Gps_data = Gps_data + Char
Elseif Len(gps_data) = 72 Then
Gps = Left(gps_data , 71)
End If
End If
End If
If F = 1 And Udr = 13 Then
A = 0 : B = 0 : C = 0 : D = 0 : E = 0 : F = 0 : Gps_data = ""
End If
Return
دیدگاه