لنبدأ الآن بأخذ فكرة أقرب عن المسجلات:
1- (STATUS):
هذا المسجل يحوي 5 بت وهي كما يلي:
بت 0 (C or Carry): تحوي هذه الخانة القيمة 1 في حالة وجود زيادة في أعلى الأعداد قيمة من ناتج العملية الحسابية الجمعية السابقة (Carry) أو 0 في حالة عدم وجود زيادة.
كما تحمل القيمة 0 في حالة وجود اقتراض في أعلى الأعداد قيمة من ناتج العملية الحسابية الطرحية السابقة (Borrow) أو 1 في حالة عدم وجود قرض.
وتستخدم لتحديد الزيادة أو القرض في حالة جمع أو طرح رقمين من أكثر من بت.
بت 1 (DC or Digit Carry): تحوي هذه الخانة القيمة 1 في حالة وجود زيادة في أقل الأعداد قيمة من ناتج العملية الحسابية الجمعية السابقة (Carry) أو 0 في حالة عدم وجود زيادة.
كما تحمل القيمة 0 في حالة وجود اقتراض في أقل الأعداد قيمة من ناتج العملية الحسابية الطرحية السابقة (Borrow) أو 1 في حالة عدم وجود قرض.
وتستخدم لتعيين الزيادة أو القرض في حالة جمع أو طرح رقمين من 1 بت فقط.
بت 2 (Z or Zero): تحوي هذه الخانة القيمة المنطقية "1" في حالة أن ناتج العملية الحسابية السابق يساوي صفراً أو تحمل القيمة "0" في حالة أن الناتج ليس بصفراً.
بت 3 (PD or Power-down): تحوي هذه الخانة القيمة المنطقية "1" مع بداية تشغيل المتحكم أو بعد تنفيذ الأمر "CLRWDT"، أو تحمل القيمة "0" في حالة تنفيذ الأمر "SLEEP".
بت 4 (TO or Time out): تحوي هذه الخانة القيمة المنطقية "1" مع بداية تشغيل المتحكم أو بعد تنفيذ الأمر "CLRWDT"، أو بعد تنفيذ الأمر "SLEEP"، وتحمل القيمة "0" في حالة انتهاء العداد (WDT) والذي سنتحدث عنه لاحقاً ويرمز لـ (Watch Dog Timer) ويستخدم في عمل (Sleep) للمتحكم بعد طول فترة انتظار.
بت 5 (RP0): تستخدم هذه البت في اختيار البنك المستخدم ويمكن القراءة منها والكتابة عليها، ففي حالة "1" نكون في بنك 1 وفي حالة "0" نكون في بنك 0.
2- (Option):
هذا المسجل يحوي 7 بت كلها خاصة بتزامن المتحكم مع ساعة خارجية أو مع ساعة الـ (WDT) ولا أظن أن أغلبكم سيفهم أو حتى يحتاجها ولكن سأشرحها لمن لهم اهتمام بمسائل التزامن، وهي كما يلي:
بت 0-2 (PS0-PS2): قيمتها تحمل سرعة الساعة الخارجية أو ساعة (WDT) بالنسبة لسرعة ساعة المتحكم وهي كما يلي:
بت 3 (PSA): يحدد نوع الساعة التي ستستخدمها للـ (TMR0) أهي (WDT) أم خارجية ففي الحالة "1" هي الأولى وفي الحالة "0" هي الثانية، حيث توصل الساعة الخارجية عند استخدامها بالمنفذ T0CKI والذي هو نفسه RA4.
بت 4 (T0SE): تضعه بالقيمة المنطقية "1" إذا أردت أخذ الزيادة في الساعة TMR0 عند حصول الإنتقال من الصفر إلى الواحد ، أو بالقيمة "0" إذا أردت عند الإنتقال من الواحد إلى الصفر.
بت 5 (T0CS): يحدد إذا كنت ستستخدم ساعة المتحكم الأصلية للـ (TMR0) وحينها يحمل القيمة المنطقية "0"، أو القيمة "1" في حالة استخدامك لساعة خارجية.
أما بت 6 و 7 فهي لا تحتاج للشرح كما يلي:
إلى الآن لم نناقش مجموعة الأوامر، سنكمل في الدرس القادم إنشاء الله مصفوفة المسجلات ثم نبدأ بالأوامر وسنفهم انشاء الله الماهية الحقيقية للمسجلات عند تطبيق الأوامر
كل ما أطلبه منك الآن هو حفظ ما سبق وتخزينه في مخك وستعي فائدته مؤخراً
وإلى اللقاء في الدرس القادم إنشاء الله..