اطلاعیه

Collapse
No announcement yet.

گرفتن تمام کدهای مربوط به اسکن کیبورد کامپیوتر

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

    گرفتن تمام کدهای مربوط به اسکن کیبورد کامپیوتر

    سلام

    حتما دوستان میدونند که کیبورد کامپیوتریک سری از کلید هاش رو برای شناسایی با دو بایت شماره گزاری کرده (http://www.beyondlogic.org/keyboard/keybrd.htm)

    حالا سوال من اینه که چطور بایت دوم رو بخونیم!

    چون به طور معمول کیبورد 11 بیت ارسال میکنه و خبری از 8 بایت دوم نیست!

    ممنون از کمکتون

    #2
    پاسخ : گرفتن تمام کدهای مربوط به اسکن کیبورد کامپیوتر

    عزیز من این که راحته. با یک روال وقفه و یک ماشین وضعیت براحتی میتونی این کار رو بکنی. یادت باشه که کد های ترکیبی با یک کد بخصوص مثل 0xE0 شروع میشه.

    دیدگاه


      #3
      پاسخ : گرفتن تمام کدهای مربوط به اسکن کیبورد کامپیوتر

      سلام

      :-?

      میدونم.من هم با اینتراپت خارجی و یه پین دیگه بهش وصل کردم ،فقط مشکل اینجاس که در همه حالت (چه ترکیبی و چه معمولی ) 11 بیت بیشتر برای میکرو ارسال نمیشه!

      ممنون از کمکتون :nerd:

      دیدگاه


        #4
        پاسخ : گرفتن تمام کدهای مربوط به اسکن کیبورد کامپیوتر

        خوب عزیز دل برادر! این یک فرم سخت افزاری خاص از تبادل سریال مثل UART هست که با داشتن یک خط مشترک برای ارسال و دریافت بصورت سنکرون اطلاعات رو ارسال و دریافت میکنه. وگر نه فرقی با uart عادی میکرو نداره. بنا براین بایت اول در یک 11 بیت ارسال میشه و بایت بعدی در یک 11 بیت دوم. و الی آخر.
        اما اینکه چه وقت این اطلاعات ارسال میشه ممکنه تاخیری بین ارسال ها وجود داشته باشه. وگرنه داخل PC هم همین بازی ها در وقفه 9 اتفاق میفته. ضمنا تا جایی که یادم هست در وقفه 9 روی PC میبایستی برای کیبورد پس از هر دریافت 1 بایت یک ACK توسط شما تولید بشه و گرنه کیبورد فقط همون یک بایت رو میفرسته.
        اگر حالشو داشتی و دم دستت باشه یک نگاهی به روتین های اسمبلی وقفه 9 در XT Tech. Ref Manual یا برای AT بزن. روتینش پیچیده نیست. ولی جزئیاتش دستت میاد.
        راستی یادم رفت. ست کد ها رو با فرمان 0xF0 باید مشخص کنی. در هنگام power-up اول برنامه ات باید این ست رو مشخص کنه. و بعد شروع به دریافت کنه.

        دیدگاه


          #5
          پاسخ : گرفتن تمام کدهای مربوط به اسکن کیبورد کامپیوتر

          سلام من خودم یرنامه کاملا تست شده نوشتم که با وقفه کار می کنه و روی تابلو روان تستش کردم.
          interrupt [EXT_INT0] void ext_int0_isr(void){
          i++;
          if(i>1&i<10){
          if(PIND.1==1) m=0x80;
          else m=0;
          data=data|m;
          if(i!=9);
          data=data/2;}
          if(i==11){
          buffer_key[k]=data;
          data=0;
          i=0
          k++;
          k=k%50;}
          }
          آنکس که بداند و بداند که بداند /، اسب شرف از گنبد گردون بجهاند
          آنکس که بداند و نداند که بداند / ، بیدارش نمایید که بسی خفته نماند
          آنکس که نداند و بداند که نداند / ، لنگان خرک خویش به مقصد برساند
          آنکس که نداند و نداند که نداند / ، در جهل مرکب ابدالدهر بماند

          دیدگاه


            #6
            پاسخ : گرفتن تمام کدهای مربوط به اسکن کیبورد کامپیوتر

            این لینک هم برو ببین کامل توضیح دادم
            https://rapidshare.com/files/1167070151/keyboard.rar
            آنکس که بداند و بداند که بداند /، اسب شرف از گنبد گردون بجهاند
            آنکس که بداند و نداند که بداند / ، بیدارش نمایید که بسی خفته نماند
            آنکس که نداند و بداند که نداند / ، لنگان خرک خویش به مقصد برساند
            آنکس که نداند و نداند که نداند / ، در جهل مرکب ابدالدهر بماند

            دیدگاه

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