پاسخ : ماژول 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
دیدگاه