اطلاعیه

Collapse
No announcement yet.

کسی میتونه اشکال این برنامه رو به من بگه ؟ (بیسیک)

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

    #31
    پاسخ : کسی میتونه اشکال این برنامه رو به من بگه ؟ (بیسیک)

    با تشکر از جناب ادیبان همشهری بنده و راهنمایی های ایشون .....

    اینم برنامه تکمیل شده لذتش رو ببرید .....(قفل رمز با رمز پیش فرض 123) :wow:


    Cls
    Lcd "in the name of god"
    Waitms 100
    Cls
    Dim A As Byte
    Config Kbd = Portd
    Config Portb = Output



    Main:
    Do
    'Cls
    A = Getkbd()
    If A < 16 Then
    Goto N1
    Else
    Goto Main
    End If


    N1:
    Locate 1 , 1
    Lcd A
    If A = 1 Then Goto S1
    Goto S5
    Loop



    '\\\\\\\\\\\\\\\\\\\\\\
    S1:
    A = Getkbd()

    If A < 16 Then
    Goto N2
    Else
    Goto S1
    End If


    N2:
    Locate 1 , 2
    Waitms 50
    Lcd A

    If A = 2 Then
    Goto S2
    Else
    Goto S5
    End If


    '*******************************
    S2:
    A = Getkbd()

    If A < 16 Then
    Goto N3
    Else
    Goto S2
    End If


    N3:
    Locate 1 , 3
    Lcd A

    If A = 3 Then
    Goto S4
    Else
    Goto S5
    End If

    S4:
    Set Portb.0
    Lcd "correct"
    Wait 2
    Goto Main



    S5:
    Waitms 100
    Locate 1 , 1
    Lcd A
    Goto L2


    L2:
    A = Getkbd()
    If A < 16 Then
    Goto L
    Else
    Goto L2
    End If

    L:
    Waitms 100
    Locate 1 , 2
    Lcd A
    Goto L3

    L3:
    A = Getkbd()
    If A < 16 Then
    Goto G
    Else
    Goto L3
    End If

    G:
    Waitms 100
    Locate 1 , 3
    Lcd A
    Waitms 100
    Lcd "incorrect"
    Waitms 200
    Cls
    Goto Main





    فقط الان یه مشکلی دارم تو بسکام عدد ها رو که توی کیبردش می زنم جابه جا میشن ...(چون A B C D ) هم داره ....می خاستم ببنیم من اگه سخت افزار این مدار رو با کیبر 3*4 ببندم که مشکلی ایجاد نمی کنه ؟
    موفقيت = يك درصد نبوغ ، 99 درصد عرق ريختن
    (اديسون)

    دیدگاه


      #32
      پاسخ : کسی میتونه اشکال این برنامه رو به من بگه ؟ (بیسیک)

      واسه این کار باید از عدد برگشت داده شده از کیبورد lookup بگیرین

      تو help بسکام کاملا توضیح داده شده و سادس اگر نفهمیدین بگین تا توضیح بدم
      علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

      دیدگاه


        #33
        پاسخ : کسی میتونه اشکال این برنامه رو به من بگه ؟ (بیسیک)

        دوست عزیز اون دفعه گفتید این شیوه برنامه نویسیم خوب نیست ..میشه بیشتر توضیح بدید....تا اشکالاتمو بفهمم .....بقیه هم استفاده کنن
        موفقيت = يك درصد نبوغ ، 99 درصد عرق ريختن
        (اديسون)

        دیدگاه


          #34
          پاسخ : کسی میتونه اشکال این برنامه رو به من بگه ؟ (بیسیک)

          البته ببخشید که جسارت کردم و همچین حرفی زدم


          قدم اول اینه که شما سخت افزار رو بشناسین. مثلا وقتی میخواین با کیبورد کار کنین باید بدونین که دایم باید عدد روی کیبورد خوانده شود و وقتی عدد کوچکتر از 16 بود یعنی کلید کیبورد فشرده شده.یاد اور میشم که کیبوردها به صورت ماتریس کار میکنن و وقتی شما این دستور را وارد میکنید(getkbd())در اصل هر لحظه یک پین منطق 1 شده و باقی 0 و الی اخر


          قدم دوم باید تلاش کنین تا برنامتون کوتاه باشه و از نوشتن if های اضاف خودداری کنین مثلا وقتی مینوسید if a<>0 then goto xxx

          دیگر نیازی به نوشتن if a>a then goto xxxنیست
          علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

          دیدگاه


            #35
            پاسخ : کسی میتونه اشکال این برنامه رو به من بگه ؟ (بیسیک)

            بله درسته .من دارم همین برنامه رو با وارد کردن کد می نویسم (یعنی رمز رو میشه تغییر داد ) ولی با این روش که قبلی رو نوشتم بخام اینو هم بنویسم خیلی خیلی طولانی میشه ........فکر کنم با do loop خیلی مختصر تر بشه !

            راستی جناب ادیبان چند تا مثال برنامه نویسی البته مبتدی رو اگه تونستی تو پیغام خصوصی واسم بفرست (بیسیک) میخام راه بیفتم ....بعد یواش یواش سختش کن ..

            اگه هم خاستی این جا بزار تا بقیه هم استفاده کنن
            موفقيت = يك درصد نبوغ ، 99 درصد عرق ريختن
            (اديسون)

            دیدگاه


              #36
              پاسخ : کسی میتونه اشکال این برنامه رو به من بگه ؟ (بیسیک)

              $regfile = "m16def.dat"
              Config Lcd = 16 * 2
              $crystal = 1000000
              Config Lcdpin = Pin , Rs = Pb.5 , E = Pb.4 , Db4 = Pb.3 , Db5 = Pb.2 , Db6 = Pb.1 , Db7 = Pb.0
              Config Portd = Output
              Config Portb = Output
              Config Kbd = Porta
              Dim I As Long
              Dim K As Long
              Dim D As Byte
              Dim Z As Byte
              K = 3245
              Writeeeprom K , 0
              Waitms 5
              '############################################ ####################################
              B:
              D = Getkbd()
              If D > 15 Then
              jmp B
              End If
              D = Lookup(d , Mykbd)
              If D > 9 Then
              Select Case D
              Case 10: '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%55
              I = I / 10
              Cls
              Lcd I
              C:
              Z = Getkbd()
              If Z > 15 Then
              jmp B
              Else
              jmp C
              End If


              Case 11: '************************************88
              Incr I
              Cls
              Lcd I
              E:
              Z = Getkbd()
              If Z > 15 Then
              jmp B
              Else
              jmp E
              End If


              Case 12: '&&&&&&&&&amp ;&&&&&&&&&&amp ;&&&&&&&&&&amp ;&&&&&&&&&&amp ;
              Decr I
              Cls
              Lcd I
              F:
              Z = Getkbd()
              If Z > 15 Then
              jmp B
              Else
              jmp F
              End If


              Case 15:
              Readeeprom K , 0
              Waitms 5 '******************************************** **88
              If K = I Then
              Cls
              Lcd "OK MY COD"
              Set Portd.0
              Wait 1
              Reset Portd.0
              Else
              Cls
              Lcd "EROR PASWORD"
              End If
              I = 0
              G:
              Z = Getkbd()
              If Z > 15 Then
              jmp B
              Else
              jmp G
              End If



              Case 13: '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^
              Cls
              Lcd "PASWORD"
              H:
              D = Getkbd()
              If D > 15 Then
              jmp H
              End If
              D = Lookup(d , Mykbd)
              If D > 9 Then
              Select Case D
              Case 10:
              I = I / 10
              Cls
              Lcd "PASWORD"
              Locate 2 , 2
              Lcd I
              J:
              Z = Getkbd()
              If Z > 15 Then
              jmp H
              Else
              jmp J
              End If


              Case 15:
              K = I
              Cls
              Lcd "NEW PASWORD="
              Locate 2 , 2
              Lcd K
              L:
              Z = Getkbd()
              If Z > 15 Then
              jmp B
              Else
              jmp L
              End If
              End Select

              Else
              I = I * 10
              I = I + D
              Cls
              Lcd I
              End If
              M:
              Z = Getkbd()
              If Z > 15 Then
              jmp H
              Else
              jmp M
              End If

              End Select
              JMP B
              Else
              I = I * 10
              I = I + D
              Cls
              Lcd I
              End If
              A:
              Z = Getkbd()
              If Z > 15 Then
              jmp B
              Else
              jmp A
              End If

              Mykbd:
              Data 1
              Data 2
              Data 3
              Data 10
              Data 4
              Data 5
              Data 6
              Data 11
              Data 7
              Data 8
              Data 9
              Data 12
              Data 13
              Data 0
              Data 14
              Data 15



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

              دوستان واسه اموزش بیسیک فایل گذاشتن اگر بگردین
              برنامه بالا چیزی بود که در تلاشش بودین امید وارم به در بخوره :applause: :nerd:
              علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

              دیدگاه


                #37
                پاسخ : کسی میتونه اشکال این برنامه رو به من بگه ؟ (بیسیک)

                خط اخرش ارور میده .این برنامه الان رمزش قابل تغیره ؟ چی هست ؟
                موفقيت = يك درصد نبوغ ، 99 درصد عرق ريختن
                (اديسون)

                دیدگاه


                  #38
                  پاسخ : کسی میتونه اشکال این برنامه رو به من بگه ؟ (بیسیک)

                  چک کردم هیچ مشکلی نداره

                  این برنامه قدرت تعویض رمز رو هم داره


                  قبلا یک بار یاد اوری کردم که از سیمولیت(شبیه ساز)برنامه استفاده کنید اونوقت همه چیز رو میفهمید
                  علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

                  دیدگاه

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