اطلاعیه

Collapse
No announcement yet.

مشکل کی پد در برنامه AVR و Proteus

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

    مشکل کی پد در برنامه AVR و Proteus

    سلام
    برنامه ای برای ماشین حساب با استفاده از bascome avr و proteus نوشته ام و بعضی از دکمه های کی پد عدد صحیح را نشان نمی دهند. دکمه های 1و4 و 7 عدد درست را نشان می دهند، اما 2 و 3 عدد 1 ، 5 و 6 عدد 4 ، 8 و 9 عدد 7 را نشان می دهند. مشکل از کجاست؟
    این سوال را در لینک زیر به صورت مرتب تر قرار داده ام:
    http://electronics.stackexchange.com/questions/117767/keypad-doesnt-work-correctly-in-the-proteus

    کد AVR :

    $regfile = "M32DEF.DAT"
    $crystal = 8000000
    Config Kbd = Portd
    Config Lcdpin = Pin , Db4 = Pinb.4 , Db5 = Pinb.5 , Db6 = Pinb.6 , Db7 = _ Pinb.7 , Rs = Pinb.2 , E = Pinb.3
    Config Lcd = 20 * 2
    Dim A As Single
    Dim B As Single
    Dim S As Byte
    Dim Yab As Single
    Dim X As Byte
    Dim Y As Byte
    Star:
    A = 0
    S = 0
    B = 0
    Cls
    Do
    Start1:
    X = Getkbd()
    If X >= 16 Then Goto Start1
    X = Lookup(x , Key)
    If X = 47 Or X = 42 Or X = 45 Or X = 13 Or X = 61 Or X = 43 Then Exit Do
    If S > 5 Then Goto Start1
    A = A * 10
    A = A + X
    Locate 1 , 1
    Lcd A
    Waitms 100
    Incr S
    Loop
    Cls
    If X = 13 Then Goto Star
    Y = X
    S = 0
    Locate 1 , 1
    Lcd A ; Chr(y)
    Waitms 100
    Do
    Start2:
    X = Getkbd()
    If X >= 16 Then Goto Start2
    X = Lookup(X , Key)
    If X = 47 Or X = 42 Or X = 45 Or X = 13 Or X = 61 Or X = 43 Then Exit Do
    If S > 5 Then Goto Start2
    B = B * 10
    B = B + X
    Locate 1 , 1
    Lcd A ; Chr(y) ; B
    Waitms 100
    Incr S
    Loop
    If X = 13 Then Goto Star
    S = 0
    Locate 1 , 1
    Lcd A ; Chr(Y) ; B
    Waitms 100
    Select Case Y
    Case 47 : Yab = A / B
    Case 42 : Yab = A * B
    Case 45 : Yab = A - B
    Case 43 : Yab = A + B
    End Select
    Locate 2 , 1
    Lcd " ="
    Locate 2 , 2
    Lcd Yab
    A = Yab
    S = 6
    B = 0
    Goto Start1
    End
    Key:
    Data 7 , 8 , 9 , 47 , 4 , 5 , 6 , 42 , 1 , 2 , 3 , 45 , 13 , 0 , 61 , 43


    #2
    پاسخ : مشکل کی پد در برنامه AVR و Proteus

    سلام
    ببخشید من بیسیک بلد نیستم اگر سی بود می تونستم کمک کنم
    ولی به نظرم مشکل از اسکن کردن کلیدهاست
    اونجایی که باید تشخیص بدی که ستون دوم هستی و کلید 2 بجاش میری سراغ ردیف اول
    من یک کتابخانه براتون پیدا کردم میتونید از لینک زیر دانلودش کنید
    شاید به دردتون بخوره
    http://www.picpars.com/downloads/file/137/

    دیدگاه


      #3
      پاسخ : مشکل کی پد در برنامه AVR و Proteus

      keypad را با مقاومت 470اهم به میکرو وصل کن (هر 8 پایه را)
      موفق باشید
      امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

      دیدگاه


        #4
        پاسخ : مشکل کی پد در برنامه AVR و Proteus

        اگر از کی پد تعریف شده در پروتئوس استفاده می کنید، این دیوایس مشکل داره
        خودتون یک کی پد با Pusg Button بسازید

        دیدگاه

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