اطلاعیه

Collapse
No announcement yet.

سوال در مورد دستور getkbd

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

    سوال در مورد دستور getkbd

    با عرض سلام و خسته نباشید خدمت شما.من میخوام که با میکروی atmega32 و صفحه کلید 4*4 و lcd کاراکتری 2*16 برنامه ای بنویسم که یک عدد 2 یا 3 رقمی را از صفحه کلید بگیره و در سطر اول نمایش بدهد که اگر این عدد زوج بود جلو آن( در سطر اول ) کلمه زوج ( به انگلیسی ) نمایش داده بشه و نصف آن عدد در سطر دوم نشان داده بشه و اگر این عدد فرد بود جلو آن ( در سطر اول ) کلمه فرد ( به انگلیسی ) نمایش داده بشه و باقیمانده و خارج قسمت تقسیم بر 2 آن عدد در سطر دوم نشان داده بشه.من اینجا مشکل دارم که چه جوری باید تو برنامه ( بسکام )
    معلوم کنم که فقط 2 یا 3 رقم را از صفحه کلید بگیره و مثلا با زدن دکمه OK جواب را نمایش بدهد.تو برنامه میتونم با دستور getkbd کار کنم ولی همینجا مشکل دارم که چه جوری برنامه را محدود کنم که فقط 2 یا 3 عدد را از صفحه کلید بگیره.امیدوارم که فهمیده باشید.

    #2
    پاسخ : سوال در مورد دستور getkbd

    یه سرچی تو تاپیک ها یکن جدیدا همین سوال اینجا پاسخ داده شده....
    Share OR Die

    دیدگاه


      #3
      پاسخ : سوال در مورد دستور getkbd

      سلام
      دوست عزیز اینم برنامه اش :
      $regfile "m32def.dat"
      $crystal = 8000000 '\
      Config Lcd = 16 * 2
      Config Kbd = Porta , Debounce = 150 , Delay = 150
      Config Lcdpin = Pin , Db4 = Pinc.5 , Db5 = Pinc.4 , Db6 = Pinc.3 , Db7 = Pinc.2 , _
      E = Pinc.6 , Rs = Pinc.7
      Dim Scankey As Byte
      Dim A As Byte
      Dim Count As Byte
      Dim B As Byte
      Dim C As Byte
      Count = 0
      A = 0
      main:
      Do
      Scankey = Getkbd()
      Scankey = Lookup(scankey , Key)
      Select Case Scankey
      Case Is < 10:
      A = A * 10
      A = A + Scankey
      Locate 1 , 1
      Lcd A
      Incr Count
      If Count = 2 Then Goto L1
      End Select
      Loop
      L1:
      B = A Mod 2
      Locate 1 , 8
      If B = 0 Then
      Lcd "Zovje"
      C = A / 2
      Locate 2 , 1
      Lcd C
      End If
      If B <> 0 Then
      Lcd "Fard"
      C = A / 2
      B = A Mod 2
      Locate 2 , 1
      Lcd C ; " " ; B
      End If
      Count = 0
      A = 0
      Goto Main
      End
      Key:
      Data 1 , 2 , 3 , 10 , 4 , 5 , 6 , 11 , 7 , 8 , 9 , 12 , 13 , 0 , 14 , 15 , 16

      این برنامه یک عدد دو رقمی میگیره و زوج و فرد رو مشخص میکنی و همان کاری که خواستی انجام میده.اگه سوالی بود در خدمتم.

      دیدگاه


        #4
        پاسخ : سوال در مورد دستور getkbd

        آقای حیاتی دست شما درد نکنه خیلی قشنگ توضیح دادید من الان با این کمک شما میتونم هر چند رقم رو که بخوام روی lcd نمایش بدم و روی آنها عملیات موردنظر رو انجام بدم.ولی من اگه بخوام که یک عدد 2 یا 3 رقمی رو نشان بدم باید چیکار کنم.یعنی طرف مقابل شاید یک عدد دو رقمی رو بزند و یا شاید یک عدد 3 رقمی و شاید 4 رقمی و غیره.طرف مقابل که نمیدونه من برنامه رو برای یک عدد فقط دو رقمی نوشتم.من فقط به طرف مقابل گفتم که میتونه هم یک عدد 2 رقمی و هم یک عدد 3 رقمی رو بزند.حالا باید چیکار کنم.لطفا کمکم کنید.خیلی ممنون.

        دیدگاه

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