اطلاعیه

Collapse
No announcement yet.

چک کردن از درست نوشتن برنامه بسکام

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

    چک کردن از درست نوشتن برنامه بسکام

    با سلام
    من یک برنامه نوشتم مال در بازکن تلفنی میخواستم ببینم درست نوشتمش اینم برنامه
    کد:
    $regfile = "m8def.dat"
    $crystal = 8000000
    '$baud = 9600
    Config Portd = Input
    Config Portb.7 = Input
    Config Portb.6 = Output
    Config Portc.5 = Output
    Config Portc.4 = Output
    Config Portc.3 = Output
    Config Debounce = 50
    Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.4 , Db6 = Portb.5 , Db7 = _
    Portc.0 , E = Portb.2 , Rs = Portb.1
    Config Lcd = 16 * 2
    Cursor Off
    Cls
    Declare Sub Main
    Dim D As Long , Seco As Byte , A As Byte , B As Byte , C As String * 8 , F As Long
    Dim E As Eram Long
    Sina:
    Delay
    Home
    Lcd "  Waiting"
    Wait 1
    Do
    If Pinb.7 = 1 Then Jmp Q
    Loop
    Q:
    Cls
    Home L
    Lcd "  javab"
    Waitms 50
    Set Portb.6
    Cls
    If E = &HFFFFFFFF Then
    jmp Here
    Else
    jmp Sh
    End If
    Here:
    E = 123456
    Sh:
    Cls : Home : Lcd "PASSWORD ENTER=#"
    B = 0 : C = "" :
    Locate 2 , 1
    Call Main
    If E = D Then
      If Pind = &B00001010 Then
      Goto Bb
      Else
      Jmp Control
      End If
    Else
     Cls : Home
     Lcd "Wrong Password"
     Reset Portb.6
     Wait 2 : Cls : Home : Jmp Sina
    End If
    Bb:
    Cls : Cursor Off : Home
    Lcd "1:Change Pass"
    Locate 2 , 1 : Lcd "2:Back"
    Bc:
    A = Pind
    If Seco <= 60 And A > &B00001100 Then
     Reset Portb.6
     Goto Sina
    '--------------------------
    A = Lookup(a , Jadval)
    If A = 49 Then Jmp Change
    If A = 50 Then Jmp Sh
    jmp Bc
    Change:
    Cls : Cursor Off : Home
    Lcd "Type Old Pass"
    Locate 2 , 1
    Call Main
    If E = D Then
      jmp Gh
    Else
      Cls : Home : Lcd "Wrong Pass" : Wait 2
      Reset Portb.6
      jmp sina
    End If
    Gh:
    Cls : Cursor Off : Home
    Lcd "Type New Pass"
    Locate 2 , 1
    Call Main
    E = D
    jmp Bb
    End
    
    Control:
    Cls
    Home
    Lcd "  wellcome"
    Wait 3
    Cls
    000:
    Do
    If Seco <= 60 And Pind < &B00001100 Then
     jmp klid
    Else
     Reset Portb.6
     jmp sina
    End If
    Klid:
    If Pind = &B00000001 Then Goto Relay1
    If Pind = &B00000010 Then Goto Relay2
    If Pind = &B00000011 Then Goto Relay3
    If Pind = &B00000100 Then Goto Relay1_off
    If Pind = &B00000101 Then Goto Relay2_off
    If Pind = &B00000110 Then Goto Relay3_off
    If Pind = &B00001001 Then Goto Int_off
    
    Loop
    
    
    ' LABEL LABEL LABEL LABEL LABEL LABEL LABEL LABEL LABEL LABEL LABEL LABELLABEL
    
    '**************************************TV***************************************
    
    Int_off:
    Waitms 10
    Reset Portb.6
    Waitms 10
    jmp sina
    
    
    Relay1:
    
      Cls
      Set Portc.5
      If Portc.5 = 1 Then
      Locate 1 , 4
      Lcd "Relay1 on"
      End If
      Waitms 100
      jmp 0000
    
    Relay1_off:
    
      Cls
      Reset Portc.5
      If Portc.5 = 1 Then
      Locate 1 , 4
      Lcd "Relay1 off"
      End If
      Waitms 100
      jmp 0000
    
    
    '***************************************WASHER**********************************
    
    
    Relay2:
    
      Cls
      Set Portc.4
      If Portc.4 = 1 Then
      Locate 1 , 3
      Lcd "Relay2"
      End If
      Waitms 100
      jmp 0000
    
    Relay2_off:
    
      Cls
      Reset Portc.4
      If Portc.4 = 1 Then
      Locate 1 , 3
      Lcd "Relay2 Off"
      End If
      Waitms 100
      jmp 0000
    
    
    
    '**************************************FAN**************************************
    
    
    Relay3:
    
      Cls
      Set Portc.3
      If Portc.3 = 1 Then
      Locate 1 , 3
      Lcd "Relay3 ON"
      End If
      Waitms 100
      jmp 0000
    
    Relay3_off:
    
      Cls
      Reset Portc.3
      If Portc.3 = 1 Then
      Locate 1 , 3
      Lcd "Relay3 Off"
      End If
      Waitms 100
      jmp 0000
    
    
    
    End                             'end program
    '-----------------------------------------------------------
    
    Main:
    B = 0 : C = ""
    Aa:
    A = Pind
    If Seco <= 60 And A > &B00001100 Then
     Reset Portb.6
     Goto Sina
    A = Lookup(a , Jadval)
    Select Case A
    '----------------------
    Case 48 To 57:
    If B < &B00001000 Then
      Incr B
      Lcd String(1 , A)
      C = C + String(1 , A)
    End If
    jmp Aa
    '----------------------
    Case 35:
    D = Val(c)
    End Select
    Return
    '--------------------------------------------------
    Jadval:
    Data 48 , 49 , 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 42 , 35
    :read: :cry2: :angry: :nerd: :job: :agree: :agree:

    #2
    پاسخ : چک کردن از درست نوشتن برنامه بسکام

    خب اخه وقتی نه سخت افزار داریم نه چیزی چطور تشخیص بدیم درسته ؟ oo:

    تنها راه تستش توسط خودتونه برادر من.
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
    ------------------------------------------------------------------------------------------------------
    محصولات

    دیدگاه


      #3
      پاسخ : چک کردن از درست نوشتن برنامه بسکام

      این در بازکن تلفنی طوریه که شما اول بعد جواب دادن گوشی توسط دستگاه از شما رمز پیش فرض 123456 رو میخواد با زدن کلید مربع وارد میشوید و رمز نیز قابل تغییر میباشه و چند تا رله هم داره که بعد از وارد شدن قابلیت قطع و وصل داره
      توضیحات برنامه
      اولش که همه پیکر بندی
      اگر پین b.7 یک شد یعنی تلفن در حال زنگ زدنه و گوشی رو جواب بده
      و پین b.6 یک کن تا رله وصل بشه و گوشی جواب داده بشه
      در خط بعدی میگه اگر متغیر E مساوی با یک شد چون در eeprom مقدار اولیش 1 است
      پرش میکنه به لیبل here و متغیر e=123456 می کنه
      (اما وقتی کاربر رمز رو عوض کنه و برق مدار رو قطع کنه شرط here برقرار نمیشه و به لیبل sh پرش میکنه
      و دیگه کاری به داخل e نداره
      خط بعدی متغیر ها رو مقدار دهی می کنیم
      و سابروتین main رو فراخونی میکنه که توضیحاتش رو در آخر میدم
      اگر متغیر e=d شد
      برو خط بعدی پین d هم به آی سی mt8870 وصله
      اگر pind=10 شد برو به لیبل bb
      ذر غیر اینصورت
      برو به لیبل کنترل
      در غیر اینصورت پسورد اشتباه است گوشی رو قطع کن


      بقیه اشم باشه فردا :job: :bye :nice: :nerd: :angry: oo: :applause: :wow: :cry2: :read: :agree: :question: :smile: :surprised: :mrgreen: :rolleyes: :eek:

      دیدگاه


        #4
        پاسخ : چک کردن از درست نوشتن برنامه بسکام

        اینم PCB که خودم درست کردم و در اصل طرح کلی رو از روی این پروژه برداشتمش فقط تغییراتی کلی دادم مثلا مگا 16 رو کردم مگا 8 و جای پایه اشم کمی تغییر کرده
        http://uplod.ir/sytc4oarlzvr/proje_asli.zip.htm
        اینم PCB
        http://uplod.ir/i8q7z00feijc/d.rar.htm

        دیدگاه


          #5
          پاسخ : چک کردن از درست نوشتن برنامه بسکام

          برنامه رو هم که تغییر دادم تا بشه که با رمز وارد شد و رمز رو هم تغییر داد که از روی پروژه قفل رمزدار زیر نوشتمش برای همین میگم ببینم درست نوشتمش چون مجبور بودم تغییراتی توش انجام بدم چون ماکه صفحه کلید نداریم مثل قفل رمزدار برای همین خروجی mt8870 که به Pind وصله اعداد رو به ما میده
          http://uplod.ir/yuaq4ixob98e/قفل_رمزدار.zip.htm

          دیدگاه


            #6
            پاسخ : چک کردن از درست نوشتن برنامه بسکام

            اینم لینک در ست پروژه قفل رمز دار
            http://uplod.ir/jx3sz5590fgc/1.zip.htm

            دیدگاه


              #7
              پاسخ : چک کردن از درست نوشتن برنامه بسکام

              حالا بقیه توضیحات برنامه
              وبرو به لیبل اولیه سینا
              در این شرط اگر شما کلید ستاره رو بزنید به قسمت تغییر رمز میروید که شماره کلید ستاره 1010 است و به لیبل bb
              مراجعه می کند و روی LCD تایپ میکنه 1 -change pass در خط بعدی 2-back و بعد میره به لیبل Bc و PINd=A میکنه
              و اگر در مدت 60 ثانیه و عدد وارد شده بزرگتر از 1100 بود گوشی رو قطع میکنه و میره به لیبل sina
              در غیر اینصورت میره خط بعدی متغیر A را با اعداد داخل لیبل jadval مقایسه میکند و در صورت برابر بودن با هر کدام عدد رو داخل متغیر A میریزه
              اگر a=49 شد که همون 1 است برو لیبل Change
              اگر a=50 شد که همون 2 است برو به لیبل sh
              در غیر اینصورت اگر هر کدام از شرطها برقرار نبود به لیبل Bc برو
              لیبل Change
              روی LCD تایپ میشه Pass قدیمی رو از شما میخواد
              فراخوانی لیبل Main
              اگر E=d شد یعنی پسورد صحیح است و به لیبل GH میره
              در غیر اینصورت پسورد اشتابه است گوشی تلفن قطع میشه و میره به لیبل sina
              لیبل GH
              از شما میخواد رمز جدید خود را وارد کنید و E=D قرار میده و میره به لیبل Bb
              لیبل Control
              داخل حلقه اگر در مدت 60 ثانیه و عددی کوچکتر از 1100 وارد شد برو به لیبل klid
              در غیر اینصورت تلفن رو قطع کن و برو به لیبل sina
              لیبل klid
              در لیبل کلید هم براساس عدد وارد شده به رله مربوطه میره
              سابروتین Main
              متغیر های B, C رو مقدار دهی میکنه
              PIND = A
              اگر در مدت 60 ثانیه و مقدار A بزرگتر از 1100 شد شرط برقرار و گوشی تلفن قطع و به لیبل sina میره
              در غیر اینصورت خط بعدی متغیر A رو با مقادیر داخل لیبل jadval مقایسه میکنه و در صورت برابر بودن عدد مورد نظر رو میریز داخل متغیر A
              :angry: :applause: :wow: :cry2: :read: :agree: :bye :NO: :nice: :nerd: oo: :job: :cry: :smile: :surprised: :biggrin: :sad: :mrgreen: :rolleyes: :icon_razz: :eek:
              از این به بعد هم خودمم حالیم نمیشه چون گفتم برنامه رو از وی قفل رمزدار نوشتم حالا دوستی من رو یاری کنند


              دیدگاه

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