نجد من توزيع ارجل الميكروكنترولر ان الرجل رقم 4 تستخدم فى عمل reset وهذه الكلمة تعنى اعادة الميكرو الى وضع حالته المعروفة و ذلك عندما يكون الميكروكنترولر فى حالة غريبة او نتائجه غير دقيقة .
وكما ذكرنا سابقا ان الخط الموجود فوق كلمة MCLR تعنى عمل reset للميكرو فى حالة ان هذه الرجل تساوى صفر وليس 1
والشكل الاتى يوضح الدائرة المستخدمة فى ذلك
وهذه الدائرة أكثر تفصيلا
ويحدث ايضا للميكرو reset فى الحالات الاتية
1- عند تشغيله وتوصيله بمصدر قدرة
2- عند استخدام الامر SLEEP
3- عندما يحدث زيادة لل Watchdog
4- عندما يقل مصدر القدرة عن قيمته المطلوبة
وفى التطبيقات الصناعية فان مصدر القدرة يكون غير منتظم ويتغير باستمرار ولذلك فانه لن يحدث ال reset الا بعد 72 ثانية من استقرار مصدر القدرة حتى يتجب عمل ريست بدون داعى
موضح فى الشكل الاتى
Central Processing Unit
وحدة المعالجة المركزية
فى هذا الجزء سنقوم بدراسة وحدة المعالجة المركزية بتفصيل اكثر حيث انها تمثل مخ الميكروكنترولر وهو الجزء المسئول عن احضار وتنفيذ تعليمات البرنامج وتركيبها موضح فى الشكل الاتى :
ويجب ملاحظة انه عندما يقوم المبرمج بكتابه برنامج معين فان التعليمات تكون مثلا فى الصورة الاتية MOVLW 0×20 ولكن هذه التعليمات لا يفهمها الميكرو
ولذلك يجب ان تحول الى صفر و واحد وهذه الصيغة تسمى opcode وهى التى يفهمها الميكرو .
وعملية تحويل الحروف الى الصيغة opcode تتم بواسطة المترجم translator او يسمى احيانا assembler .
ويوجد ايضا بالميكروكنترولر وحدة فرعية تسمى وحدة الحساب والمنطق ALU وهى المسئولة عن العمليات الحسابية والعمليات المنطقية وايضا تقوم بتنفيذ عمليات التحويل ونقل البيانات من والى المسجلات وفى الشكل الاتى نرى وحدة الحساب والمنطق حيث يدخل اليها التعليمة المراد تنفيذها من instruction register مع حالتها وحالة التعليمة السابقة من status register ثم تقوم باخراج النواتج الى working register .
وفى الشكل الاتى نرى التركيب العام لاجزاء للميكرو كنترولر
وهو من اهم المسجلات الموجودة فى الميكركنترولر
ولكن دعنا الان نلقى نظرة على المسجلات الموجودة فى الميكروكنترولر
وهى موضحة فى الشكل الاتى :
ونلاحظ من الشكل السابق وجود خانتين Bank 0 وهى التى يقوم المستخدم بالتعامل معها و Bank 1 هى نسخة طبق الاصل من Bank 0
وايضا تقسم ذاكرة البيانات الى جزء علوى وجزء سفلى
والجزء العلوى من 00h الى 0bh وهو 11 مكان و يسمى
Special Function Registers
(SFR)
و هو للتحكم فى الميكرو والاجهزة الخارجية المتصلة به
والجزء السفلى يسمى
General Purpose Registers (GPR)
وهو الذى يعتبر كرام RAM
وكما نرى المسجل STATUSموجود فى العنوان 03h ويمكننا ايضا استخدامه من خلال العنوان 83h
وتركيبه كما بالشكل الاتى :
وكما واضح من الشكل انه يحتوى على 8-bit والان سنبدا فى التعرف على كل bit ووظيفته على حده
bit 0 C (Carry) Transfer
وتكون قيمته تساوى 1 عندما يحدث زيادة فى ناتج اى عملية حسابية اى يزيد الناتج عن 255 وهى ال 8-bit المتاحة وفى هذه الحالة يضع الميكرو فى هذه البت 1 لانه لا يجد مكان لتخزين الناتج
فى فى حالة عدم تجاوز 255 فان قيمته هذا البت تظل 0
وهذا البت مهم جدا ويسمى Carry Flag
bit 1 DC (Digit Carry) DC Transfer
فهو خاص باول 4 بت حيث تكون قيمته 1 فاذا كان الناتج ازيد من 15 وهى تعنى ان الناتج قد استهلك اول 4 بت وسيقوم بتخزينه فى ال 4 بت الباقيين وفى حالة العكس تكون قيمته تساوى صفر
bit 2 Z (Zero bit) Indication of a zero result
وهذا البت يستخدم لتوضيح ان ناتج اى عملية حسابية او منطقيه يساوى صفر
وتكون قيمته تساوى 1 عندما يكون ناتج العمليات يساوى 0
وتكون قيمته تساوى 0 عندما يكون ناتج العمليات لا يساوى 0
bit 3 PD
(Power-down bit)
تكون قيمة هذا البت تساوى 1 عندما يبدا الميكرو فى العمل وذلك بعد عملية reset وتكون قيمته صفر عندما يبدا فى اعادة التشغيل وتنفيذ امر SLEEP وتنفيذ هذا الامر يكون عند نقص القدرة المطلوبة .
bit 4 TO Time-out ; Watchdog overflow.
تكون قيمته تساوى واحد عندما ينتهى من اعادة التشغيل وتنفيذ أمر SLEEP وتصبح قيمته تساوى صفر عندما يرجع لنا Watchdog خطا معين
bit6:5 RP1:RP0
(Register Bank Select bits)
كما لاحظنا فى توزيع المسجلات انه يوجد ما يسمى Bank0 وBank1 فهذان البتان يتيحان لنا عملية اختيار البنك صفر او البنك واحد
يجب ملاحظة ان عناوين الذاكرة تتنتهى بالعنوان FFh وهذا يساوى 255 ونجد ان الميكر PIC16f84 لديه 256 فلذلك سنحتاج بت واحد فقط وهو RP0 اما RP1 فلن يتم استخدامه ولكن تم وضعه للتطوير المستقبلى وتكون قيمته دائما صفر
اما RP0 تكون 1 عندما نستخدم Bank 1 وتكون 0 عندما نستخدم Bank 0
bit 7 IRP
(Register Bank Select bit)
0 التعليقات:
إرسال تعليق