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

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 29-09-2011, 02:59 AM المشاركة 25   
افتراضي



شكل ( هيئة ) التعليمه InstructionFormat

كل أعضاء عائلة المدى الأوسط للميكروكونترولر PICلها تعليمات بعرض 14-bitومجموعة من التعليمات عددها 35 تعليمة . وشكل أو هيئة التعليمة تتبع أربع نماذج مختلفة :
  • تعليمات خاصة بالبايت byte .
  • وتعليمات خاصة بالخانة أو البت bit .
  • وتعليمات خاصة بالثوابت .
  • وتعليمات التحكم .
الأشكال التالية توضح هذه الأنواع .














لاحظ أن مجال (مكان) شفرة أو كود التعليمة متغير فى عدد الخانات ,وذلك ليسمح بوجود 35 تعليمة مختلفة . أيضا لاحظ أن التعليمات التى بها سجل ملف يكون مكون من 7 خانات . والمدى العددى للسبع خانات هو 128 قيمة . ولهذا السبب فى عائلة الميكروكونترولر الذى يحتوى على أكثر من 128 موقع ذاكرة بيانات يجب أن توزع بتقنية البنوك (المجموعات) حيث يتم يتم اختيار البنك (المجموعة) الذى به العنوان بمساعدة سجل خاص يعرف باسم مسجل الحالة Status.

مفهوم سجل الملف Register File Concept:

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 29-09-2011, 03:02 AM المشاركة 26   
افتراضي


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



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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 29-09-2011, 03:09 AM المشاركة 27   
افتراضي


المخطط الصندوقى

هو البداية فى دراسة أى جهاز

المخطط الصندوقى هو البداية فى دراسة أى جهاز أو معدة سواء أكانت ميكروكونترولر أو حتى بوابة منطقية بسيطة .الشكل يبين المخطط الصندوقى للميكروكونترولر PIC الأساسى للعائلة الوسطى PIC16 وبه كل المعلومات الآزمة التى تحتاجها لفهم وبدأ العمل مع الميكروكونترولر.






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

نبدأ المخطط الصندوقى بحيز ذاكرة البرنامج :


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 29-09-2011, 03:11 AM المشاركة 28   
افتراضي


نبدأ المخطط الصندوقى بحيز ذاكرة البرنامج :
يقوم عداد البرنامج program counter (إختصاره PC )بعنونة حيز ذاكرة البرنامج سواء أكانت ذاكرة EPROM أو Flash EEPROM . وعداد البرنامج فى هذه العائلة هو سجل طوله 13bits.




إذا نظرنا إلى الشكل وجدنا به ثلاثة اجزاء :
عداد البرنامج و المكدس وذاكرة البرنامج الفعلية وهى تعمل معا .
يتم تحميل ذاكرة البرنامج بكود ( شفرة ) البرنامج المطلوب من الميكروكونترولر تنفيذها . البرنامج يكون على شكل قائمة من التعليمات ويقوم عداد البرنامج بحفظ عنوان التعليمة التالية التى عليها الدور فى التنفيذ أى أنه يعمل كمؤشر لذاكرة البرنامج ويمكن لقيمة عداد البرنامج أن تنتقل إلى المكدس ويحدث ذلك عند تنفيذ برنامج فرعى أو حدوث مقاطعة كما فى تعليمات CALLو RETURNو RETFIE و RETLW . وسوف نتناولها فيما بعد .
عداد البرنامج ذو 13-bit ومن ثم فإن الميكروكونترولر يمكنه نظريا العنونة من 0000 الى 1FFFH .
أول موقع فى ذاكرة البرنامج يسمى resetvector ( متجه أو شعاع البداية ) . عند بدء تشغيل البرنامج لأول مرة ( عند توصيل التغذية مثلا ) فإن عداد البرنامج يوضع على الصفر (تصفير )( 0000) وبالتالى فإن أول موقع سوف يشير إليه هو resetvector ( متجه البداية ). ومن ثم فعلى المبرمج أن يضع أول تعليمة له فى هذا الموقع . وهناك متجهات أخرى تعمل بنفس الطريقة مثل متجه "مقاطعة" المحيطات
peripheralinterrupt vector .
لابد إنك لاحظت أن عداد البرنامج له مكدس مصاحب له هذا المكدس هو سجل ( ذو 13-bits ) وهو جزء من العتاد الصلب hardware وفى حالتنا ( عائلة المدى الاوسط ) يوجد فى التركيب البنائى مكدس بعمق 8 مستويات .
هذا المكدس يستعمل فقط فى حفظ قيمة عداد البرنامج عند القفز Jumpإلى برنامج فرعى أو عندما تحدث مقاطعة للبرنامج .
فعند حدوث هذه الاحداث فإن قيمة عداد البرنامج يضاف اليه 1 ويدفع إلى المكدس . وهذا يسمح لعداد البرنامج نفسه بإعادة تحميله بعنوان لتعليمة جديدة والمطلوب تنفيذها .
فى حالة القفز إلى تعليمة برنامج فرعى فإن هذا العنوان يكون ضمن تعليمة CALL .
فى حالة حدوث مقاطعة للبرنامج فإن عداد البرنامج يوضع على 04h وعو عنوان متجه المقاطعة .


سوف نتتبع التعليمة MOVF PORTB,W خلال التركيب البنائى .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 29-09-2011, 03:13 AM المشاركة 29   
افتراضي


سوف نتتبع التعليمة MOVF PORTB,W خلال التركيب البنائى .

هذه التعليمة سوف تأخد محتوى المسجل PORTB وتنسخه copy فى السجل W .





ترى فى الشكل الشفرة أسفل التعليمة وفيها الستة خانات ذات الأهمية القصوى ( جهة اليسار ) تعرف التعليمة MOVF . الخانة التالية هى خانة الهدف ( أو المقصود) وهى فى هذه الحالة 0 وتعنى أننا سوف نخزن النتيجة فى السجل W . السبعة خانات ذات القيمة الأدنى ( من اليمين ) تعرف موقع (عنوان) المسجل الذى سوف نحصل منه على البيانات لنقلها إلى المسجل W . فى هذه الحالة القيمة هى العنوان 0x06 ( 06H ) والذى يتواجد فيه السجل PORTB .
خانة الهدف تعرف أين يتم وضع نتيجة التعليمة وحيث أنه توجد خانة واحدة يكون لدينا إختياران لعنوان الهدف إما أن يكون السجل W أو العودة إلى السجل المعرف فى التعليمة نفسها وهو فى هذه الحالة PORTB .
شفرة التعليمة ذات 14 خانة والتى يشير إليها عداد البرنامج تخرج من خلال ممر البرنامج إلى مسجل التعليمة .
لاحظ أن العنوان ( باللون الاصفر ) هو عنوان فى حيز ذاكرة البيانات ( SRAM) وهو غير حيز ذاكرة البرنامج ( ( ROM . فالحيزان منفصلان تماما عن بعض ويجب عدم الخلط بينهما.
فى هذه الحالة فان السبع خانات العليا ( جهة اليسار ) للتعليمة يتم حل شفرتها وتخبر المعالج بأنها تحتاج إلى عمل نقل move محتوى سجل ووضع الناتج فى السجل W .
يذهب العنوان إلى المنتخب multiplexer الخاص بالعناوين وحيث أننا نستخدم الطريقة المباشرة للعنونة فى هذا المثال فان PORTB يستخدم كعنوان للسجل فى ذاكرة البيانات .
لاحظ أن السجل W هو جزء من وحدة الحساب والمنطق فى التركيب البنائى لهذه العائلة وليس له حيز عنوان منفصل .
لذلك لنقل البيانات إلى السجل W يجب أن تمر خلال وحدة الحساب والمنطق . والعكس لنقل البيانات من السجل W إلى حيز مسجل البيانات يتم من خلال وحدة الحساب والمنطق ( مستخدما خط التغذية العكسية الاحمر بوحدة الحساب والمنطق نفسها ) .







الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 29-09-2011, 03:16 AM المشاركة 30   
افتراضي


فى التعليمات ألفورية : التى تتعامل مع الثوابت يتم أخذ قيمة الثابت ذو 8-bits من التعليمة نفسها ( بدلا عن العنوان لأن القيمة الثابتة محددة فى التعليمة ) خلال الخط الازرق إلى المنتخب أعلا وحدة الحساب والمنطق متخذة طريق البيانات من سجل التعليمة حيث تمر القيمة الثابتة من خلال وحدة الحساب والمنطق حيث يتم إيداع الثابت فى السجل W وهذا الطريق هو طريق البيانات من ذاكرة البرنامج إلى السجل W الموجود فى جانب ذاكرة البيانات من التركيب البنائى .




وحيث أن منافذ الدخل والخرج متصلة بنفس ممر البيانات مثل مسجلات الملف ومواقع ذاكرة RAM يمكنك عنونة منافذ الدخل والخرج و RAM بنفس الطريقة . فقط غير العنوان وسوف تنفذ التعليمة على موقع ذاكرة RAM أو على منفذ دخل وخرج آخر لإنها تقع على نفس ممر البيانات ذو 8-bits.

بهذا تتم هذه التعليمة الخاصة ولكن إذا نظرنا إلى باقى المخطط الصندوقى سنرى جميع الأجهزة المحيطية (الطرفية ) وتشمل المؤقتات والساعة والعدادات وهى تقع فى نفس ممر البيانات على الرغم من أنها كلها لها عناوين مختلفة .
يتم الوصول إلى الأجهزة المحيطية (الطرفية) من خلال نفس ممر البيانات كذاكرة البيانات RAM وسجلات الملف ومنافذ الدخل والخرج وحتى عداد البرنامج PC هو أيضا يقع على نفس ممر البيانات . والآن يمكنك أن تأخذ محتويات ااسجل W ونقله إلى عداد البرنامج . وحيث أن الممر هو ممر 8-bits فقط فإنك تستطيع فعل ذلك فقط على الثمانى خانات الأدنى أهمية (المنخفضة) وسوف نناقش ذلك فيما بعد عند الحديث على تعليمات القفز .




منتخب العنوان يقوم بانتخاب إما عنوان مباشر أو عنوان غير مباشر وخرج منتخب العنوان هو عنوان إما لسجل ملف أو موقع فى RAM أو منفذ دخل وخرج أو أى من الأجهزة الطرفية أو الساعات والعدادات أو حتى عداد البرنامج نفسه . سوف تلاحظ هنا أن هناك دخل آخر لمنتخب العنوان وهو عنوان ولكنه لا يأتى من التعليمة بل يأتى من سجل ملف الاختيار أو FSR . وهذا السجل هو مؤشر العنوان الغيرمباشر للبيانات . يمكننا أن ناخذ محتويات هذا الملف واستخدامه كعنوان لموقع فى RAMأو منافذ الدخل والخرج أو أى أجهزة طرفية أو الساعات والعدادات .
الصندوق الآخر الذى يظهر هنا هو سجل الحالة status . وسجل الحالة هو سجل آخر يقع أيضا على ممر البيانات ويعطى حالة وحدة الحساب والمنطق حيث يحتوى سجل الحالة على بعض الخانات التى تعرف ما إذا كانت نتيجة آخر عملية تمت فى وحدة الحساب والمنطق قيمتها 0 وهل هناك زيادة overflowناتجة عن عملية طرح أو جمع وما إلى ذلك .




قبل أن ننهى هذا الجزء دعنا نناقش باختصار الخصائص المساعدة والموجودة فى بناء الميكروكونترولر . وتشمل :
عملية التصفير (البدء) brown out resetومؤقت الحراسة watch dog timer والتصفير (البدء) عند توصيل التغذية power on reset ومؤقت بدء المذبذب oscillator startup timer وكلها وظائف أساسية فى العائلة PICmicro x14
وصندوق توليد التوقيت يولد الإشارات الزمنية الآزمة للميكروكونترولر والتى يتم إستخلاصها ( إشتقاقها) من مذبذب كريستال خارجى أو من دائرة رنين ceramic resonator أو من مذبذب RC داخلى داخل الشريحة نفسها . وهذا التردد يقسم داخليا على 4 لإنتاج دورات الساعة Tcy التى سبقت مناقشتها وأربعة منها تكون دورة التعليمة .





الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 29-09-2011, 03:29 AM المشاركة 31   
افتراضي


أدنى معلومات مطلوبة للتهيئة لبرمجة الميكروكونترولر PIC :
تعتمد أدنى المعلومات على نوع الميكروكونترولر المستخدم , ولكن عامة نحتاج إلى دائرتين خارجيتين : دائرة التصفير reset ودائرة المذبذب oscillator .
دائرة التصفير reset
يتم تحقيق التصفير بتوصيل مقاومة رفع توصل من المدخل MCLR إلى جهد التغذية الموجب . أحيانا يرتفع الجهد ببطىء ولا تعمل وظيفة التصفير العادية البسيطة لذلك يجب استخدام دائرة تصفير خارجية كالمبينة بالشكل .



دائرة المذبذب oscillator
يحتوى الميكروكونترولر فى بناءة الداخلى على دوائر مذبذبات والتى يمكن أن تعمل فى أحد خمسة أنظمة :
· نظام كريستال بقدرة منخفضة LP .
· نظام كريستال / دائرة رنين XT .
· نظام كريستال / دائرة رنين بسرعة عالية HS .
· نظام مقاومة – مكثف RC .
· نظام داخلى كامل بدون أى مكونات خارجية .
فى الأنظمة LP , XT , HS يمكن توصيل مذبذب خارجى إلى طرف الدخل OSC1 كما فى الشكل التالى :





النظام LP : مصمم للعمل بالسرعة العادية وبقدرة منخفضة حيث تستهلك الدوائر الداخلية لنظام LP تيار أقل وهذا النظام مناسب للعمل على التردد المنخفض .

النظام XT : مصمم كحل للتوفيق بين العمل عند التردد المرتفع والاستهلاك المناسب للقدرة . ينصح باستخدام هذا النظام للعمل حتى 4MHz .

النظام HS : ويعرف أيضا بنظام السرعة المرتفعة ويعطى هذا النظام استجابة عند أعلى الترددات . استهلاك التيار يكون أيضا الأعلى من الانظمة الأخرى . ينصح باستخدام نظام HS للعمل حتى 20MHz .

استخدام نظام الكريستال :
كما هو موضح بالشكل , فى هذا النظام يتم توصيل كريستال ومكثفين خارجيا إلى مداخل الميكروكونترولر OSC1 و OSC2 . يجب اختيار المكثفات كما فى الجدول المرفق . على سبيل المثال عند استخدام كريستال بتردد 4MHz نستخدم مكثفان بالقيمة 22pF .






استخدام دائرة الرنين Resonator :
دائرة الرنين متوفرة بتردد من 4MHz إلى حوالى 8MHz , وهى ليست فى دقة الكريستال . الشكل يبين طريقة التوصيل .



استخدام نظام المذبذب RC :
فى التطبيقات التى لا تحتاج إلى دقة فى التوقيت يمكننا توصيل مقاومة ومكثف خارجيا إلى مدخل الميكروكونترولر OSC1 كما فى الشكل . يعتمد تردد المذبذب على كل من : قيم كل من المقاومة والمكثف (انظرالجدول المرفق) وجهد التغذية و درجة الحرارة . فى معظم التطبيقات نستخدم مقاومة 5k مع مكثف 20pF لكى نحصل على تردد بحوالى 4MHz وهى قيمة مقبولة .






استخدام المذبذب الداخلى :
بعض الميكروكونترولر PIC تحتوى داخليا على دائرة مذبذب كامل ولا تحتاج أى مكونات خارجية .عادة ما يكون المذبذب الداخلى بتردد 4MHz ويتم اختياره عند البرمجة . يجب اختيار المذبذب الداخلى عند التطبيقات رخيصة التكاليف .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 29-09-2011, 03:36 AM المشاركة 32   
افتراضي


قبل البدء فى البرمجة : التعرف على الميكروكونترولر PIC16F84 و PIC16F877 :



تمهيد:
فى هذا الجزء سوف نلقى نظرة فاحصة على التركيب البنائى على الميكروكونترولر المعتاد والشائع PIC16F84 . التركيب البنائى ومجموعة التعليمات لباقى عائلة الميكروكونترولر متشابهة بدرجة كبيرة وبقليل من المعلومات المكتسبة يمكننا استخدام باقى أعضاء العائلة بدون صعوبة .
وحيث أننا سوف نستخدم البرمجة بلغة السى C language فلن نحتاج إلى تعلم التفاصيل الدقيقة للتركيب البنائى ومجموعة التعليمات . فقط سوف نلقى نظرة على الخواص التى يحتاج مبرج لغة السى معرفتها أثناء تطوير البرمجيات الخاصة بالميكروكونترولر PIC .

تهيئة (إعداد) الأطراف (الأرجل) Pin configuration :
الشكل يوضح أطراف الميكروكونترولر PIC16F84 , وهو جهاز ذو 18 طرف 18-pin كما فى الشكل :





الخواص :
يحتوى الميكروكونترولر على :
· ذاكرة نوع Flash EEPROM قدرها 1204 X 14 .
· وذاكرة نوع RAM قدرها 68 byte .
· وذاكرة نوع EEPROM قدرها 64 byte .
· و 13 طرف كمنافذ مداخل / مخارج 13 I/O .
· ومؤقت timer.
· ومؤقت حراسىة watchdog timer ( WDT) .
· وأربع مصادر للمقاطعة :
- المقاطعة عن طريق طرف المقاطعة الخارجية External INT .
- المقاطعة عند حدوث طفحان بالمؤقت Timer overflow .
- المقاطعة عند تغير حالة أطراف المنفذ Port B (4 – 7 ) .
- المقاطعة عند تمام (نهاية) كتابة بيانات على ذاكرة EEPROM .

يعمل الميكروكونترولر PIC16F84 عادة على جهد منبع 5V ويستهلك تيار أقل من 2 ملى أمبير 2mA عند العمل على تردد 4MHz . عندما يعمل على جهد منبع 2V فإنه يستهلك تيار قدره 15 ميكرو أمبير 15uA .ولهذا السبب فإنه مناسب تماما لتطبيقات الأجهزة المحمولة ذات القدرة المنخفضة .

خريطة ملفات السجلات RFM :
هى رسم (شكل) مواقع جميع السجلات المتاحة بالميكروكونترولر وهى مفيدة للغاية عند البرمجة وخاصة عند البرمجة بلغة الأسمبلى .الشكل يبين خريطة سجلات الميكروكونترولر PIC16F84 .





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