پیکربندی کیبورد کامپیوتر
یکی از قابلیت های میکروکنترلرهای AVR اتصال به کیبورد (Keyboard) کامپیوتر می باشد. کیبورد کامپیوتر بجز پایه ای تغذیه دارای دو پایه دیگر که یکی برای data و یکی هم برای کلاک بوده است. در جدول زیر دو نوع خروجی کیبورد (Keyboard) معرفی شده است.
شکل زیر نمایانگر ارتباط بین کیبورد و میکروکنترلر است.
پیکربندی کیبورد (Keyboard) کامپیوتر در زبان بیسیک BASIC
1 |
Config keyboard = pina.b , data = pin x,y , keydata = lable |
با این دستور کیبورد (Keyboard) به میکرو معرفی می شود.
Pin a .b : پایه کلاک کیبورد
Pinx,y : پایه data برای کیبورد که می توان این پایه را به یک وقفه خارجی کتصل کرد تا در صورت فشردن یک کلید کیبورد وقفه اتفاق افتاده و به زیر برنامه خواند کیبورد پرش کند.
Key data : یکی از مشکلات کیبورد در اتصال به میکرو کنترلرهای avr نداشتن خروجی با کد اسکی است برای تبدیل کدهتی گرفته شده از کیبورد به کدهای اسکی از یک جدول داده استفاده شده است. نام برچسب این جدول را در جلوی گزینه keydata وارد می شود.
خواندن کیبورد (Keyboard) کامپیوتر در زبان بیسیک BASIC
این دستور عدد گرفته شده از کیبورد را با کمک گرفتن از جدول داده تبدیل به کد اسکی کرده و در متغیر var قرار می گیرد.
نکته : var می تواند هم از نوع byte و هم از نوع string باشد.
نکته : این دستور تا زمان یکه کلیدی فشرده نشود برنامه را متوقف نگه می دارد. پس باید در برنامه نویسی از روش وقفه خارجی برای اتصال و خواندن کیبورد استفاده کرد.
مثال :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
$regfile = “8535 fed. Dat” $crystal = 4000000 Config keyboard = pin.2 , data = pind .4 , keydata = keydata Dim b as byte B= getatkbd () Loop until b < > 0 End Keydata: ‘normal keys lower case Data 0 , 0 , 0 , 0 , 0 , 200 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0 ‘ Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0 Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0 ‘ Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0 ‘ Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0 ‘ Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0 ‘ Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 ‘ Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0 ‘ ‘shifted keys UPPER case Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ‘ Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0 ‘ Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0 ‘ Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0 ‘ Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0 ‘ Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0 ‘ Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0 ‘ Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0 ‘ |