قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 07-08-2010, 03:17 PM المشاركة 25   
افتراضي مفهوم سجل الملف Register File Concept:



مفهوم سجل الملف Register File Concept:
من خصائص التركيب البنائى للميكروكونترولر PIC والتى تجعله قوى هو إستخدام سجل(مسجل) الملفات . ونعنى بسجل الملف أن كل أماكن ذاكرة RAM والطرفيات peripherals ومنافذ الدخل والخرج I/O مرتبة ومنظمة على شكل بنك (مجموعة أو صف أو كومة) بسيطة من السجلات . جميع التعليمات يمكن أن تعمل على أى سجل ولست مضطرا لتحميل أى شىء من ذاكرة RAM إلى السجل لكى تجري وظيفة عليه .
على سبيل المثال يمكنك أن تأخذ محتويات السجل W وتضيفه إلى أى سجل بتعليمة واحدة . يمكن إضافته إلى سجل أغراض عامة أو إلى منفذ دخل وخرج . وهو ما يعرف بالتعليمة ذات المعاملين . عند إستخدام تعليمة بمعاملين فإن أحد المعاملين دائما يأتى من بنك سجل ملف والمعامل الثانى يأتى دائما من السجل(المسجل) W.
إذا استخدمت تعليمة ذات معامل واحد مثل زيادة ملف بمقدار واحد (INCF) يمكنك أخذ محتويات الملف الذى حددته إلى وحدة الحساب والمنطق ALU حيث يتم زيادته بواحد ثم يتم كتابة النتيجة بالعكس فى الملف (السجل) نفسه وكل ذلك فى تعليمة واحدة .
خانة الهدف يمكن أن تستخدم مع معظم التعليمات لتحديد مكان تخزين النتيجة إما إلى الملف نفسه أو تخزن فى المسجل W . كمثال إذا أضفنا الفاصلة ثم F“comma F” إلى نهاية تعليمتنا السابقة فى عمل زيادة بمقدار واحد فإن نتيجة التعليمة سوف تخزن فى الملف نفسه وهى نفس النتيجة كما لو تركناها بدون ذلك . ولكن عند إضافة فاصلة ثم W“comma W” فى نهاية التعليمة فإن هذا يؤدى إلى أخذ محتويات الملف الذى حددته ثم عمل زيادة بمقدار واحد له ووضع النتيجة فى المسجل W بدون التأثير على محتويات الملف الأصلى الذى تم قراءته فقط ولم يتم الكتابة عليه .
وهذا يعطى لك خياران مختلفان فى تخزين نتيجة التعليمة .





الفديو على الرابط

http://eeecb.com/up2//view.php?file=cd4fad6350

ذاكرة البيانات:Data Memory


التعديل الأخير تم بواسطة : F.Abdelaziz بتاريخ 07-08-2010 الساعة 04:13 PM
اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 07-08-2010, 03:54 PM المشاركة 26   
افتراضي ذاكرة البيانات: Data Memory


ذاكرة البيانات:Data Memory
أولا : العنونة المباشرة
دعنا نلقى نظرة على العنونة المباشرة لحيز ذاكرة البيانات . كمثال للعنونة المباشرة التعليمة MOVFW . التعليمة ذات 14-bits يأتى منها 7- bits من البيانات (كجزء من العنوان) . وهذا يسمح لنا بالوصول المباشر الى 128 سجل مختلف .
إذا أردنا الوصول إلى مسجلات إضافية ( كما هو الحال فى المنتجات التى تحتوى على ذاكرة RAM أكبر من 128 ) عندئذ نستخدم عدد 2-bits من سجل الحالة . هاتان الخانتان تعرفان باسم RP0 و RP1 , هاتان الخانتان تعطينا إمكانية حتى أربعة صفحات مختلفة من ذاكرة RAM . باستخدام هاتان الخانتان يتم زيادة مجال العنونة لمجموعة الملفات إلى 9-bits والذى يسمح بالوصول إلى أربع اضعاف العدد المستخدم ب 7-bits التى تعطينا اياها التعليمة نفسها .





ثانيا : العنونة الغير مباشرة
الأن سنناقش العنونة الغير مباشرة والتى تسمح لك بالزيادة فى " مؤشر" وبسهولة نذهب خلال جدول أو قائمة من البيانات محفوظة فى حيز ذاكرة البيانات .
عندما نستخدم العنونة الغير مباشرة يكون لدينا 9 خانات متاحة لحيز العنونة . الثمانى خانات المنخفضة للعنوان الغير مباشر تأتى من سجل اختيار الملف FSR بينما الخانة التاسعة تأتى من خانة مؤشر بنك المسجل الغير مباشر IRP فى سجل الحالة . الخانة IRP تعطى صفحتان من العناوين 8-bits . عندما تستخدم العنونة الغير مباشرة تحتاج للتاكد من أن الخانة IRP فى مسجل الحالة موضوعة فى الصفحة الصحيحة .
إذا نظرت إلى سجل الحالة هناك خانات أخرى مهمة . عرفنا الخانة IRP وخانة صفحة المسجل رقم 1
( RP1 ) و خانة صفحة المسجل رقم 0 ( RP0 ). الخانة TO هى خانة نهاية الزمن والخانة PD هى خانى هبوط القدرة . هاتان الخانتان تستخدمان مع غيرهما لتعريف سبب حدوث حالة "إعادة التشغيل" reset هل هى نتيجة إنتهاء زمن الحراسة watchdog timeout أو نتيجة إشارة reset على الطرف MCLR أو نتيجة تتابع هبوط القدرة . كما أن لدينا كذلك خانة الصفر zero bit وخانة نصف الحمل وخانة الحمل وهى لبيان حالة وحدة الحساب والمنطق فى نهاية كل عملية .




مثال على العنونة الغير مباشرة

فى هذا المثال سنقوم بمسح clear كل مواقع ذاكرة RAM من 0x20 إلى 0x7F
( عد عدد الخانات المطلوب مسحها وفى العنونة المباشرة كل خانة تحتاج الى تعليمة منفصلة).

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

التعليمة الأولى هى MOVLW 0x20 . هذه التعليمة تنقل (تضع) 20hفى السجل W لأن 20h هو أول عنوان سنقوم بمسحه .

التعليمة الثانية هى نقل محتوى السجل W إلى الملف FSR أى نسخ القيمة 20h من السجل W ووضعها فى السجل FSR .

يجب هنا ملاحظة أنه على الرغم من أننا نستخدم الاسم الحرفى ( أى من الحروف) FSR فى تعليماتنا وهو فى الحقيقة نفس الشىء كاستخدام العنوان المطلق 04h ( أى إما أن نستخدم FSR أو نستخدم ( 04h.

والآن سنتوجه إلى الحلقة loop التى بالفعل سوف تمسح محتويات كل السجلات بين 0x20 و 0x7F .

التعليمة الأولى فى الحلقة هى تعليمة مسح ملف CLRF INDF وهى تقوم بمسح سجل الملف الغير مباشر أو INDF . حيث أنه كلما استخدم INDF كاسم لسجل فى التعليمة فإن دائرة فك ( حل) الكود
( الشفرة) تترجم ذلك على أن هذه هى محتويات السجل الموجود فى الموقع 0x04 وهو كما أشرنا السجل FSR .
وبعبارة أخرى إذا استخدمت أسم السجل INDF فى التعليمة فإن المعالج سوف يذهب وياتى بمحتويات السجل FSR ويستخدم هذه القيمة كعنوان لسجل .
أى أن التعليمة تعنى : أمسح الملف الذى عنوانه موجود فى السجل FSR .
الآن الموقع 20h بذاكرة RAM به 0 لأنه عند تنفيذ التعليمة CLRF INDF فإن محتويات السجل FSR كانت 0x20 .
التعليمة التالية هى زيادة الملف FSR بمقدار واحد increment فى كل مرة وجعل الهدف هو f والذى يؤدى إلى وضع النتيجة مرة أخرى فى سجل الملف . هذه الزيادة للمسجل FSR من 20h إلى 21h ووضع النتيجة مرة اخرى فى المسجل FSR حيت يتم تحديث المحتويات ( محو القديم ووضع الجديد) .
التعليمة التالية التى سوف يتم تنفيذها هى BTFSS FSR,7 ( تعنى إختبر الخانة المذكورة وإقفز أو تخطى التعليمة التالية عندما تكون هذه الخانة مرتفعة ) هذه التعليمة تقوم باختبار الخانة ذو الأهمية القصوى (أقصى اليسار) للسجل FSR لبيان إذا تحولت إلى جهد مرتفع أم لا .

عندما تصل هذه الخانة إلى الجهد المرتفع تعنى (تبين) أننا وصلنا إلى 80 hex وتبين أننا قد قمنا بمسح جميع السجلات المطلوبة .
إذا لم تكن الخانة 7 لها القيمة 1 فسوف يتم تنفيذ التعليمة التى تلى التعليمة BTFSS مباشرة وهى التعليمة GOTO . وهذا يسبب قفز عداد البرنامج إلى العنوان “loop” وسوف نقوم بتنفيذ حلقتنا مرة ثانية .
والآن إذا استدعينا السجل FSR كان به 0x21 ولذلك فعند تنفيذ التعليمة CLRF INDF سوف نقوم بمسح محتويات العنوان 0x21 لتكون أصفار . بعد ذلك يتم زيادة السجل FSR مرة أخرى بواحد ووضع النتيجة مرة اخرى به فيكون محتواه 0x22 وهكذا فى كل مرة بعد كل حلقة وحتى يصل الى 0x80 عندها تكون الخانة السابعة مرتفعة الجهد . عندما يحدث ذلك فإن تعليمة إختبار الخانة تكون صحيحة وسوف يحدث تخطى skip للتعليمة GOTO ونخرج من الحلقة .عند هذه النقطة مسحنا كل مواقع الذاكرة من 20hex الى 7Fhex وجاهزين لتنفيذ التعليمة التالية فى برنامجنا .




ذاكرة البرنامج :

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 07-08-2010, 04:09 PM المشاركة 27   
افتراضي ذاكرة البرنامج : أولا : ألعنونة الفورية Immediate Addressing


ذاكرة البرنامج :
أولا : ألعنونة الفورية Immediate Addressing
ألعنونة الفورية تتم بتضمين التعليمة على قيمة فورية مكونة من 8 خانات .
يمكننا أن نرى أن فى التعليمة ذات ال 14 خانة لدينا 6خانات تمثل كود العملية ( يسمى op code) ولدينا 8 خانات لقيمة ثابتة تسمى literal“k” بمعنى حرفى أو بالحرف الواحد . هذه التعليمات تستخدم للتلاعب بالقيمة التى فى السجل W بقيمة ثابتة ذات 8خانات .
هناك العديد من التعليمات متاحة لاستخدام القيمة الثابتة . كمثال وضع أو نقل ثابت إلى المسجل W
( MOVLW) وهى كثيرا ما تستخدم وهى ببساطة تحمل (تضع)قيمة فورية فى السجل W .
وتعليمة هامة تستخدم مع جداول عمليات البحث أو الفحص table look-ups وهى الرجوع مع وضع ثابت فى السجل W (RETLW) والتى تسمح لك بالعودة من البرنامج الفرعى مع وضع قيمة ثابتة فى المسجل W .




ثانيا :العنونة المطلقة




العنونة المطلقة فى مدى حيز ذاكرة البرنامج تسمح للمبرمج بإضافة تعليمات تحكم . وتعليمات التحكم تعرف عل شكل GOTO أو تعليمات القفزوتعليمة CALL أو القفز إلى تعليمات برنامج فرعى أو أى تعليمة أخرى تعدل عداد البرنامج نفسه . وهذه تشمل التعليمات التى تكتب مباشرة بعداد البرنامج والتى سنناقشها بالتفصيل فيما بعد .
سوف تلاحظ هنا أنه فى التعليمة ذات 14-bits فإن القيمة المطلقة هى 11-bits مع شفرة العملية المكونة من 3-bits . وهذا يسمح لنا بإمكانية القفز فى أى مكان فى حيز عناوين قدره 2K من ذاكرة البرنامج .

والى لقاء قريب ان شاء الله


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 07-08-2010, 09:10 PM المشاركة 28   
افتراضي


فديوهات الجزء السابق

على الروابط

http://eeecb.com/up2//view.php?file=3b3a2f7c43

http://eeecb.com/up2//view.php?file=7aa9d60b62

http://eeecb.com/up2//view.php?file=288a988285

http://eeecb.com/up2//view.php?file=21a37d62e3

http://eeecb.com/up2//view.php?file=d25602bd84

http://eeecb.com/vb/index.php


والى لقاء قريب ان شاء الله


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 07-08-2010, 11:07 PM المشاركة 29   
افتراضي المذبذبات Oscillator ونبضات الساعة Clock


المذبذبات Oscillator ونبضات الساعة Clock

مقدمة :
يحتاج الميكروكونترولر كما هو الحال فى جميع الأنظمة التى تعتمد فى عملها على المعالج الدقيق إلى نظام أساسى هو نظام "التوقيت" ويسمى نبضات الساعة أو إختصارا "الساعة" clock وذلك من أجل توقيت تنفيذ تعليمات البرمجة وتزامن عمل مكونات الميكروكونترولر ويقوم المذبذب بتوليد هذه النبضات .
تردد المذبذب يحدد سرعة تنفيذ التعليمات .التردد (الساعة) الداخلى المستخدم فى التوقيت وتزامن المكونات يساوى "ربع" 1/4تردد (ساعة) المذبذب الخارجى .




أنواع المذبذبات :
1- مذبذب الرنين Resonance ويمتاز بثبات التردد وهو الأمر المطلوب فى التطبيقات الدقيقة والتى تعمل على تردد واحد .
2- مذبذب يعتمد على دائرة مقاومة ومكثف RC Oscillator والذى يمكن تغيير تردده بتغيير الثابت الزمنى للدائرة أى قيم المقاومة والمكثف .

أنواع مذبذبات الرنين :
1- مذبذب الرنين الكريستال أو الكوارتز( يطلق عليه إختصارا كريستال) .




2- مذبذب الرنين السيراميكى وهو أقل تكلفة وأصغر حجما وأقل جودة من المبذب الكريستال (يطلق عليه إختصارا سيراميك ) .




مثال لأنظمة المذبذبات المستخدمة فى الميكروكونترولر PIC16F84A :


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 07-08-2010, 11:12 PM المشاركة 30   
افتراضي مثال لأنظمة المذبذبات المستخدمة فى الميكروكونترولر PIC16F84A :


مثال لأنظمة المذبذبات المستخدمة فى الميكروكونترولر PIC16F84A :

يمكن أن يعمل الميكروكونترولر PIC16F84A وفق أربعة أنظمة أساسية ويمكن للمبرمج إختيار إحداها عن طريق برمجة خانتين من خانات كلمة الإعدادات هما FOSC1 و FOSC2 ( إما برمجيا عند تحميل البرنامج على الميكروكونترولر أو ينص عليها فى شفرة البرنامج نفسه عن طريق موجه لغة الاسمبلى __CONFIG ) :




1- مذبذب نظام LP : LP Low Power Crystal ( كريستال بقدرة منخفضة)

هذا النظام مصمم للعمل حيث يكون إستهلاك القدرة عامل أساسى ويستخدم فى هذا النظام كريستال بتردد 32.768KHZ (ويمكن التعرف عليها بسهولة لصغر حجمها وبشكلها الاسطوانى المميز) كما يمكن أن يعمل حتى تردد أقل من 200KHZ . والتيار المستهلك هو الاقل فى جميع الأنظمة .




2- مذبذب نوع XT : Crystal/Resonator ( كريستال أو سيراميك ).

ويستخدم هذا النظام كريستال كوارتز أو دائرة رنين سيراميك فى المدى المتوسط أى من 1MHZحتى 4MHZ كما أن إستهلاك التيار فيه متوسط .




3- مذبذب نوع HS : High Speed Crystal/Resonator (كريستال أو سيراميك بسرعة أو تردد مرتفع )

يستخدم هذا النظام كريستال كوارتز أو دائرة رنين سيراميك ذو تردد مرتفع فوق 4MHZ وإستهلاك التيار فى هذا النظام هو الأعلى .





4- مذبذب نوع RC أو EXTRC ( المقاومة والمكثف الخارجى )





مدى التردد من صفر الى 4MHZ . والقدرة المستهلكة تعتمد على التردد المستخدم . نبضات الساعة الناتجة فى هذا النظام غير دقيقة نتيجة التغير فى درجة الحرارة وتبعا لها التغير فى قيمة المكثف والمقاومة لذلك لا ينصح باستخدامه فى التطبيقات الحساسة للتوقيت مثل الاتصال المتتالى RS-232 .





الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 07-08-2010, 11:16 PM المشاركة 31   
افتراضي مذبذب الكريستال ودائرة الرنين السيراميك فى الانظمة : XT , LP , HS


مذبذب الكريستال ودائرة الرنين السيراميك فى الانظمة : XT , LP , HS

يوصل الكريستال أو السيراميك إلى الاطراف OSC1/CLKIN و OSC2/CLKOUT لإنشاء مذبذب كما فى الشكل .




جدول إختيار المكثفات :




المذبذب RC :

يستخدم للتوقيت فى التطبيقات الغير حساسة بغرض توفير التكاليف . تردد مذبذب RC يعتمد على جهد المنبع وعلى قيمة المقاومة وقيمة المكثف وعلى درجة الحرارة .
الشكل يوضح طريقة توصيل المقاومة والمكثف للميكروكونترولر PIC16F84



جدول إختيار المقاومة والمكثف :



الصورة الرمزية mhmd.sh89
mhmd.sh89
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2009
الدولة: لبنان-ضاحية العزة والكرامة
المشاركات: 184
نشاط [ mhmd.sh89 ]
قوة السمعة:
قديم 07-08-2010, 11:35 PM المشاركة 32   
افتراضي


حلو الكلام !

هذا الشرح رائع ، وانا من عشاق هذه الشروحات .

أتمنى من كل منتدى القرية أن يدخل على هذا الموضوع لتعلم أساس الميكرو لأنه أساس الميكروسي و البيزيك والبروتون وغيرهم


أخي نحن ورائك تـــــــــــــــــــــــــــــــــــــــــــــــــ ـــــــــــــــــــــــــــــــــــــــــابع



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 07:29 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)