گاهی لازم است کیبرد کامپیوتر و یا موس را به میکرو کنترلرها متصل کنیم و از این طریق یک سیستم کنترلی مناسب را راه اندازی کنیم در این بخش میخواهیم راه اندازی کیبرد های PS2 با استفاده از AVR را آموزش دهیم این برنامه برای کیبردهای PS2 که AT هستند کاربرد دارد و مدلهای دیگر را پشتیبانی نمیکند و باید هنگام خرید به AT بودن کیبرد توجه شود.
کیبرد کامپیوتر و پورت PS2
کیبورد کامپیوتر بجز پایه ای تغذیه دارای دو پایه دیگر که یکی برای data و یکی هم برای کلاک بوده است. در جدول زیر دو نوع خروجی کیبورد (Keyboard) معرفی شده است.
راه اندازی در بسکام:
در بسکام همه چیز برای راه اندازی کیبرد آماده شده است که به شکل ساده ای با دستور getatkbd میتوانید مقادیر ارسالی از کیبرد را به راحتی بخوانید فقط کافی است در ابتدای برنامه یک کانفیک ساده داشته باشید و پورتهای دیتا و کلاک را به بسکام معرفی نمایید.
پیکربندی بسکام برای کیبرد
Config keyboard = pina.b , data = pin x,y , keydata = lable
با این دستور کیبورد (Keyboard) به میکرو معرفی می شود. Pin a .b : پایه کلاک کیبورد Pinx,y : پایه data برای کیبورد که می توان این پایه را به یک وقفه خارجی کتصل کرد تا در صورت فشردن یک کلید کیبورد وقفه اتفاق افتاده و به زیر برنامه خواند کیبورد پرش کند. Key data : یکی از مشکلات کیبورد در اتصال به میکرو کنترلرهای avr نداشتن خروجی با کد اسکی است برای تبدیل کدهتی گرفته شده از کیبورد به کدهای اسکی از یک جدول داده استفاده شده است. نام برچسب این جدول را در جلوی گزینه keydata وارد می شود.حال کافی است با دستور (getatkbd) مقادیر ورودی را بخوانیم. این دستور عدد گرفته شده از کیبورد را با کمک گرفتن از جدول داده تبدیل به کد اسکی کرده و در متغیر var قرار می گیرد.var می تواند هم از نوع byte و هم از نوع string باشد.این دستور تا زمان یکه کلیدی فشرده نشود برنامه را متوقف نگه می دارد. پس باید در برنامه نویسی از روش وقفه خارجی برای اتصال و خواندن کیبورد استفاده کرد. مثال :