اليوم موضوعنا هو برمجة الرقاقة 8255A - العمل في النمط 1:
تجري عمليات الدخل والخرج، في هذا النمط، بالتوافق مع إشارات قدح strobes
أو مصافحة handshaking .
بوابات دخل تعمل بالقدح
في حال برمجة البوابة A أو B كبوابة دخل في النمط 1 فإن كل منهما تعمل كتجهيز دخل ماسكة للمعطيات. يمكِّننا هذا النمط من حفظ معطيات الدخل إلى أن يصبح المعالج جاهزًا لقراءتها. تستخدم، في هذا النمط، البوابة PCU
والبوابة PCL
لتنجيز عملية المصافحة للبوابة A
والبوابة B
على الترتيب.
يبين الصورة التالية توصيف البوابة A والبوابة B عندما تعمل كل منها كبوابة دخل تعمل بالقدح، كما يبين الشكل نفسه كلمة التحكم اللازمة لبرمجة كل من البوابة A
والبوابة B
كبوابة دخل في النمط 1
.
تجري عملية الإدخال بالقدح كما يلي، انظر المخطط الزمني:
- تضع، أولا، تجهيزة الدخل المعطيات على البوابة.
- تولد تجهيزة الدخل نبضة سالبة على المدخل STB' تمسك بوابة الدخل، نتيجة لهذه النبضة، المعطيات المتواجدة على مداخلها، ومن ثم تفعل إشارة صوان الدخل ممتلئ (input buffer IBF full) أي تجعله يساوي 1، لُِتعلم الرقاقة 8255A تجهيزة الدخل أنه جرى مسك المعطيات الموضوعة على البوابة. ويجري أخيرًا تفعيل إشارة طلب المقاطعة (interrupt request) IR إذا كانت مؤهلة.
- عندما يعلم المعالج أنه جرى قدح معطيات في البوابة، إما برمجيًا عن طريق تفحص أو تقصي حالة IBF أو عتاديًا عن طريق مقاطعة المعالج بإشارة INTR ينفذ المعالج تعليمة IN لقراءة المعطيات. أثناء عملية القراءة تعيد الإشارة RD' كل من STB' و INTR إلى حالتهما غير الفعالة بانتظار حدوث عملية قدح معطيات جديدة في البوابة.
يجري تأهيل أو حجب إشارة توليد المقاطعة INTRA
الخاصة بالبوابة A و INTRB
الخاصة بالبوابة B
بوضع 0 أو 1 في البت PC4
وفي البت PC2 على الترتيب، ويتم ذلك بكتابة كلمة تحكم مناسبة في سجل التحكم مع وضع 0 في البت الأخير من الكلمة.
يمكن في نمط الإدخال بالقدح استخدام البتتين PC6 و PC7 كبوابات دخل أو خرج.
مثال: اكتب إجرائية تعمل على قراءة معطيات من لوحة المفاتيح كلما جرى الضغط على أحد مفاتيحها، بفرض أن عنوان البوابة A
للدارة 8255A هو
20h علمًا أن لوحة المفاتيح تضع على مخارجها ترميز ASCII
للمفتاح المضغوط ومن ثم تولد نبضة سالبة مدتها 1 مِكروثانية على المخرج DAV' كلما جرى الضغط على أحد مفاتيحها.
الحل: نوصل DAV' إلى
PC4 ومخارج لوحة المفاتيح إلى البوابة A
كما هو مبين في الصورة التالية نفحص في الإجرائية، على نحو مستمر، قيمة PC5 حتى تصبح 1 عندها نقرأ ترميز ASCII
للمفتاح المضغوط.
يجري تأهيل أو حجب إشارة توليد المقاطعة INTRA
الخاصة بالبوابة A
وإشارة INTRB الخاصة بالبوابة
B
بوضع 1 أو 0
في البت PC6 وفي البت PC2 على الترتيب، ويتم ذلك بكتابة كلمة تحكم مناسبة في سجل التحكم مع وضع 0 في البت الأخير من الكلمة.
يمكن في نمط الإخراج بالقدح استخدام البتتين PC3 و PC4 كبوابات دخل أو خرج.
مثال: بفرض أن البوابة A من الدارة 8255A موصولة إلى طابعة، اكتب برنامجًا يعمل على طباعة النص التالي:
Hi, how are you?
I am fine, How are
you?
نلتقي في التدوينة القادمة بعنوان البرمجة في النمط 2
لا تنسى دعمنا بالمشاركة
دمت بخير عزيزنا الزائر
عمل جميل جدا .. بارك الله فيكم
ردحذفوبارك الله فيك ... شكرا لزيارتك المشرفة ..
حذف