اطلاعیه

Collapse
No announcement yet.

sim800 بسکام

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    sim800 بسکام

    سلام من یه برنامه با زبان بسکام خریدم که وقتی گرما بالاتر از رنج تعریف شده میره sms میده.توی توضیحاتش نوشته به 3 تا سیم کارت پیام میده اما فقط به یکی پیام میده چه جوری میشه کاری کرد که به سه تا سیم کارت پیام بده
    Data_sms:
    Var = 0 : Data_eram = "" : Code = ""
    Incr T2
    If T2 > 3 Then
    T2 = 0
    Gosub Meno
    End If
    If T2 = 1 Then
    Code = Tell1
    Waitms 10
    Var = Asc(code)
    If Var = 255 Or Code = "" Then Gosub Data_sms
    End If
    If T2 = 2 Then
    Code = Tell2
    Waitms 10
    Var = Asc(code)
    If Var = 255 Or Code = "" Then Gosub Data_sms
    End If
    If T2 = 3 Then
    Code = Tell3
    Waitms 10
    Var = Asc(code)
    If Var = 255 Or Code = "" Then Gosub Data_sms
    End If
    Var = 0 : T2 = 5
    Print "AT+CMGS=" ; Chr(34) ; Code ; Chr(34)
    Wait 1
    Print Sms ; " SERVER ROOM" ; Chr(26)
    Gosub Data_sms
    Return
    '************************************************* ************ Sub [Status_Temp]
    Status_temp:
    Sms = ""
    If Error = 2 Then
    Sms = "Temp ERROR!!! / "
    End If
    Code = Fusing(temp , "#.#")
    Sms = Sms + "Temp : " + Code + " C"
    Waitms 20
    Gosub Data_sms
    Return

    #2
    پاسخ : sim800 بسکام

    کد خودتون و در یک تگ " #" که برای کد هست قرار بدید.تا متن کد تون جهت عوض نکنن.و جابجای اتفاق نیفته.
    در حالت کلی برا اینکه این کد و تحلیل کنی حداقلش باید 15دقیقه وقت گذاشت.15دقیقه وقت بارزشی است که یک کاربر در اینجا برای شما میذاره.شما هم برای وقت عزیان ارزش قایل شوید.بنابراین از شما میخوام که دوباره کدخودتون و در تگ کد قراربدید تا بهتر بشه دید.مطلب بعدی اینه که مقدار کد شما کامل نیست.صلا متغیر هایی که در داخلش اومده و یا توابعی که در بین کد تون فراخوانی شده ولی خد توابع نیست.بنابراین با این قطعه کدتون نمیشه به نتیجه رسید.
    جدیدترین ویرایش توسط Namvar14; ۰۸:۲۰ ۱۳۹۹/۰۶/۱۲.
    eshop-hodhod.ir

    دیدگاه


      #3
      پاسخ : sim800 بسکام

      سلام ببخشید بلد نبودم .کد برنامه رو هم کامل گذاشتم
      کد:
      [FONT=Yekan]$regfile = "m8def.dat"[/FONT]
      $crystal = 8000000
      $hwstack = 128
      $swstack = 128
      $framesize = 128
      '************************************************************************** Baud
      $baud = 9600
      '************************************************************************ TIMER2
      Config Timer2 = Timer , Prescale = 1024
      Enable Interrupts
      Enable Ovf2
      On Ovf2 Clock
      Stop Timer2
      '*************************************************************************** ADC
      Config Adc = Single , Prescaler = Auto
      Start Adc
      Enable Adc
      '*************************************************************************** LCD
      Config Lcdpin = Pin , Db4 = Pinb.0 , Db5 = Pind.7 , Db6 = Pind.6 , Db7 = Pind.5 , Rs = Pinb.1 , E = Pinb.2
      Config Lcd = 16 * 2
      Cursor Off
      Cls
      '***************************************************************** Config Output
      Config Portb.4 = Output                                     'LED Temp Error
      Config Portb.5 = Output                                     'LED Temp Normal
      Config Portc.2 = Output                                     'RLY Temp Down
      Config Portc.3 = Output                                     'RLY Temp Up
      '****************************************************************** Alias Output
      Rly_temp_down Alias Portc.2
      Rly_temp_up Alias Portc.3
      Led_temp_error Alias Portb.4
      Led_temp_normal Alias Portb.5
      Rly_temp_down = 0 : Rly_temp_up = 0 : Led_temp_error = 0 : Led_temp_normal = 0
      '****************************************************************** Config Input
      Config Pind.2 = Input                                       'Pin Ring GSM
      '******************************************************************* Alias Input
      Ri Alias Pind.2
      '**************************************************************** Dim Var As ...
      Dim T As Byte
      Dim F0 As Byte
      Dim T2 As Byte
      Dim T3 As Byte
      Dim T7 As Byte
      Dim Show As Bit
      Dim Mic As Byte
      Dim Tik As Byte
      Dim Var As Byte
      Dim Din As Word
      Dim Error As Byte
      Dim Temp As Single
      Dim Time_lcd As Byte
      Dim Var_up As Single
      Dim Var_dn As Single
      Dim Sms As String * 200
      Dim Code As String * 20
      Dim T_dn As Eram Single
      Dim T_up As Eram Single
      Dim T_dn_flash As Single
      Dim T_up_flash As Single
      Dim Data_in As String * 1
      Dim Data_sd As String * 4
      Dim Str_var As String * 1
      Dim _string As String * 3
      Dim Var_eram As String * 4
      Dim Data_eram As String * 4
      Dim Tell1 As Eram String * 14
      Dim Tell2 As Eram String * 14
      Dim Tell3 As Eram String * 14
      Dim Code_charge As String * 30
      Dim Password As Eram String * 4
      Dim Var_epeam As Eram String * 4
      Code = Password
      Waitms 10
      Var_eram = Var_epeam
      Waitms 10
      If Code = Var_eram Then
      Code = "0000"
      Password = Code
      Waitms 10
      T_dn = 20
      Waitms 10
      T_up = 40
      Waitms 10
      End If
      T_dn_flash = T_dn
      Waitms 10
      T_up_flash = T_up
      Waitms 10
      Var_dn = T_dn_flash + 1
      If T_up_flash > 0 Then
      Var_up = T_up_flash - 1
      Else
      Var_up = T_up_flash
      End If
      Start Timer2
      '*******************************************************************************
      Cls
      Locate 1 , 1
      Lcd " Please wait... "
      Locate 2 , 1
      Lcd "    Print AT    "
      Wait 2
      Print "AT"
      Wait 2
      Print "AT"
      Wait 2
      Print "AT"
      Wait 4
      Print "ATE0"
      Locate 2 , 1
      Lcd "   Print ATE0   "
      Wait 4
      Print "AT+CMGF=1"
      Locate 2 , 1
      Lcd "Print AT+CMGF=1 "
      Wait 4
      Print "AT+MORING=1"
      Locate 2 , 1
      Lcd " Print AT+MORING"
      Wait 2
      Print "AT+CSMP=17,167,0,0"
      Locate 2 , 1
      Lcd ">CSMP=17,167,0,0"
      Wait 2
      Gosub Meno
      '******************************************************************** Sub [Meno]
      Meno:
      Show = 0
      Cls
      Locate 1 , 1
      Lcd " Please wait... "
      Locate 2 , 1
      Lcd "Setting up a SIM"
      Wait 10
      Print "AT+CMGD=4,4"
      Show = 1
      Do
      ''''''''''''''''''''''''''''''''''
      If Error = 1 Then
      Error = 2
      Gosub Status_temp
      End If
      ''''''''''''''''''''''''''''''''''
      If Ri = 0 Then
      Waitms 200
      If Ri = 1 Then Gosub Read_sms
      If Ri = 0 And Mic = 1 Then
      Wait 2
      Print "ATA"
      Wait 2
      Print "AT+CMIC=0,15"
      End If
      End If
      ''''''''''''''''''''''''''''''''''
      If T7 >= 129 And Mic = 1 Then
      T7 = 0 : Mic = 0
      Print "ATH"
      Wait 3
      Sms = "MIC [ OFF ]"
      Gosub Data_sms
      End If
      Loop
      Return
      '**************************************************************** Sub [Read_sms]
      Read_sms:
      Show = 0
      Wait 2
      Print "AT+CMGR=1"
      Sms = "" : Data_in = "" : T = 0 : T3 = 0 : F0 = 1
      Do
      Var = Inkey()
      Select Case Var
      Case 0:
      Case 13:
      Case 10:
      Case 34:
      Incr T
      If T = 8 Then F0 = 2
      Case Else
      Data_in = Chr(var)
      If Data_in = "O" And T = 8 Then Exit Do
      If Data_in = "o" And T = 8 Then Exit Do
      If F0 = 2 Then
      Sms = Sms + Chr(var)
      End If
      End Select
      If T3 >= 3 Then Exit Do
      Loop
      F0 = 0 : T = 0 : T3 = 0
      Data_sd = Mid(sms , 1 , 4)
      Waitms 20
      If Len(sms) = 8 Or Len(sms) = 19 Then
      If Data_sd = "temp" Or Data_sd = "Temp" Or Data_sd = "TEMP" Then Gosub Run
      If Data_sd = "mic1" Or Data_sd = "Mic1" Or Data_sd = "MIC1" Then Gosub Run
      _string = Mid(sms , 1 , 2)
      If _string = "dn" Or _string = "DN" Or _string = "Dn" Then Gosub Edit_temp
      If _string = "up" Or _string = "UP" Or _string = "Up" Then Gosub Edit_temp
      _string = Mid(sms , 1 , 3)
      If _string = "tel" Or _string = "Tel" Or _string = "TEL" Then Gosub Edit_tell
      End If
      If Data_sd = "pass" Or Data_sd = "Pass" Or Data_sd = "PASS" And Len(sms) = 12 Then Gosub Edit_password
      Gosub Meno
      Return
      '********************************************************* Sub [Verify_password]
      Verify_password:
      Show = 0
      Code = "" : Data_eram = ""
      Code = Mid(sms , 5 , 4)
      Data_eram = Password
      Waitms 10
      If Code = Data_eram Then
      Code = "OK" : Data_eram = ""
      End If
      Return
      '*********************************************************** Sub [Edit_password]
      Edit_password:
      Gosub Verify_password
      If Code = "OK" Then
      Code = Mid(sms , 9 , 4)
      Password = Code
      Waitms 10
      '''''''''''''''''''''''''Start Show LCD
      Cls
      Locate 1 , 1
      Lcd "OK>Edit Password"
      Locate 2 , 1
      Lcd "<electronics 98>"
      '''''''''''''''''''''''''END Show LCD
      Sms = "OK >>> New Password : " + Code
      Gosub Data_sms
      End If
      Gosub Meno
      Return
      '**************************************************************** Sub [Run_look]
      Run:
      Gosub Verify_password
      If Code = "OK" Then
      Cls
      Locate 1 , 1
      Lcd "OK>Verify SMS..."
      Locate 2 , 1
      Lcd "<electronics 98>"
      If Data_sd = "mic1" Or Data_sd = "Mic1" Or Data_sd = "MIC1" Then
      T7 = 0 : Mic = 1
      Sms = "MIC [ ON ] For [ 120 s ]"
      Gosub Data_sms
      End If
      If Data_sd = "temp" Or Data_sd = "Temp" Or Data_sd = "TEMP" Then
      Gosub Status_temp
      End If
      End If
      Gosub Meno
      Return
      '*************************************************************** Sub [Edit_tell]
      Edit_tell:
      Gosub Verify_password
      If Code = "OK" Then
      Code = Mid(sms , 9 , 11)
      Cls
      Locate 1 , 1
      Lcd "OK>Verify SMS..."
      Locate 2 , 1
      Lcd "<electronics 98>"
      If Data_sd = "tel1" Or Data_sd = "Tel1" Or Data_sd = "TEL1" Then
      Tell1 = Code
      Waitms 10
      Sms = "Phone [ 1 ] Number Saved : [ " + Code + " ]"
      Gosub Data_sms
      End If
      If Data_sd = "tel2" Or Data_sd = "Tel2" Or Data_sd = "TEL2" Then
      Tell2 = Code
      Waitms 10
      Sms = "Phone [ 2 ] Number Saved : [ " + Code + " ]"
      Gosub Data_sms
      End If
      If Data_sd = "tel3" Or Data_sd = "Tel3" Or Data_sd = "TEL3" Then
      Tell3 = Code
      Waitms 10
      Sms = "Phone [ 3 ] Number Saved : [ " + Code + " ]"
      Gosub Data_sms
      End If
      End If
      Gosub Meno
      Return
      '*************************************************************** Sub [Edit_temp]
      Edit_temp:
      Gosub Verify_password
      If Code = "OK" Then
      Code = Mid(sms , 3 , 2)
      Cls
      Locate 1 , 1
      Lcd "OK>Verify SMS..."
      Locate 2 , 1
      Lcd "<electronics 98>"
      '//////////////////////////////////////////////////////////Edit Temp Up
      If _string = "up" Or _string = "UP" Or _string = "Up" Then
      T_up_flash = Val(code)
      T_up = T_up_flash
      Waitms 10
      If T_up_flash > 0 Then
      Var_up = T_up_flash - 1
      Else
      Var_up = T_up_flash
      End If
      Sms = "OK >>> Temp Up : " + Str(t_up_flash) + " C "
      Gosub Data_sms
      End If
      '//////////////////////////////////////////////////////////Edit Temp Down
      If _string = "dn" Or _string = "DN" Or _string = "Dn" Then
      T_dn_flash = Val(code)
      T_dn = T_dn_flash
      Waitms 10
      Var_dn = T_dn_flash + 1
      Sms = "OK >>> Temp Down : " + Str(t_dn_flash) + " C "
      Gosub Data_sms
      End If
      End If
      Gosub Meno
      Return
      '**************************************************************** Sub [Data_sms]
      Data_sms:
      Var = 0 : Data_eram = "" : Code = ""
      Incr T2
      If T2 > 3 Then
      T2 = 0
      Gosub Meno
      End If
      If T2 = 1 Then
      Code = Tell1
      Waitms 10
      Var = Asc(code)
      If Var = 255 Or Code = "" Then Gosub Data_sms
      End If
      If T2 = 2 Then
      Code = Tell2
      Waitms 10
      Var = Asc(code)
      If Var = 255 Or Code = "" Then Gosub Data_sms
      End If
      If T2 = 3 Then
      Code = Tell3
      Waitms 10
      Var = Asc(code)
      If Var = 255 Or Code = "" Then Gosub Data_sms
      End If
      Var = 0 : T2 = 5
      Print "AT+CMGS=" ; Chr(34) ; Code ; Chr(34)
      Wait 1
      Print Sms ; " / www.electronics98.com" ; Chr(26)
      Gosub Data_sms
      Return
      '************************************************************* Sub [Status_Temp]
      Status_temp:
      Sms = ""
      If Error = 2 Then
      Sms = "Temp ERROR!!! / "
      End If
      Code = Fusing(temp , "#.#")
      Sms = Sms + "Temp : " + Code + " C"
      Waitms 20
      Sms = Sms + " | Temp Down : " + Str(t_dn_flash) + " C"
      Waitms 20
      Sms = Sms + " | Temp up : " + Str(t_up_flash) + " C"
      Waitms 20
      Str_var = Str(rly_temp_down)
      Sms = Sms + " | Relay Temp Down : " + Str_var
      Waitms 20
      Str_var = Str(rly_temp_up)
      Sms = Sms + " | Relay Temp Up : " + Str_var
      Waitms 20
      Gosub Data_sms
      Return
      '******************************************************************* Sub [Clock]
      Clock:
      Incr Tik
      Din = Din + Getadc(1)
      If Tik >= 30 Then
      Din = Din / Tik
      Temp = Din / 2.04
      Tik = 0
      Gosub Clock_tik
      End If
      Return
      '*************************************************************** Sub [Clock_tik]
      Clock_tik:
      If Temp <= T_dn_flash Then
      Rly_temp_down = 1
      If Error = 0 Then Error = 1
      End If
      If Temp > Var_dn Then
      Rly_temp_down = 0
      End If
      If Temp >= T_up_flash Then
      Rly_temp_up = 1
      If Error = 0 Then Error = 1
      End If
      If Temp < Var_up Then
      Rly_temp_up = 0
      End If
      ''''''''''''''''''''''''''''''''''''''''''''''''''Status LEDs Temp
      If Temp > Var_dn And Temp < Var_up Then Error = 0
      If Error = 0 Then
      Led_temp_error = 0
      Toggle Led_temp_normal
      Else
      Led_temp_normal = 0
      Toggle Led_temp_error
      End If
      ''''''''''''''''''''''''''''''''''''''''''''''''''
      If F0 <> 0 And T3 < 20 Then Incr T3
      If F0 = 0 And T3 <> 0 Then T3 = 0
      '''''''''''''''''''''''''''''''''''''''''''''''''' MIC
      If Mic = 1 And T7 < 130 Then
      Incr T7
      End If
      If Mic = 0 And T7 <> 0 Then
      T7 = 0
      End If
      ''''''''''''''''''''''''''''''''''''''''''''''''''Temperature Measurement
      Incr Time_lcd
      If Time_lcd > 4 Then Time_lcd = 1
      If Show = 1 Then
      Locate 1 , 1
      Lcd "                "
      Locate 1 , 1
      Lcd "> Temp : " ; Fusing(temp , "#.#") ; " c  "
      If Time_lcd = 1 Or Time_lcd = 2 Then
      Locate 2 , 1
      Lcd "                "
      Locate 2 , 1
      Lcd "Temp Down:" ; Fusing(t_dn_flash , "#.#") ; " c  "
      End If
      If Time_lcd = 3 Or Time_lcd = 4 Then
      Locate 2 , 1
      Lcd "                "
      Locate 2 , 1
      Lcd "Temp Up :" ; Fusing(t_up_flash , "#.#") ; " c  "
      End If
      End If
      Return
      '------------------------------END PROGRAM--------------------------------------
      'Farhad Akbari
      [FONT=Yekan]'www.electronics98.com[/FONT]

      دیدگاه

      لطفا صبر کنید...
      X