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

   

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



تنقسم الخريطة إلى جزءين : سجلات الوظائف الخاصة SFR وسجلات الوظائف العامة GPR .يحتوى الميكروكونترولر PIC16F84 على 68 سجل وظائف عامة وهى تستخدم فى التخزين المؤقت (المرحلى) temporary للمتغيرات .
سجلات الوظائف الخاصة هى مجموعة السجلات التى تستخدم بمعرفة وحدة المعالجة المركزية CPU والوظائف الخارجية (المحيطية) peripheral بغرض التحكم فى العمل الداخلى للميكروكونترولر . وتبعا لنوع (تعقيد) الميكروكونترولر تزداد أو تقل سجلات الوظائف الخاصة . من المهم ان يفهم المبرج جيدا سجلات الوظائف الخاصة حيث أنها تستخدم فى كل من البرمجة بلغة الأسمبلى أو البرمجة باللغات عالية المستوى .

وصف لسجلات الوظائف الخاصة المستخدمة عند البرمجة باللغات عالية المستوى :
سجل الخيارات OPTION_REG register :
سجل الخيارات هو سجل قابل للقراءة والكتابة وهو يحتوى على خانات تحكم مختلفة لتهيئة المؤقت الداخلى بالشريحة ومؤقت الحراسة .هذا السجل بالعنوان 81 سداسى عشر والشكل يبين تعريف لخاناته .
مثال :
لتهيئة الطرف INT للسماح بالمقاطعة الخارجية عند الحافة الصاعدة على الطرف INT يجب تحميل نموج الخانات التالى بسجل الخيارات :X1XXXXXX حيث X خانة غير مؤثرة don't care ويمكن أن تكون 0 أو 1 .





سجل التحكم فى المقاطعة INTCON register :
هذا السجل قابل للقراءة والكتابة ويحتوى على الخانات المختلفة لوظائف المقاطعة .السجل بالعنوان 0B و 8B سداسى عشر والشكل يبين تعريف خاناته .
مثال :
لتمكين المقاطعة بحيث تقبل المقاطعة الخارجية من الطرف INT يجب تحميل النموذج التالى بسجل التحكم فى المقاطعة : 1XX1XXXX





سجل التحكم فى المنفذ TRISA وسجل المنفذ PORTA :
المنفذ PORT A بعرض 5 خانات 5-bit . أطراف المنفذ من 0 إلى 3
(وتسمى RA0-RA3) ذات دوائر لتشغيل دوائر الخرج من النوع CMOS . الطرف RA4 ذات خرج "مصب مفتوح" open drain ويجب توصيله إلى جهد المنبع من خلال مقاومة رفع مناسبة عند استخدامه كطرف خرج . كل طرف بالمنفذ له خانة تحكم فى الاتجاه وهذه الخانة تحفظ فى السجل TRIS . جعل خانة بالقيمة 1 فى السجل TRISA يجعل الطرف المناظر بالمنفذ PORTA كمدخل . وجعل خانة بالقيمة 0 فى السجل TRISA يجعل الطرف المناظر بالمنفذ PORTA كمخرج .
مثال :
لجعل الخانات 0 و 1 للمنفذ A مداخل وباقى الخانات مخارج نحمل السجل TRISA بالنموذج : 00000011
عنوان المنفذ PORTA هو 05 سداسى عشر وعنوان سجل التحكم به TRISA هو 85 سداسى عشر .

سجل التحكم فى المنفذ TRISB وسجل المنفذ PORTB :
المنفذ Port B هو سجل بعرض 8 خانات 8-bit ثنائى الاتجاه .وسجل التحكم فى اتجاه البيانات الخاص به هو السجل TRISB . وضع 0 فى أى خانة من خانات السجل TRIAB تجعل الطرف المناظر بالمنفذ PORTB كمخرج . ووضع 1 فى أى خانة من خانات السجل TRIAB تجعل الطرف المناظر بالمنفذ PORTB كمدخل .
عنوان السجل PORTB هو 06 سداسى عشر وعنوان السجل TRISB هو 86 سداسى عشر .
بعض الميكروكونترولر تحتوى على أكثر من منفذين وهذه المنافذ الإضافية تسمة PORTC و PORTD و...الخ .

موديول المؤقت وسجل المؤقت TMR0 :
المؤقت هو سجل بعرض 8 خانات 8-bit (يسمى TMR0) والذى يمكن استخدامه كمؤقت timer أو كعداد counter . عند استخدامه كعداد يتزايد السجل عند وصول كل نبضة إلى طرف الميكرومونترولر TOCK1 . وعندما يستخدم كمؤقت يتزايد السجل بمعدل يتحدد بتردد ساعة النظام clock وبمعامل القسمة prescaler الذى يتم اختياره عن طريق سجل الخيارات OPTION_REG .معدلات معامل القسمة تتغير من 1:2 إلى 1:256 .
مثال :
عند استخدام ساعة النظام بتردد 4MHz تكون دورة التعليمة الأساسية 1 ميكروثانية (يتم قسمة تردد الساعة داخليا على 4 ) . إذا اخترنا معدل معامل القسمة بالقيمة 1:16 فإن العداد سوف يتزايد كل 16 ميكروثانية .
تتولد المقاطعة بالمؤقت عند حدوث طفحان overflow من 255 إلى 0 . هذه المقاطعة يمكن تمكينها أو عدم تمكينها عن طريق الخانة 5 من السجل INTCON .وهكذا إذا كان المطلوب توليد مقاطعة عند فترات 200 ميكروثانية وباستخدام تردد ساعة 4MHz يمكننا اختيار معامل القسمة بالقيمة 1:4 وتمكين المقاطعات بالمؤقت .عندئذ تكون ساعة المؤقت بمعدل 4 ميكروثانية . من أجل إنقضاء 200 ميكروثانية يجب علينا إرسال 50 نبضة من نبضات ساعة المؤقت . وهكذا يجب تحميل السجل TMR0 بالقيمة 256 – 50 = 206 أى أنه يتم عد 50نبضة قبل حدوث الطفحان .
المؤقت TMR0 بالعنوان 01 سداسى عشر .

يحتوى الميكروكونترولر PIC16F84 على ذاكرة بيانات نوع EEPROM بقيمة 64 بايت 64 bytes . يتم التحكم فى هذه الذاكرة عن طريق السجلات EEDATA و EEADR و EECON1 .
يحتوى الميكروكونترولر PIC16F84 أيضا على سجل التهيئة
Configuration Register ويمكن جعل خاناته فى حالة set أو حالة rest عند البرمجة الفعلية للميكروكونترولر . هذا السجل يحتوى على خانات لتمكين أو عدم تمكين الخواص التالية :
· تمكين / عدم تمكين حماية الكود code protection .
· تمكين / عدم تمكين مؤقت بدء القدرة power on timer .
· تمكين / عدم تمكين مؤقت الحراسة watchdog timer .
· اختيار مصدر المذبذب .
بعض الميكروكونترولر تحتوى على محولات من تناظرى إلى رقمى A/D و مخارج تعديل عرض النبضة PWM و سجلات مقارنة .



الميكروكونترولر PIC16F877

اعلانات

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


3- الميكروكونترولر PIC16F877 :

الأطراف (الأرجل) :
الشكل التالى يبين أطراف (أرجل) الميكروكونترولر PIC16F877, وهو جهاز ذات 40 طرف 40-pin موزعة كما يلى :












يحتوى الميكروكونترولر PIC16F877 على:
· ذاكرة برنامج نوع Flash EEPROM بقيمة 8192 X 14 .
· ذاكرة بيانات نوع RAM بقيمة 368 bytes .
· ذاكرة بيانات نوع EEPROM بقيمة 256 bytes .
· عدد 33 طرف منفذ مدخل / مخرج 33 I / O .
· 8 قنوات محولات من تناظرى إلى رقمى A/D .
· أطراف لكل من SPI و I2C .
· مخرج PWM .
· سجلات مقارنة .
· USART .
· مؤقتات .
· عدد 14 مصدر مقاطعة خارجية وداخلية .

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

سجل الخيارات OPTION_REG :
هذا السجل قابل للقراءة والكتابة ويحتوى على خانات التحكم المختلفة لتهيئة : تخصيص معامل قسمة التردد للمؤقت 0 أو لمؤقت الحراسة , اختيار مصدر الساعة للمؤقت 0 , اختيار تمكين الرفع لخانات المنفذ B , و اختيار نوع الحافة لبدء المقاطعة الخارجية .

سجل التحكم فى المقاطعة INTCON :
هذا السجل قابل للقراءة والكتابة ويحتوى على خانات التمكين والأعلام المختلفة لسجل المؤقت Timer0 وخانات تمكين المقاطعة بالمنفذ Port B وخانات تمكين المقاطعة بالمحيطات وخانة تمكين المقاطعة الشاملة .

سجل التحكم فى ذاكرة البيانات نوع EEPROMEECON1
يحتوى السجل على خانات : التمكين والكتابة والقراءة للذاكرة EEPROM وأيضا خانات علم الخطأ فى الذاكرة EEPROM .

سجل التحكم فى المؤقت 1 T1CON :
يحتوى على خانة تعريف مصدر الساعة للمؤقت Timer1 و خانة التحكم فى تمكين المذبذب و خانات اختيار معامل قسمة التردد prescaler للمؤقت Timer1 .

سجل التحكم فى المحول من تماثلى إلى رقمى ADCON0 :
يتحكم هذا السجل فى موديول التحويل من تماثلى إلى رقمى A/D . بناء على خانات هذا السجل يتم اختيار مصدر الساعة للمحول A/D واختيارأحد القنوات التماثلية وتحديد حالة المحول A/D .

سجل التحكم فى المحول من تماثلى إلى رقمى ADCON1 :
هذا السجل يقوم بإعدادات وظائف أطراف منفذ المحول A/D واختيار شكل format المحول A/D .

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

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


الميكروكونترولر PIC16F887


السمات الأساسية للميكروكونترولر PIC16F887
1- ذات تركيب بنائى من نوع RISC "التعليمات المخفضة" :
# يستخدم 35 تعليمة فقط .
# جميع التعليمات تستغرق دورة تعليمات واحدة فيما عدا تعليمات التفرع .
2- تردد العمل 0-20 MHz .
3- يشمل على مذبذب داخلى دقيق :
# معاير فى المصنع .
# يمكن اختيار تردده برمجيا فى المدى من 31KHzإلى 8MHz.
4- جهد مصدر القدرة 2.0-5.5V :
# استهلاك التيار 220A عند (2.0V, 4MHz) و 11A عند (2.0 V, 32 KHz) و 50nA فى نظام stand-by .ب
5- يمتلك نظام السكون لتوفير القدرة Power-Saving Sleep Mode.
6- التصفير عند هبوط الجهد Brown-out Reset (BOR) بخيار التحكم عن طريق البرمجيات .
7- يمتلك 35 طرف مداخل / مخارج :
# ذات تيار مرتفع كمصدر source أو كمصب sink للتشغيل المباشر للدايودات المشعة للضوء LED :
# تحتوى على مقاومات جذب لأعلى يمكن استخدامها منفردة وعن طريق البرمجيات .
# حدوث المقاطعة عند تغير حالة الطرف .
8- سعة ذاكرة ROM من النوع FLASH هى 8K :
# يمكن برمجة الشريحة حتى 100.000 مرة .
9- بها خيار للبرمجة التسلسلية بالدائرة In-Circuit Serial Programming (ISP) :
# يمكن برمجة الشريحة حتى لو كانت ضمن جهاز .
10- سعة ذاكرة EEPROM هى 256 bytes :
# يمكن كتابة البيانات عليها لأكثر من 1.000.000 مرة .
11- سعة ذاكرة RAM هى 368 bytes .
12- تمتلك محولات من تناظرى إلى رقمى A/D converter :
# 14 قناة تحويل 14-channels .
# دقة التحويل 10-bit resolution .
13- تمتلك 3 مؤقتات / عدادات مستقلة 3 independent timers/counters .
14- تمتلك مؤقت حراسة Watch-dog timer
15- تمتلك وحدة (موديول) مقارن تناظرى Analogue comparator module به :
# 2 مقارن تناظرى .
# جعد مرجعى ثابت (0.6V) .
# جهد مرجعى داخل الشريحة قابل للبرمجة .
16- تمتلك خرج قيادة تحكم بتعديل عرض النبضة PWM .
17- تمتلك وحدة (موديول) USART محسن :
# يعتمد RS-485 و RS-232 و LIN2.0 .
# اكتشاف تلقائى لمعدل البود Baud .
18- تمتلك منفذ تسلسلى رئيسى متزامن (MSSP)
# يعتمد الأنظمة SPI و I2C .








وصف الأطراف PINOUT DESCRIPTION


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


وصف الأطراف PINOUT DESCRIPTION








معظم أطراف الميكروكونترولر PIC16F887 متعددة الوظائف كما هو واضح من الشكل العلوى .
على سبيل المثال : التسمية RA3/AN3/Vref+/C1IN+ للطرف الخامس للميكروكونترولر تدل على أنه يمتلك الوظائف التالية :
# RA3 المدخل / المخرج الرقمى الثالث للمنفذ Port A .
# AN3 المدخل الثالث التناظرى .
# Vref+ الجهد المرجعى الموجب .
# C1IN+ المدخل الموجب للمقارن C1 .


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


















وحدة المعالجة المركزية CENTRAL PROCESSOR UNIT (CPU)


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


وحدة المعالجة المركزية CENTRAL PROCESSOR UNIT (CPU)

لن نثقل عليك بعمل وحدة المعالجة المركزية في هذه المرحلة. مع ذلك نقول فقط أن وحدة التحكم المركزية مصنعة بتقنية RISC وهو عامل مهم عندما نقرر أى نوع من الميكروكونترولر نستخدم .
كلمة RISC تعنى مجموعة التعليمات المخفضة والتى تعطى للميكروكونترولر PIC16F887 ميزتين عظيمتين :
• وحدة المعالجة المركزية لا تتعرف إلا على 35 تعليمة بسيطة.
• زمن التنفيذ واحد لمعظم التعليمات كلها تقريبا ويستغرق 4 دورات من نبضات ساعة . تردد المذبذب يكون مستقر بسبب استخدام الكريستال الكوارتز. زمن تنفيذ تعليمات القفز أو التفرع يستغرق 2 دورة من دورات التعليمة . هذا يعني أنه إذا كان الميكروكونترولر يعمل عند تردد (سرعة) 20MHz فأن زمن تنفيذ كل تعليمة سوف يكون 200nS أى أن البرنامج سوف يقوم بتنفيذ 5 مليون تعليمة فى الثانية !

طريقة الحساب :
تردد نبضات الساعة (المذبذب) 20MHz
الزمن الدورى لنبضات الساعة (زمن الدورة الواحدة) مقلوب التردد = 50nS
زمن تنفيذ التعليمة الواحدة = 4 X الزمن الدورى لنبضات الساعة = 200nS
ويكون عدد التعليمات فى الثانية الواحدة = 1/200nS = 5 million





الذاكرة MEMORY


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


الذاكرة MEMORY

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

ذاكرة ROM "ذاكرة القراءة فقط "
تستخدم ذاكرة ROM فى الحفظ (التخزين) الدائم للبرنامج المطلوب تنفيذه . وهذا هو سبب تسميتها "ذاكرة البرنامج "‘program memory’ .
يمتلك الميكروكونترولر PIC16F887 ذاكرة ROM بسعة 8Kb ( بإجمالى 8192 موقع ) . نظرا لأن ذاكرة ROM مصنعة بتقنية FLASH فيمكن تغيير محتوياتها باستخدام جهد برمجة خاص (13V) , ويتم إجراء ذلك عن طريق برنامج خاص بالكومبيوتر وجهاز إلكترونى بسيط يسمى "جهاز البرمجة " programmer كما فى الشكل التالى .








ذاكرة EEPROM "ذاكرة قراءة فقط قابلة للمسح كهربائيا "
هذه الذاكرة تشبه ذاكرة البرنامج فى أنه يتم حفظ (تخزين) محتوياتها أيضا بشكل دائم حتى عند فصل القدرة . وعلى خلاف ذاكرة ROM فإن محتويات ذاكرة EEPROM يمكن تغييرها خلال عمل الميكروكونترولر . وهذا هو سبب أن هذه الذاكرة (256 موقع) مثالية للحفظ الدائم لبعض النتائج المتولدة والمستخدمة خلال العمل .

ذاكرة RAM "ذاكرة الوصول العشوائى"
هذه هى ذاكرة الميكروكونترولر الثالثة والأكثر تعقيدا .
تتكون هذه الذاكرة من قسمين (مجموعتين): قسم "سجلات الأغراض العامة" GPR و قسم "سجلات الوظائف الخاصة" SFR . جميع هذه السجلات مقسمة فى شكل أربع مجموعات "بنوك" ذاكرة والتى سوف نتعرف عليها فيما بعد .
على الرغم من أن كلتا المجموعتين يتم مسح (تصفير) سجلاتها عند فصل القدرة وعلى الرغم من أنه مصنعة بنفس الطريقة إلا أن وظائفها لا يوجد بها أشياء مشتركة كثيرة .









سجلات الأغراض العامة GENERAL-PURPOSE REGISTERS(GPR)


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


سجلات الأغراض العامة GENERAL-PURPOSE REGISTERS(GPR)
تستخدم سجلات الأغراض العامة فى الحفظ (التخزين) المؤقت للبيانات والنتائج المتولدة خلال العمل .على سبيل المثال , إذا أجرى البرنامج عملية عد counting ( منتجات فى خط تجميع) فمن الضرورى وجود سجل يمثل "المجموع" ‘sum’ . وحيث أن الميكروكونترولر لا يستطيع القيام بعمل شىء من نفسه فمن الضرورى تحديد عنوان لسجل غرض عام وتخصيصه (تعينه) لهذه الوظيفة . ويجب إنشاء برنامج بسيط يقوم بعمل تزايد بمقدار واحد لهذا السجل بعد مرور كل منتج خلال حساس .
الآن يستطيع الميكروكونترولر تنفيذ البرنامج حيث أنه عرف "ماهو" المجموع و"مكانه" . بالمثل كل متغيرات البرنامج يجب مسبقا أن يخصص (يعين) لها بعض سجلات الأغراض العامة .

سجلات الوظائف الخاصة SPECIAL FUNCTION REGISTERS (SFRS)
سجلات الوظائف الخاصة هى أيضا ذاكرة RAM ولكنها تختلف عن سجلات الأغراض العامة فى أن الغرض منها محدد مسبقا خلال التصنيع ولا يمكن تغييره . ونظرا لأن خاناتها bits تتصل بدوائر خاصة بالشريحة
( مثل المحول من تناظرى إلى رقمى A/D وموديول الاتصال التسلسلى و...إلخ ) فأى تغيير فى محتوياتها يؤثر مباشرة على عمل الميكروكونترولر أو بعض دوائره . على سبيل المثال : السجل ADCON0 يتحكم فى عمل المحول A/D . بتغيير خاناته يتم تعيين (تحديد) أى طرف منفذ يتم إعداده كمدخل للمحول ولحظة بدء التحويل علاوة على سرعة التحويل .
خاصية أخرى لمواقع هذه الذاكرة , وهى أنها تمتلك أسماء ( لكل من السجل وخاناته ) والتى تبسط لدرجة كبيرة عملية كتابة البرنامج .وحيث أن لغات البرمجة العليا يمكنها استخدام قائمة بكل السجلات و عناوينها الصحيحة , فيكتفى بتحديد اسم السجل من أجل قراءة أو تغيير محتوياته .

مجموعات (بنوك) ذاكرة RAMRAM MEMORY BANKS
تقسم ذاكرة RAM إلى أربعة مجموعات (تسمى بنوك) . قبل الوصول إلى أى سجل خلال كتابة البرنامج
( من أجل قراءة أو تغيير محتوياته) من الضرورى اختيار المجموعة (البنك) الذى يحتوى هذا السجل . تستخدم خانتان من سجل "الحالة" STATUS لاختيار المجموعة (البنك) وسوف نناقشه لاحقا . لتبسيط العملية فأن سجلات الوظائف الخاصة SFR الأكثر استخداما يكون لها نفس العنوان فى جميع المجموعات (البنوك) لذلك يمكن من الوصول إليها بسهولة .







قد يكون من الصعب التعامل مع البنوك فقط إذا كنت تكتب برنامج بلغة الأسمبلى . عند استخدام لغات البرمجة العليا مثل السى ومترجم مثل mikroC PRO for PIC فكل ما عليك القيام به هو تحديد اسم السجل. وعلى أساس ذلك يختار المترجم المجموعة (البنك) والتعليمات المناسبة المستخدمة لاختيار البنك وسوف يتم بناؤها في الكود خلال عملية الترجمة .
هل كنت تستخدم حتى الآن لغة الأسمبلى فقط وأن هذه هي المرة الأولى التي تستخدم مترجم السى ؟ اليست هذه أنباء سارة؟

























المكدس STACK


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


المكدس STACK
جزء من ذاكرة RAM يستخدم كمكدس يتكون من 8 سجلات وكل سجل مكون من 13 خانة 13-bit. قبل أن يبدأ الميكروكونترولر بتنفيذ برنامج فرعى ( تعليمة CALL ) أو عند حدوث مقاطعة ، فإن عنوان أول تعليمة تالية مطلوب تنفيذها يتم دفعه بالمكدس ، أي إلى واحد من سجلاته. وبفضل ذلك فأن الميكروكونترولر يعرف من أين يستمر فى تنفيذ البرنامج العادى بعد انتهاء تنفيذ البرنامج الفرعى أو المقاطعة . هذا العنوان يتم مسحه بعد العودة إلى البرنامج لأنه لا توجد حاجة لحفظه لفترة أطول، وتلقائيا يصبح أحد مواقع المكدس متاح للاستخدام مرة أخرى.
ومن المهم أن نضع في اعتبارنا أن البيانات تدفع دائما بطريقة دائرية إلى المكدس. وهو ما يعني أنه بعد دفع المكدس ثماني مرات، فإن الدفعة التاسعة تسبب الكتابة على overwrites القيمة التى كانت مخزنة بأول دفعة , وأن الدفعة العاشرة تكتب على الدفعة الثانية وهلم جرا , ومن ثم لا يمكن استرجاع البيانات المكتوب عليها . بالإضافة إلى ذلك، فإن المبرمج لا يمكنه الوصول إلى هذه السجلات سواء للكتابة أو القراءة ولا توجد خانة حالة لبيان حالات طفحان أو خلو المكدس .لهذا السبب من الضروري أن نوليه اهتماما خاصا خلال كتابة البرنامج.

نظام المقاطعة
أول شيء يقوم الميكروكونترولر بفعلة عند وصول طلب مقاطعة هو تنفيذ التعليمة الحالية بعد ذلك يوقف تنفيذ البرنامج العادي. ونتيجة لذلك يتم تلقائيا دفع pushed العنوان الحالى لذاكرة البرنامج إلى المكدسstack
ويتم كتابة عنوان افتراضي (المحددة مسبقا من قبل الشركة المصنعة ) فى عداد البرنامج program counter . هذا العنوان هو عنوان الموقع الذى يمضى (يستمر) منه تنفيذ البرنامج يسمى متجه المقاطعةinterrupt vector . للميكروكونترولر PIC16F887 هذا العنوان هو0004h.
كما هو مبين في الشكل أدناهيتم تمرير (تخطى) الموقع الذى يحتوي على متجه المقاطعة أثناء تنفيذ البرنامج العادي.






الجزء من البرنامج المطلوب تنفيذه عند وصول طلب المقاطعة يسمى "روتين خدمة المقاطعة" ISR. تقع أول تعليمة له فى متجه المقاطعة . كم من الوقت يستغرق تنفيذ هذا الروتين وما سوف يكون عليه الحال يعتمد على مهارات المبرمج وكذلك على مصدر المقاطعة نفسها . بعض الميكروكنترولر بها أكثر من متجه للمقاطعة (كل طلب مقاطعة لها متجهه خاص به )، ولكن في هذه الحالة يوجد متجه مقاطعة واحد فقط . وبالتالي فإن الجزء الأول من روتين المقاطعة تتمثل في اكتشاف مصدر المقاطعة.
وأخيرا عند التعرف على مصدر المقاطعة وتنفيذ روتين المقاطعة يصل الميكروكونترولر إلى التعليمة RETFIE يقوم بإستعادة pop العنوان من المكدس ويمضى فى تنفيذ البرنامج من النقطة التي توقف عندها.
يتعرف المترجم mikroC على روتين المقاطعة المراد تنفيذه كدالة بالصيغة void interrupt() .
جسم هذه الدالة أى روتين المقاطعة يجب أن يكتب بمعرفة المستخدم .





باختصار : طريقة (كيفية) استخدام سجلات الوظائف الخاصة SFRs
لقد قمت بشراء الميكروكونترولر لديك فكرة جيدة عن كيفية استخدامه... هناك قائمة طويلة من سجلات الوظائف الخاصة SFRs و خاناتها . كل واحد منها يتحكم فى بعض العمليات . والجميع يشبه جدول تحكم كبير مع الكثير من التعليمات والمفاتيح . الآن أنت قلق حول ما إذا كنت سوف تتمكن من تعلم كيفية استخدام كل منهم؟
من المحتمل أن لا تتمكن ولكن لا تقلق , فهذا الميكروكنترولر القوى يشبه محلات السوبر ماركت : فهى توفر أشياء كثيرة بأسعار منخفضة ، والأمر متروك لك لاختيار ما تحتاج إليه. لذلك، حدد المجال الذى تهتم به وأدرس فقط ما تحتاج إلى معرفته. وعندما تفهم تماما عمل الأجهزة hardwareإدرس سجلات الوظائف الخاصة SFRs التي تتحكم فيها ( عادة ما يكون عددها قليل ) .



سجلات الوظائف الخاصة الأساسية CORE SFRS



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