اطلاعیه

Collapse
No announcement yet.

کمک برای کامل کردن یک برنامه در bascom

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

    کمک برای کامل کردن یک برنامه در bascom

    سلام دوستان
    آقا من یه برنامه ساده برای یک قفل الکترونیکی را اینجا نوشتم تا بتونم سوالتم را بپرسم، امید وارم شما هم کمک کنید.
    همینطور که می بینید این برنامه یک پسورد 4 رقمی میگیره و اون را با پسورد خودش(my code) چک می کنه اگه درس بود در را باز می کنه و اگه اشتباه بود error می ده و دوباره رمز می گیره.
    من می خوام چنتا چیزه دیگه رو این برنامه اضافه کنم ولی نتونستم کسی می تونه کمکم کنه:
    1- تو خط 44 من اومدم تعداد رقم های وارد شده را چک می کنم اگه بیشتر از 4 رقم بود میره و اون را با پسورد اصلی مقایسش می کنم حالا اگه من بخوام این خط را بردارم تا تعداد ارقام م تا حد اکثر 15 رقم بره (lcd یه من 2*16 هست ) و اگه بیشتر از 15 شد تو یک جای دیگه این پسورد چک بشه و همچنین برای کاربر یک کلید معرفی(enter) کنم تا هر وقت پسورد را وارد کرد و اون کلید را فشار داد برنامه بره تو همونجا و پسوردش را چک کنه باید چیکار کنم.(با این کار دیگه تعداد ارقام پسورد مشخص نمی شه). من خودم این کار را کردم ولی کلید آخر که به عنوان enter براش معرفی کردم هم به عنوان یکی از ارقام پسورد به حساب می یاد. و رو lcd نشان داده می شه
    2. من می خوام یک کلید هم برای حذف رقم اشتباه وارد شده بذارم. مثل دکمه c تو گوشی های موبایل که هر وقت عددی اشتباه وارد شد یه رقم به عقب برگرده.
    $regfile = "M16def.dat"
    $crystal = 4000000
    Dim Keyread As Byte
    Dim Key As Byte
    Dim Code As Word
    Dim Mycode As Word
    Dim Digits As Byte
    Dim Point As Byte
    Config Portc = Output
    Portc = 0

    Relay Alias Portc.4
    Beep Alias Portc.3

    Config Kbd = Portd , Debounce = 40

    Mycode = 1384

    Cursor Off

    Do
    Lcd "Initializing..."
    Set Beep
    Waitms 100
    Reset Beep
    Wait 2
    Cls
    Lcd "Enter Password"

    Begin:
    Code = 0
    Digits = 0
    Point = 0


    Do
    Keyread = Getkbd()
    If Keyread <> 16 Then Gosub Gotkey
    Waitms 100

    If Digits = 4 Then

    If Code = Mycode Then
    Goto Opendoor
    Else
    Goto Error
    End If

    End If
    Loop

    Loop



    Gotkey:
    Ddrd = 255
    Set Beep
    Waitms 100
    Reset Beep
    Waitms 100

    Key = Lookup(keyread , Dta)

    Incr Digits
    Point = Digits + 6
    Locate 2 , Point
    Lcd Key
    Code = Code * 10
    Code = Code + Key

    Return

    Dta:
    Data 7 , 8 , 9 , 255 , 4 , 5 , 6 , 255 , 1 , 2 , 3 , 255 , 255 , 0 , 255 , 255

    Error:
    Cls
    Lcd "Invalid Password"
    Waitms 100
    Set Beep
    Wait 1
    Reset Beep
    Lowerline
    Lcd "Wait 10 sec"
    Wait 10
    Cls
    Lcd "Enter Password"
    Goto Begin

    Ok:
    Waitms 100
    Set Beep
    Waitms 200
    Reset Beep
    Waitms 200
    Set Beep
    Waitms 200
    Reset Beep
    Return

    Opendoor:
    Cls
    Lcd "Pass Accepted"
    Gosub Ok
    Lowerline
    Lcd "Door's Openning"
    Waitms 300
    Set Relay
    Wait 1
    Reset Relay
    Wait 1
    Cls
    Goto Begin

    حالا یه سوال دیگه که به این مورد ربطی نداره:
    فرض کنید من می خوام یک پین را با یک پالس یک کنم یعنی:
    do
    if pinb.1 =1 then
    حالا می خوام یه تایمر را روشن کنم
    حالا اگه دوباره ورودی صفر شد :
    if pinb.1 =0 then
    timer را خاموش کنه و بعدش A را که مدت زمان روشن ماندن TIMER هست را به من بده
    اگه می شه یکی لطف کنه و این برنامه را کامل کنه . یعنی یک برنامه کامل مثل برنامه بالا .
    ma_ka242@yahoo.com

    #2
    پاسخ : کمک برای کامل کردن یک برنامه در bascom

    سلام
    برای اینکه کلید enter داشته داشته باشی می تونی یه کاراکتر تعریف کنی که هر وقت اون کاراکتر وارد شد،تابع چک پسورد اجرا بشه و کاراکترهای قبلی رو پسورد اصلی مقایسه کنی
    برای سوال آخر باید از وقفه خارجی استفاده کنی،به راحتی می تونی زمان یه رویداد خارجی رو محاسبه کنی
    در دیر مغان آمد یارم قدحی در دست
    مست از می می خواران از نرگس مستش مست

    دیدگاه


      #3
      پاسخ : کمک برای کامل کردن یک برنامه در bascom

      دوست گرامی سلام،

      من یه برنامه رمز نوشتم که رمز آن میتونه هرچند تا کاراکتر باشه اون را میفرستم به میل شما ، بخونش اگه سوالی بود در خدمتم.

      این کارهایی هم که میخوای انجام بده به راحتی میشه برنامه نویسی کرد.

      ما در خدمتیم.

      موفق باشید.
      صلی الله علیک یا اباعبدالله الحسین.

      صلی الله علی الباکین علی الحسین(ع).

      دیدگاه


        #4
        پاسخ : کمک برای کامل کردن یک برنامه در bascom

        دوستان عزیز
        آقا حسین و آقا محمد از لطف شما ممنونم مشکلم با کمک شما حل شد.
        بازم متشکر

        دیدگاه

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