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

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 13-05-2013, 11:45 PM المشاركة 9   
افتراضي



السجل REGISTER :
باختصار , السجل أو خلية الذاكرة هى دائرة إلكترونية والتى يمكن أن تتذكر (تحفظ) حالة بايت واحد .









سجلات الوظائف الخاصة SFR REGISTERS :
بالإضافة إلى السجلات التى ليس لها أى وظيفة خاصة ومجددة مسبقا , فإن كل ميكروكونترولر لديه أيضا عدد من سجلات الوظائف الخاصة SFR , والتى تتحدد وظيفتها مسبقا من قبل الشركة المصنعة . بتات هذه السجلات متصلة , بشكل ثابت , إلى الدوائر المتكاملة ضمن الميكروكونترولر مثل المؤقتات , والمحول من تناظرى لرقمى , والمذبذب ..ألخ . وهذا يعنى أنها تعمل مباشرة تحت أمر هذه الدوائر , أى الميكروكونترولر . تخيل ثمانية مفاتيح تتحكم فى تشغيل دائرة صغيرة داخل الميكروكونترولر , سجلات الوظائف الخاصة تفعل ذلك بالضبط .






بعبارة أخرى , يتم تغيير حالة بتات السجل من داخل البرنامج , السجلات تقوم بتشغيل دوائر متكاملة صغيرة داخل الميكروكونترولر , هذه الدوائر وخلال أطراف الميكروكونترولر تتصل بالأجهزة الطرفية التى تستخدم حسب رغبتك .
منافذ الدخل / الخرج INPUT / OUTPUT PORTS :
لكى يكون الميكروكونترولر مفيدا , فإنه يجب أن يكون متصلا بإلكترونيات إضافية , أى الأجهزة الطرفية . كل ميكروكونترولر لديه سجل أو أكثر متصل بأطراف الدخل / الخرج I / O للميكروكونترولر . هذه التوصيلات تصنع منافذ الدخل / الخرج . لماذا الدخل / الخرج ؟ لأنه يمكنك تغيير وظيفة الطرف كما ترغب . على سبيل المثال , افترض أنك تريد أن تجعل الجهاز يقوم بتوصيل وفصل ثلاثة ليدات إشارة وفى نفس الوقت مراقبى الحالة المنطقية لخمس حساسات أو أزرار ضاغطة . بعض المنافذ يحتاج للتهيئة بحيث يكون له ثلاثة مخارج ( تتصل بالليدات) وخمس مداخل ( تتصل بالحساسات) . يمكن القيام بذلك بسهولة من داخل البرنامج , وهو ما يعنى أن وظيفة الطرف يمكن تغييرها أثناء العمل .



واحدة من السمات الهامة لأطراف الدخل / الخرج هى الحد الأقصى للتيار الذى يمكنها التعامل معه . بالنسبة لمعظم الميكروكونترولر , التيار المورد من طرف واحد يكفى لتفعيل ليد أو جهاز آخر ذات استهلاك منخفض (10-20 mA) .
سمة هامة أخرى للطرف , هى مقاومة السحب لأعلى pull-up والتى قد يزود بها . مقاومة السحب لأعلى توصل الطرف الملائم بالجهد الموجب لمصدر القدرة . ويمكن أيضا أن تستخدم عند تهيئة الطرف كمدخل متصل بمفتاح أو زر ضاغط .
كل منفذ دخل / خرج عادة يكون تحت سيطرة (تحكم) واحد من سجلات الوظائف الخاصة , مما يعنى أن كل بت من هذا السجل تحدد حالة الطرف المقابل للميكروكونترولر . على سبيل المثال , عن طريق كتابة المنطق واحد (1) إلى بعض بتات السجل , يتم تهيئة طرف الميكروكونترولر المناسب تلقائيا كمدخل input . الجهد المغذى إلى هذا الطرف يتم رؤيته على منفذه كصفر (0) أو كواحد (1) . خلاف ذلك , عن طريق كتابة المنطق صفر (0) إلى سجل الوظائف الخاصة , يتم تهيئة طرف المنفذ المناسب كمخرج output . الجهد المقدم من مثل طرف الخرج هذا (0V or 5V) يعكس حالة بت السجل المناسب ( المنطق 0 أو المنطق 1 , على الترتيب ).

وحدة الذاكرة MEMORY UNIT

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 13-05-2013, 11:47 PM المشاركة 10   
افتراضي


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




يوجد عدة أنواع من الذاكرة داخل الميكروكونترولر :
ذاكرة القراءة فقط READ ONLY MEMORY (ROM) :
تستخدم ذاكرة القراءة فقط ROM لحفظ وبشكل دائم البرنامج المطلوب تنفيذه بواسكة الميكروكونترولر . حجم البرنامج المراد كتابته يعتمد على حجم هذه الذاكرة . يوجد عدة أنواع من ذاكرة ROM :
ذاكرة القراءة فقط المقنعة Masked ROM (MROM) :
الذاكرة MROM هى نوع خاص من الذاكرة ROM والتى يتم تحديد محتوياتها عن طريق الشركة المصنعة. المصطلح "مقنعة" يأنى من عملية التصنيع , حيث يتم حجب أجزاء من الشريحة قبل عملية التصنيع الضوئى. فى حالة الإنتاج على نطاق واسع , يكون السعر منخفض جدا .
ذاكرة القراءة فقط القابلة للبرمجة لمرة واحدة OTP ROM :
ذاكرة OTP ROM تمكنك من تحميل البرنامج عليها , ولكن كما هو واضح من اسمها , لمرة واحدة فقط . إذا تم كشف إى خطأ بعد عملية تحميل البرنامج , فإن الشىء الوحيد الذى يمكنك القيام به هو تحميل البرنامج على شريحة أخرى .

ذاكرة القراءة فقط القابلة للمحو بالأشعة فوق البنفسجية UV EPROM :




كل من عملية التصنيع وخصائص الذاكرة UV EPROM متطابقة تماما مع الذاكرة OTP ROM . مع ذلك , فإن حزمة الميكروكونترولر مع هذه الذاكرة يكون لها "نافذة" للتعرف عليها على جانبها العلوى . إنها تتيح محو البيانات تحت ضوء الأشعة الفوق بنفسجية القوية . بعد بضع دقائق من هذا التعريض , يكون من الممكن تحميل برنامج جديد إليها .
ذاكرة الفلاش (الوميض) Flash Memory
ذاكرة الفلاش هى التى خلفت الذاكرة UV EPROM . وحيث أن هذه الذاكرة يمكن إعادة كتابتها عمليا عدد غير محدود من المرات , فإن المتحكمات الدقيقة مع ذاكرة الفلاش تكون مثالية للتعلم والتجريب والانتاج على نطاق صغير . نتيجة لانتشارها , يتم تصنيع معظم المتحكمات الدقيقة اليوم بتقنية الفلاش . لذلك , إذا كنت تنوى شراء ميكروكونترولر , فأنت تبحث بالتأكيد عن نوع الفلاش .
ذاكرة الوصول العشوائى RANDOM ACCESS MEMORY (RAM) :
بمجرد فصل مصدر القدرة فإن محتويات ذاكرة RAM يتم مسحها . لذلك يتم استخدامها لتخزين البيانات المؤقتة والنتائج الوسيطة التى يتم إنشاؤها واستخدامها أثناء تشغيل الميكروكونترولر . على سبيل المثال , إذا كان البرنامج ينفذ عملية جمع , فمن الضرورى أن يكون هناك سجل لحفظ المجموع . لهذا السبب , فإن واحد من سجلات ذاكرة RAM يسمى ‘sum’ ويستخدم لتخزين نتيجة الجمع .
ذاكرة القراءة فقط القابلة للمسح كهربائيا EEPROM :
محتويات الذاكرة EEPROM قد تتغير أثناء التشغيل ( مثل ذاكرة RAM ) , ولكن تبقى محفوظة حتى بعد فقدان القدرة ( مثل ذاكرة ROM) . وفقا لذلك , فإن ذاكرة EEPROM غالبا ما تستخدم لتخزين القيم , التى يتم إنشاؤها أثناء التشغيل , والتى يجب أن يتم حفظها بشكل دائم . على سبيل المثال , إذا كنت تقوم بتصميم قفل إلكترونى أو دائرة إنذار , سيكون أمرا رائعا أن تمكن المستخدم من إنشاء وإدخال كلمة المرور , ولكن هذا سوف يكون غير مجدى إذا فقدت فى كل مرة تفقد فيها القدرة . الحل المثالى هو ميكروكونترولر مع ذاكرة EEPROM مدمجة .
المقاطعة INTERRUPT :

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 14-05-2013, 04:20 PM المشاركة 11   
افتراضي


المقاطعة INTERRUPT :
معظم البرامج تستخدم المقاطعات فى تنفيذ العادى .الغرض من الميكروكونترولر بشكل رئيسى هو الاستجابة للتغيرات فى محيطه . وبعبارة أخرى , عندما يقع عمل ما , فإن الميكرة كونترولر يفغل شىء . على سبيل المثال , عند الضغط على زر ضاغط بجهاز التحكم عن بعد فى التليفزيون , فإن الميكروكونترولر سوف يسجل ذلك ويستجيب عن طريق تغيير القناة , أو عن طريق تغيير الصوت لأعلى أو لأسفل ...ألخ . وعلى هذا النحو , فإن الميكروكونترولر يقضى معظم وقته وبشكل لا ينتهى فى فحص بضعة أزرار لساعات أو أيام , وهذا غير عملى على الإطلاق . وهذا هو السبب فى أن الميكروكونترولر تعلم أثناء تطوره . بدلا من الفحص الثابت لكل طرف أو بت , فإن الميكروكونترولر يفوض "قضية الانتظار" إلى "متخصص" والذى سوف يستجيب فقط عندما يحدث شىء يستحق الانتباه . ويطلق على الإشارة التى تبلغ وحدة المعالجة عن مثل هذا الفعل "المقاطعة".
الناقل BUS :
يتكون الناقل من من 8 أو 16 أو أكثر من الأسلاك. يوجد نوعان من الناقلات : ناقل العنوان address busوناقل البيانات data bus . يتكون ناقل العنوان من العديد من الخطوط اللازمة لعنونة الذاكرة . فهو يستخدم ليمكنك من نقل أحد العناوين من وحدة المعالجة المركزية إلى الذاكرة . ناقل البيانات سعته (عرضه) كالبيانات , فى هذه الحالة سعته 8 بتات أو أسلاك . ويتم استخدامه لتوصيل (ربط) جميع الدوائر داخل الميكروكونترولر.

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

كما يوحى اسمها , وحدة المعالجة المركزية CPU هى الوحدة التى تراقب وتسيطر (تتحكم) على كل العمليات داخل الميكروكونترولر . وتتكون من عدة وحدات فرعية , والتى من أهمها ما يلى :
  • مفسر (مترجم) التعليمة Instruction Decoder : يترجم تعليمة البرنامج ويقوم بتشغيل الدوائر الأخرى على أساس هذه الترجمة .
  • وحدة الحساب والمنطق Arithmetical Logical Unit (ALU) : تقوم بإجراء جميع العمليات الحسابية والمنطقية على البيانات . مجموعة التعليمات والتى تختلف من عائلة ميكروكونترولر لأخرى تظهر قدرات هذه الوحدة .
  • المركم Accumulator : وهو سجل وظائف خاصة SFR وثيق الارتباط بوحدة الحساب والمنطق ALU . فهو نوع من مكتب العمل الذى يستخدم لتخزين جميع البيانات التى تقوم عليها بعض العمليات التى يتعين القيام بها ( الجمع , الإزاحة ...ألخ . كما أنه أيضا يخزن النتائج لاستخدامها فى مزيد من العمليات .
أحد سجلات الوظائف الخاصة يسمى "سجل الحالة" Status Register (PSW) , وهو يرتبط إرتباط وثيق بالمركم . هذا السجل يظهر , فى أى وقت من الأوقات , حالة ‘status’ العدد المخزن فى المركم ( العدد يكون أكبر من أو أصغر من الصفر و...ألخ ) . المركم يسمى أيضا "سجل العمل"

working register ويشار إلية بالسجل "W" أو مجرد "W" .






الاتصال التسلسلى SERIAL COMMUNICATION


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 14-05-2013, 04:21 PM المشاركة 12   
افتراضي


الاتصال التسلسلى SERIAL COMMUNICATION







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

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

معدل البيانات DATA RATE :
يستخدم المصطلح "معدل البيانات" للدلالة على عدد البتات المنقولة فى الثانية الواحدة [bps] . لاحظ أنه يشير إلى البتات bitsوليس البياتات bytes . وفقا للبروتوكول , يتم نقل كل بايت جنبا إلى جنب مع عندة بتات تحكم control bits . وهو ما يعنى أن بايت واحد فى سيل (دفق) البيانات التسلسلية قد يتكون من 11 بت . على سبيل المثال , إذا كان معدل البيانات 300 bps عندئذ فإنه يمكن نقل 37 بايت كحد أقصى و 27 باليت كحد أدنى كل ثانية .
وحدات الاتصال التسلسلى الأكثر شيوعا هى :

الدائرة المتكاملة البينية I2C (INTER INTEGRATED CIRCUIT)






الدائرة المتكاملة البينية هى وحدة (موديول) لتبادل البيانات بين الميكروكونترولر والدوائر المتكاملة المتخصصة من الجيل الجديد . يتم استخدامها عندما تكون المسافة بين هذه الأجهزة قصير ( المستقبل والمرسل عادة ما تكون على نفس اللوحة المطبوعة ) . يتم تأسيس التوصيل عبر وصلتين . يتم استخدام واحدة لنقل البيانات , فى حين تستخدم الأخرى للتزامن ( إشارة الساعة clock) . كما ترى فى الشكل أعلاه , جهاز واحد يكون دائما هو الجهاز الرئيسى master . وهو يقوم بإجراء عنونة أحد الأجهزة التابعة slave قبل بدء الاتصال والتحكم فى عملية نقل البيانات . بهذه الطريقة يمكن لميكروكونترولر واحد الاتصال مع 112 جهاز مختلف باستخدم I2C . عادة ما يكون معدل البيانات 100 Kb/sec ( النمط القياسى) أو 10 Kb/sec ( نمط معدل البيانات البطىء) . وقد ظهرت فى الأونة الأخيرة أجهزة مع معدل بيانات 3.4 Mb/sec . المسافة بين الأجهزة التى تتصل عبر الناقل I2C محدودة بعدة أمتار .

ناقل واجة (ربط) الأجهزة الطرفية التسلسلية SPI :






ناقل SPI هو وحدة (موديول) للاتصال التسلسلى والذى يستخدم ثلاثة أو أربعة وصلات . يتم استخدام أحد الوصلات لاستقبال البيانات , وواحد لإرسال البيانات , وواحد للتزامن وواحد كبديل من أجل اختيار الجهاز المراد الاتصال معه . هذا الاتصال من النوع ثنائى الاتجاه "المزدوج الكامل" full duplex , مما يعنى أن البيانات يمكن إرسالها واستقبالها فى وقت واحد .
الحد الأقصى لمعدل البيانات أعلى منه فى حالة وحدة الاتصال I2C .

الاستقبال / الإرسال العام التسلسلى الغير متزامن USART :
كما يوحى الاسم , فإن الاتصال USART غير متزامن , مما يعنى أنه لا يتم استخدام خط خاص لنقل إشارة الساعة clock . فى بعض التطبيقات , مثل التحكم عن بعد بالاتصال بموجات الراديو أو الأشعة تحت الحمراء , تكون هذه الميزة أمر بالغ الأهمية . حيث يتم استخدام خط اتصال واحد , فكل من المستقبل والمرسل يعمل على المعدل المحدد مسبقا من أجل الحفاظ على التزامن اللازم . هذه الطريقة تكون بسيطة للغاية لنقل البيانات لإنها مبنية على تحويل البيانات ذات 8 بت من الشكل المتوازى إلى الشكل التسلسلى . معدل نقل البيانات ليس مرتفع , ويصل إلى 1 Mbit/sec .
المذبذب OSCILLATOR :


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


المذبذب OSCILLATOR :




النبضات التى يتم إنشاؤها بواسطة المذبذب تمكن العمل المتناسق والمتزامن لجميع الدوائر داخل الميكروكونترولر . عادة ما يتم تهيئة المذبذب وذلك لاستخدام كريستال كوارتز أو دائرة رنين سيراميك لتحقيق استقرار التردد , ولكنه يمكن أن يعمل بدائرة قائمة بذاتها ( مثل مذبذب RC) . من المهم أن نقول إن التعليمات لا يتم تنفيذها بالمعدل الذى يفرضه المذبذب نفسه , ولكن أبطأ بعدة مرات . يحدث ذلك لأنه يتم تنفيذ كل تعليمة فى عدة خطوات . فى بعض المتحكمات الدقيقة , يكون مطلوب نفس عدد الدورات لتنفيذ جميع التعليمات , بينما فى حالات أخرى , يكون عدد الدورات مختلف للتعليمات المختلفة . وفقا لذلك , إذا كان الميكروكونترولر يستخدم كريستال كوارتز بتردد 20 Mhz , فإن زمن تنفيذ التعليمة لا يكون 50Ns , لكن 200 أو 400 أو 800 nS , تبعا لنوع الميكروكونترولر .

دائرة الإمداد بالقدرة POWER SUPPLY CIRCUIT :


يوجد نوعان من الأشياء تستحق الاهتما عند الحديث عن دائرة إمداد الميكروكونترولر بالقدرة :
  • حالة الانحسارBrown out ويحتمل أن تكون خطرة , والتى تحدث فى اللحظة التى يتم فيها فصل الميكروكونترولر أو عندما ينخفض جهد الإمداد بالقدرة إلى أدنى قيمة له بسبب الضوضاء . ونظرا لأن الميكروكونترولر يتكون من عدة دوائر بمستويات جهد تشغيل مختلفة , فإن مثل هذه الحالة يمكن أن تتسبب فى خروجه عن السيطرة فى الأداء . لمنع ذلك , فإن الميكروكونترولر عادة يكون له دائرة إعادة reset ضمن بناءه والتى تتسبب فى حدوث حالة إعادة بمجرد أن يذهب الميكروكونترولر فى الحالة الطارئة brown out .
  • طرف الإعادة عادة يشار إليه باسم MCLR (Master Clear Reset). ويتم استخدامه فى عمل إعادة خارجية للميكروكونترولر عن طريق تطبيق المنطق صفر (0) أو المنطق واحد (1) إليه , والذى يعتمد على نوع الميكروكونترولر .
المؤقتات والعدادات TIMERS/COUNTERS


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 16-05-2013, 02:34 AM المشاركة 14   
افتراضي


المؤقتات والعدادات TIMERS/COUNTERS





يستخدم مذبذب الميكروكونترولر كريستال الكوارتز فى عمله. على الرغم من أنه ليس أفضل حل، لا يزال هناك العديد من الأسباب لاستخدامه. يتم تحديد تردد مثل هذه المذبذب بدقة ويكون مستقر للغاية ، بحيث أن النبضات التى يولدها دائما يكون لها نفس العرض، مما يجعلها مثالية لقياس الوقت.تستخدم هذه المذبذبات أيضا فى ساعات الكوارتز. إذا كان من الضرورى قياس الوقت بين حدثين، فإنه يكفى عد النبضات المتولدة بواسطة هذا المذبذب. هذا هو بالضبط ما يقوم به المؤقت .
معظم البرامج تستخدم "ساعة إيقاف" إليكترونية مصغرة. قلبها مصنوع من سجلات وظائف خاصة بسعة 8 بت أو 16 بت , حيث يتم تزايد محتوياتها تلقائيا عن طريق كل نبضة مقبلة. بمجرد أن يتم تحميل السجل بالكامل، فقد يتم توليد مقاطعة.
إذا كان المؤقت يستخدم مذبذب الكوارتز الداخلى لتشغيله، عندئذ يمكن أن يستخدم لقياس الوقت بين حدثين (إذا كانت القيمة المخزنة فى سجل المؤقت هى T1 في لحظة بدأ القياس، وT2 فى لحظة الانتهاء , عندئذ يكون الوقت المنقضى يساوى نتيجة الطرح T1-T2). إذا استخدامت السجلات النبضات المقدمة من مصدر خارجى عندئذ يتم تشغيل هذه المؤقت كعداد.


كيف يعمل المؤقت ؟




فيما يلى الطريقة التي يعمل بها المؤقت عمليا : النبضات المتولدة بواسطة مذبذب الكوارتز مباشرة، أو عن طريق المقياس المسبق prescaler ، يتم تقديمها إلى الدائرة التى تعمل على تزايد العدد المخزن فى سجل المؤقت . عن طريق دمج بلورة كوارتز بتردد 4MHz ينطبق ما يلى: إذا كانت تعليمة واحدة (دورة آلة واحدة) تستمر لمدة أربع فترات زمنية لمذبذب الكوارتز عندئذ فعن طريق دمج بلورة كوارتز بتردد 4MHzفإن هذا العدد سيتم تزايده مليون مرة في الثانية الواحدة (كل ميكروثانية).
من السهل قياس فترات زمنية قصيرة، تصل إلى 256 ميكروثانية، بالطريقة المذكورة أعلاه لأنه أكبر عدد يمكن أن يخزنه سجل واحد . هذا التقييد يمكن التغلب علية بسهولة باستخدام مذبذب أبطأ، أوسجلات ببتات أكثر , أوالمقياس المسبق , أو المقاطعات. الحلان الأولان لهما بعض السلبيات بحيث يكون من المستحسن بكثير استخدام المقياس المسبق prescalers أو المقاطعات interrupts.
استخدام المقياس المسبق فى عمل المؤقت :




المقياس المسبقprescaler هو جهاز إلكترونى يستخدم لتخفيض التردد بنسبة تقسيم معرفة مسبقا. من أجل توليد نبضة واحدة على خرجه ، فمن الضرورى جلب 1، 2، 4 , أو أكثر من النبضات على مدخله . معظم الميكروكنترولر يدمج به مقياس مسبق واحد أو أكثر ويمكن تغيير معدل التقسيم من داخل البرنامج. يتم استخدام المقياس المسبق عندما يكون من الضرورى قياس فترات أطول من الوقت.
استخدام المقاطعة فى عمل المؤقت :






إذا كان سجل المؤقت يتكون من 8 بت، فإن أكبر عدد يمكن تخزينه هو 255. لللسجلات 16 بت يكون العدد هو 65.535. إذا تم تجاوز هذا العدد، فإنه سوف يتم إعادة resetالمؤقت تلقائيا وسيبدأ العد من الصفر مرة أخرى. تسمى هذه الحالة "تجاوز" overflow. إذا مكنت من داخل البرنامج، يمكن للتجاوز أن يسبب المقاطعةinterrupt، والتي تعطى إمكانيات جديدة تماما. على سبيل المثال، يمكن تغيير حالة السجلات المستخدمة في عد الثوانى أوالدقائق أو الأيام فى روتين المقاطعة. يتم تنفيذ العملية برمتها (باستثناء روتين المقاطعة) تلقائيا من وراء الكواليس، والتى تمكن الدوائر الرئيسية للميكروكونترولر لتعمل بشكل طبيعى.
يوضح الشكل أعلاه استخدام المقاطعة في عمل المؤقت. التأخير لمدة معينة ، تقريبا لا تأثير له على تنفيذ البرنامج الرئيسي، ويمكن الحصول عليها بسهولة عن طريق تعيين المقياس المسبق للمؤقت .

العدادات COUNTERS :
إذا تم تغذية المؤقت بنبضات من طرف دخل للميكروكونترولر ، عندئذ يتم تحويله إلى العداد. من الواضح أن نفس الدوائر الإلكترونية قادرة على العمل في وضعين مختلفين. الفرق الوحيد هو أنه في هذه الحالة تأتى النبضات المراد عدها عبر طرف دخل الميكروكونترولر وتكون مدتها (العرض) عادة غير معروفة. هذا هو السبب في أنه لا يمكن أن تستخدم لقياس الوقت، ولكن يمكن استخدامها لأغراض أخرى مثل عد المنتجات على خط التجميع، وعدد لفات المحور وعدد الركاب الخ (اعتمادا على جهاز الاستشعار المستخدم ).
مؤقت الحراسة WATCHDOG TIMER :




مؤقت الحراسة هو مؤقت متصل بمذبذب RC قائم بذاته داخل الميكروكونترولر .
إذا تم تمكين مؤقت الحراسة , ففى كل مرة يعد حتى أقصى قيمة، يحدث إعادة للميكروكونترولر ويبدأ تنفيذ البرنامج من التعليمة الأولى. والنقطة هى منع هذا من الحدوث باستخدام أمر معين.
على أي حال، تستند الفكرة كلها على حقيقة أن كل برنامج يتم تنفيذه في عدة حلقات أطول أو أقصر. إذا تم تعيين تعليمات إعادة مؤقت الحراسة فى المواقع المناسبة من البرنامج , بالإضافة إلى الأوامر التى يتم تنفيذها بشكل منتظم، عندئذ فإن تشغيل مؤقت الحراسة لن يؤثر على تنفيذ البرنامج. إذا لأى سبب من الأسباب، وعادة ما يرجع إلى ضوضاء التصنيع، يصبح عداد البرنامج عالقا عند بعض مواقع الذاكرة والتى لا عودة منها , عندئذ لن يتم مسح مؤقت الحراسة , وبالتالي فإن قيمة السجل والتى يتم تزايدها باستمرار سوف تصل إلى الحد الأقصى ويحدث إعادة وسيتم تنفيذ البرنامج من البداية.
المحول من تناظرى لرقمى A/D CONVERTER


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 16-05-2013, 10:35 PM المشاركة 15   
افتراضي


المحول من تناظرى لرقمى A/D CONVERTER
الإشارات الخارجية عادة ما تكون مختلفة جذريا عن تلك التى يتعرف عليها الميكروكونترولر ( 0V و 5V فقط) ، وبالتالي لا بد من تحويلها إلى قيم يمكن أن يتعرف عليها . المحول من تناظرى لرقمى هو دائرة إلكترونية والتى تحول الإشارات المستمرة إلى أعداد رقمية منفصلة. وبعبارة أخرى، هذه الدائرة تحول القيمة التناظرية (التماثلية) analogue value إلى عدد ثنائى binary number وإحالته إلى وحدة المعالجة المركزية لمزيد من المعالجة ,ومن ثم فهى تستخدم طرف كمدخل للجهد المراد قياسه ( القيمة التناظرية) .









نتيجة القياس هى عدد (قيمة عددية أو رقمية) والتى يتم استعماله ومعالجته لاحقا فى البرنامج .



الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 17-05-2013, 02:58 AM المشاركة 16   
افتراضي


الفصل الثانى


برمجة الميكروكونترولر Programming Microcontrollers

مقدمة :
بالتأكيد أنت تعرف أنه لا يكفى ببساطة توصيل الميكروكونترولر إلى المكونات الأخرى وتوصيل مصدر القدرة لجعله يعمل ، أليس كذلك؟ هناك المزيد الذي يتعين عمله. يحتاج الميكروكنترولر إلى البرمجة ليكون قادر على أداء أي شيء مفيد. يتناول هذا الفصل البرمجة بلغة Basic ونحن بصدد وصف فقط الأشياء الأساسية التى يجب أن تعرفها لكتابة البرنامج. قد تبدو معقدة، وخاصة إذا لم يكن لديك أي خبرة في هذا المجال. لا تستسلم، وخذ نفسا عميقا، وابدء ...
2-1 لغات البرمجة PROGRAMMING LANGUAGES :
ينفذ الميكروكونترولر البرنامج الذى تم تحميله فى ذاكرتة الوميضية (الفلاش) flash. ولذلك , يسمى الكود (الشفرة) القابل للتنفيذ والذى يتكون من تسلسل غريب على ما يبدو من الآحاد والأصفار . اعتمادا على بنية الميكروكونترولر , يتم تنظيم هذا الثنائى فى كلمات بعرض 12 بت , أو 14 بت , أو 16 بت . وتعتبر كل كلمة من قبل وحدة المعالجة المركزية بمثابة تعليمة instruction ليتم تنفيذها خلال تشغيل الميكروكونترولر . كما أنه من الأسهل بكثير بالنسبة لنا التعامل مع نظام الأعداد السداسية عشر ،فعادة يتم تمثيل الكود كتسلسل من الأعداد السداسية عشر ويسمى Hex code ، وهو الذى تم استخدامه منذ فترة طويلة للكتابة من قبل المبرمج. جميع التعليمات التى يمكن أن يتعرف عليها الميكروكونترولر وينفذها تعرف بمجموعة التعليماتInstruction set. الميكروكونترولر PIC مع كلمات البرنامج بعرض 14 بت , تشمل مجموعة التعليمات 35 تعليمة مختلفة.





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




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




مثل لغة الأسمبلى , يوجد برنامج متخصص يثبت على الكومبيوتر يكون المسؤول عن ترجمة البرنامج إلى كود الآلة . على عكس الأسمبلر ، فإن مترجمات لفات البرمجة رفيعة المستوى تنشىء الكود القابل للتنفيذ والذى لا يكون دائما الأقصر.



الشكل أعلاه يوضح ما يجرى أثناء عملية ترجمة برنامج مكتوب بلغة Basic إلى كود سداسى عشر hex .
فيما يلى مثال لبرنامج بسيط مكتوب بلغة Basic :






مزايا لغات البرمجة رفيعة المستوى :
إذا كان لديك أى خبرة في كتابة برامج للميكروكنترولر PIC بلغة الأسمبلى ، عندئذ ,ربما قد تكون معتادا على الجانب الآخر , عدم وجود تعليمات . على سبيل المثال، لا يوجد تعليمة مناسبة لضرب رقمين. بالطبع، هناك طريقة لحل هذه المشكلة بسبب الرياضيات والتي تمكنك من إجراء العمليات المعقدة عن طريق كسرها إلى عدد من العمليات البسيطة . وفقا لذلك، فإن الضرب يمكن بسهولة استبدالة بالجمع المعاقب :
(a x b = a + a + a + ... + a) . وهنا نحن ، فقط فى بداية قصة طويلة جدا ... ليس هناك من سبب يدعو للقلق عندما تستخدم واحدة من لغات البرمجة رفيعة المستوى، مثل Basic، لأن المترجم سوف يجد تلقائيا حل لهذه المشاكل وما شابهها. ببساطة اكتب a*b

2-2 أسس البرمجة بلغة Basic :


التعديل الأخير تم بواسطة : F.Abdelaziz بتاريخ 17-05-2013 الساعة 03:05 AM


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