أكثر من مئة مفتاح بسلكين!

2013-11-08

ضمن سلسلة تهدف لرفع إمكانيات المتحكم الدقيق micro-controller إلى أبعد مما يمكنك أن تتخيل. سنبين في هذه المقالة كيف تستقبل مدخلات من لوحة مفاتيح عادية تحتوي أكثر من 100 مفتاح دون أن يلزمنا سوى مدخلين من مداخل المتحكم الدقيق.

الطريقة التقليدية لاستقبال المدخلات تحتاج لحجز مدخل لكل مفتاح. فلو كنت تريد الأرقام 0-9 و زرين إضافيين (مثلا موافق وإلغاء) ستحتاج لحجز 12 مدخل من المداخل الثمينة في المتحكم الدقيق والتي لا يمكن زيادتها.

وهناك لوحات الإدخال 4x4 التي تحتوي 16 زر (الأرقام 0-9 و * و # و 4 وظائف خاصة a و b و c و d) تحتاج 8 منافذ (4 مداخل و 4 مخارج) حيث تفحص الزر المضغوط في كل الصفوف واحدا فواحد. عدد المنافذ التي نحتاجها بهذه الطريقة هي جذر عدد الأزرار مضروبة في 2.

مسجلات الإزاحة shift registers تقلل عدد المنافذ pins اللازمة للإخراج مهما كان عددها إلى 3 لكن لا يمكن استخدامها لتقليل عدد منافذ المدخلات فهي تعمل مع المخرجات فقط. فإذا استعملناها مع مصفوفة مثل 4x4 سنوفر منفذ واحد. عدد المنافذ بهذه الطريقة هي جذر عدد الأزرار + 3. أو إن وضعت الأزرار بطريقة مستطيلة يمكن أن تكون عدد الأزرار على الضلع الأصغر + 3.

أسهل وأرخص طريقة للحديث مع عدد كبير من الأزرار هي أن تربط المتحكم الدقيق بلوحة مفاتيح PS/2 العادية فهي رخيصة ومنتشرة. كل ما يلزمك لذلك سلكين.

منفذ PS/2 يحتوي على 6 أرجل/أسنان موضحة (ننصحك بالرجوع إلى موقع pinouts.ru لمعرفة المزيد عن كل أنواع المنافذ) منها واحد للبيانات (والتي ترسل لوحة المفاتيح فيها رمز يمثل المفتاح الذي تم ضغطه بترميز يسمى scan code وهو غير ASCII) وومنفذ آخر لنبضات الساعة.

منفذ PS/2

وحتى لا نشغل برنامجك وندخل في حلقة لا نهائية نستخدم المقاطعات حيث نصل خط الساعة إلى منفذ له مقاطعة مثل INT0. كل ضغطة زر تمثل ب 11 نبضة: نبضة بداية (قيمتها 0) ثم 8 نبضات تحتوي زبدة البيانات ثم نبضة سلامة (فردية) ثم نبضة نهاية (قيمتها 1). نبضات البيانات ترسل من المنزلة الأصغر أولا LSB first

خطي البيانات والساعة مرفوعي الفولتية pulled up ومن يريد أن يرسل بيانات يخفظ فولتية خط الساعة. لهذا نبرمج المقاطعة عند حافة النزول falling edge لخط الساعة وعند حدوثها نقرأ قيمتة خط البينات وللتسهيل يمكنك تجاهل فحص السلامة وقيمة بتي البداية والنهاية

يمكنك أن تجد أمثلة كاملة في

3


حسن عمري
حسن عمريمنذ 4 سنوات

رح يكون لكل كبسة ترميز 8 بيت مميز عن غيره,مزبوط؟ ..ممكن استعمال هاي الحركة مع ماوس ال ps2؟

0

مؤيد السعدي
مؤيد السعديمنذ 3 سنوات

نعم صحيح كل مفتاح له رمز يسمى keyboard scancode ممين ويرسل مرتين مرة عند الضغط ومرة عند الرفع. سيكون لي مزيد من الشرح بعد أن قمت بتطبيقها بنفسي.

ونعم يمكن استعمال طريقة مشابهة مع الفأرة انظر

0

Test User