القرية الإلكترونية : قسم الإلكترونيات : ركن المبتدئين : الإلكترونيات الرقمية : المسجلات Registers


cpu

مقدمة :
المسجلات هي عبارة ذاكرة سريعة تستخدم لتخزين البيانات داخل المعالج .. لهذه حجم هذه السجلات مهم لأنه يحدد حجم البيانات والعمليات الحسابية التي يستطيع الكمبيوتر إجراءها .


سرعة السجلات :
سرعتها عالية بحيث تتناسب مع سرعة المعالج الموجودة فيه .. وأي قصور فيها يعتبر قصور في المعالج

وظيفة السجل register :

  • التحكم فى تنفيذ البرنامج .
  • الإبقاء المؤقت للمعلومة والنتائج .
فكره عامة عن السجلات : Registers

السجل هو مكان داخل الميكروكونترولر والذي يمكن الكتابة عليه أو القراءة منه أو كليهما معا لذلك يسمى سجل أو ملف .

فكر فى السجل كما لو كان قطعة من الورق ، حيث يمكنك أن تنظر إليه (قراءة) وتكتب معلومات به .

الشكل يوضح خريطة لتفاصيل السجلات أو الملفات للميكروكونترولر PIC16F84 .

لا تقلق إذا لم تكن رأيت مثلها من قبل فهي الآن فقط لإظهار أين تتواجد الخانات والسجلات المختلفة داخل الميكروكونترولر كما إنها سوف تساعد فى شرح وتفسير بعض الأوامر .

register

أول شيء ستلاحظه أنه ينقسم إلى قسمين كل قسم يسمى بنك Bank (بمعنى مجموعة أو قسم أو كومة ) ويسميان البنك 0 ( Bank 0 ) و البنك1 (Bank 1) 1) ) .

البنك 1 يستخدم للتحكم فى التشغيل الفعلي للميكروكونترولر فعلى سبيل المثال : أن نخبر الميكروكونترولر أي خانات المنفذ A تكون دخلا وأيها يكون خرجا كما سنرى .

البنك 0 يستخدم لمعالجة البيانات.

مثال على ذلك :

دعونا نقول إننا نريد أن نجعل خانة واحدة من المنفذ A مرتفعة .
أولا نحن بحاجة إلى الذهاب إلى البنك 1 لتعيين أو تحديد أو تخصيص الخانة bit أو الطرف pin المطلوب بالمنفذ A كخرج . ثم نعود الى البنك 0 ونرسل المنطق 1 (الحالة المرتفعة) إلى هذا الطرف .

السجلات الأكثر شيوعا وشهرة في البنك 1والتى سنستخدمها هي STATUS و TRISA و TRISB

السجل STATUS فى البنك 0 يسمح لنا بالتحول إلى البنك 1 .



السجل TRISA يسمح لنا باختيار و بتحديد أي الأطراف (بنات – دبابيس) من المنفذ A كخرج وأيها كدخل .

السجل TRISB يسمح لنا باختيار و بتحديد أي الإطراف (بنات – دبابيس) من المنفذ B كخرج وأيه كدخل.

السجل STATUS فى البنك 1يسمح لنا بالعودة إلى البنك 0

دعون نلقي نظرة فاحصة على هذه السجلات الثلاثة.

سجل الحالة STATUS :

فى بداية تشغيل البرنامج فان الوضع الافتراضي هو البنك0 , للانتقال من البنك 0 إلى البنك 1 فإننا نخبر مسجل الحالة بذلك, و نفعل ذلك بجعل الخانة رقم 5 بمسجل الحالة تساوى1 .

للعودة إلى البنك0مرة أخرى نجعل الخانة 5 لمسجل الحالة تساوى 0 .

يقع سجل الحالة بالعنوان 03h و h تعنى سداسي عشر .

سجلات التحكم فى المنافذ TRISA و TRISB:

عنوان TRISA هو  85h و عنوان TRISB هو 86h .

لبرمجة ألطرف كخرج أو كدخل ببساطة نرسل إما 0 أو 1 إلى الخانة المطلوبة بالسجل .

ويمكن أن يتم ذلك إما بشكل ثنائي أو سداسي عشر أو الاثنين معا لأن الثنائي يساعد فى توضيح حالة المنفذ .

إذا كنت لا تألف التحويل من ثنائي إلى سداسي عشر أو بالعكس يمكنك استخدم آلة حاسبة علمية.

لدينا بالمنفذ A خمسة أطراف وبالتالي لدينا 5 خانات .

إذا أردنا أن نجعل أحد الأطراف كدخل نرسل '1' إلى الخانة المناظرة ذات الصلة.

وإذا أردنا أن نجعل أحد الأطراف كخرج نجعل الخانة المناظرة ذات الصلة '0'

الخانات ترتب تماما بنفس طريقة الأطراف .

وبعبارة أخرى الخانة 0 هي RA0 والخانة 1 هي RA1 ، والخانة 2 هي RA2 وهلم جرا.

دعنا نأخذ مثالا على ذلك:


إذا أردنا أن نجعل RA0 ، RA3 وRA4 كمخارج ونجعل RA1 وRA2 كمداخل :

نرسل العدد00110 (06h). . للسجل TRISA , لاحظ أن الخانة 0 تكون فى اليمين كما هو مبين :

registers

والشيء نفسه ينطبق على TRISB

سجلات المنافذ PORTA و PORTB

لجعل أحد أطراف الخرج مرتفعا ببساطة نرسل '1' (كتابة) إلى الخانة المناظرة في السجل PORTA أو السجل PORTB
نفس الشكل أو الهيئة أو الفورمة المتبعة فى كل من TRISA وTRISB متبعة هنا .

لقراءة ما إذا كان الطرف مرتفع أم منخفض نجرى فحص على الخانة المطلوبة ومعرفة إنها مرتفعة (1) أم منخفضة0

قبل إعطاء مثال لكود أو شفرة فقط يجب شرح سجلان آخران هماw و f

سجل W

السجل W هو السجل العام الذي يمكنك وضع أي قيمة ترغب فيه .

وبمجرد وضع قيمة فى مسجل W يمكنك إضافتها إلى قيمة أخرى ، أو نسخها أو......

إذا قمت بوضع قيمة أخرى فى السجل W فان القيمة السابقة تمحى وتكتب القيمة الجديدة بدلا منها.
السجل f
يمثل المتغير سواء أكان سجل خاص أو سجل عام .

للرد او التعليق او الاستفسار حول هذا المقال

أضف هذا الموضوع إلى