في التدوينة السابقة اخذنا رقاقة منافذ الدخل/الخرج المبرمجة 8255A - برمجة المعالجات الدقيقة - دوائر موائمة
اليوم نأخذ برمجة الرقاقة 8255A - العمل في النمط 0
يمكننا برمجة الرقاقة 8255A عبر سجلي تحكم داخليين لهما العنوان الفيزيائي نفسه، يجري انتخاب أحد هذين السجلين باستخدام البت الأخيرة من كلمة التحكم، كما هو مبين في الصورة التالية :
يمكِّننا وضع 1 منطقي في البت الأخيرة من كلمة التحكم، من برمجة المجموعة A و B
على نحو مستقل لتعمل بعدة أنماط، انظر الصورة التالية
يمكننا برمجة المجموعة B في النمط 0 لتعمل كبوابات دخل/خرج بسيطة، أو برمجتها في النمط 1 لتعمل في نمط القدح strobed حيث يجري تبادل المعطيات مع التجهيزات المحيطية عبر البوابة B في حين نستخدم الجزء الأدنى من البوابة C , PCL لتأمين إشارات المصافحة.
يمكننا برمجة المجموعة A لتعمل في النمط 0 أو 1 كما هو الحال في المجموعة B عند برمجة المجموعة A في النمط 1 نستخدم الجزء الأعلى من البوابة C , PCU
لتأمين إشارات المصافحة. علاوة على ذلك، يمكننا برمجة المجموعة A في النمط 2 حيث تصبح البوابة A ثنائية الاتجاه bidirectional .
يمكِننا عند وضع 0 منطقي في البت الأخيرة من كلمة التحكم، تغيير حالة كل بت من بتات البوابة C عندما تكون الرقاقة 8255A مبرمجة في النمط 0 أو 1، كما هو مبين في الصورة التالية :
الحل:
MOV AL, 07h ; set PC3=1
OUT 83h, AL
MOV AL, 0Fh ; set PC7=1
OUT 83h, AL
العمل في النمط 0
تبرمج، في هذا النمط، كل من البوابات A و B و PCH و PCL كلٌ على حده لتعمل كبوابة دخل أو خرج بسيطة. تجري عملية الإدخال والإخراج من خلال القراءة أو الكتابة من وفي البوابات مباشرة
دون الحاجة إلى إشارات مصافحة. عند الكتابة في بوابة خرج تمسك البوابة المعطيات، في حين لا
تمسك بوابة دخل المعطيات على مداخلها ويجب على المعالج قراءتها قبل تغيرها.
تجري برمجة بوابات الدارة 8255A من خلال كتابة كلمة تحكم مناسبة في سجل التحكم، مع التنويه إلى ضرورة وضع 1 في البت الأخيرة من كلمة التحكم.
يجب لبرمجة المجموعة B
في النمط 0
وضع 0 في D2 من كلمة التحكم، في حين يجب وضع 0 في
D5 و D6 من كلمة التحكم لبرمجة المجموعة A في النمط 0. ويمكننا بتغيير قيم البتات D0,D1,D3 و D4 برمجة كل من البوابات B , PCL
,
A و PCH
على حده دخل أو خرج على الترتيب، كما هو مبين في الشكل.
مثال:
ما هي كلمة التحكم التي تبرمج:
البوابة A
خرج، البوابة B
دخل , PCL دخل و PCU
خرج، كما هو مبين في الصورة التالية ؟ اكتب برنامجًا يقرأ المعطيات من البوابة B
ويرسلها إلى البوابة A
ويقرأ المعطيات على البوابة PCL
ويرسلها إلى البوابة PCH
بفرض أن عنوان البوابة A
للرقاقة 8255A هو .300h
إن كلمة التحكم في هذه الحالة هي:
يعمل البرنامج التالي أولا، على كتابة كلمة التحكم المناسبة في سجل التحكم، ثم ينفذ عمليات القراءة والكتابة المطلوبة.
B8255 EQU 300h ; address of port A
CNTL EQU 83h ; control word
MOV DX, B8255+3 ; select control port
MOV AL, CNTL ; write control word in control register
OUT DX, AL
MOV DX, B8255+1 ; select port B
IN AL, DX ; read port B in AL
MOV DX, B8255 ; select port A
OUT DX, AL ; out AL in port A
MOV DX, B8255+2 ; select port C
IN AL, DX ; read port C in AL
AND AL, 0Fh ; reset the higher nibble
MOV CL, 4 ; put the lower nibble in the higher nibble
ROL AL, CL
OUT DX, AL ; out AL in port C
نلتقي في التدوينة القادمة بعنوان البرمجة في النمط 1
يمكنك ايضا مشاهدة :
الدرس الثاني معالجات 4CISC و معالجات RISC - computer interface
الدرس الثالث المعالجات التواردية pipelining
الدرس الخامس المتحكمات الصغرية Microcontroller
الدرس السابع البنية الداخلية للمعالج 8088/ 8086
الدرس الثامن السجلات الداخلية للمعالج 8088/ 8086
الدرس التاسع تنظيم ذاكرة المعالج 8086
الدرس العاشر انماط العنونة addressing modes
الدرس الحادي غشر البرمجة بلغة التجميع assembly language
الدرس الثاني عشر موجِّهات او ايعازات لغة التجميع Assembler Directives
الدرس الثالث عشر تعليمات المعالج 8088/ 8086 - لغة التجميع
الدرس الرابع عشر تعليمات القفز المشروط - شرح المعالج 8086
الدرس الخامس عشر تعليمات الإزاحة - شرح المعالج 8086
الدرس السادس عشر تعليمات المكدس - شرح المعالج 8086
الدرس السابع عشر تعليمات الحلقات والدوران اسمبلي- شرح المعالج الدقيق 8086
الدرس الثامن عشر اوامر لغة الاسمبلي - تعليمات IN و OUT و تعليمات السلاسل الحرفية - شرح المعالج الدقيق 8086
الدرس التاسع عشر يتبع شرح المعالج 8086 – التعليمات CMPS , SCAS, LODS , STOS , REPNZ , REPNE ،REPZ،REPE ،REP
الدرس العشرين architecture memory معمارية الذاكرة
الدرس الواحد والعشرين أنواع الذواكر - لغة التجميع وشرح المعالج 8086
الثاني والعشرين شرح المعالج 8086- طرق ربط المعالج 8086 مع الذاكرة
الدرس الثالث والعشرين الذاكرة المخبئية memory cache
الى اللقاء في التدوينة القادمة
لا تنسى دعمنا بالمشاركة
دمت بالف خير عزيزنا الزائر
هل يمكنك عرض كود برمجة الدارة بلغة توصيف المكونات المادية vhdl
ردحذفبصراحة لا ادري ان كان ذلك ممكناً,,, لكن حسب اعتقادي انه لا يمكن لان بكل تأكيد سيكون هناك تعارض في التوافق ,,,
حذف