مشاهدة النسخة كاملة : دورة فى الميكرو كنتروللر بالتفصيل


zoro_ando
16-11-2007, 06:04 PM
:salama:

:salam:

عائلة MCS-51
احدى عائلات الميكروكونتروللر و التى تم تصميمها و انتاجها بواسطة شركة انتل ثم ظهرت بعض الشركات الاخرى لتنتج نفس العائلة مثل :-
Advanced Micro Devices (AMD)
Siemens
Fujitsu
Philips
و كانوا حاصلين على الترخيص بانتاج هذا الجيل .
تم طرح المنتج المعروف بـ ( 8051 ) كتطوير لهذا الجيل تجارياً و تتلخص خصائصه فى الاتى :
1- ذاكرة تخزين داخلية ثابتة من النوع ( ROM ) بسعة 4 كيلوبايت مع امكانية الاتصال بذاكرة خارجية من نفس النوع بسعة 64 كيلوبايت كحد اقصى .
2- ذاكرة تداول داخلية عشوائى من النوع ( RAM ) بسعة 128 بايت
مع امكانية التوصل بذاكرة خارجية من نفس النوع بسعة 64 كيلو بايت كحد اقصى
3- عدد ( 4 ) منافذ توصيل كل منها بسعة 8 بت للادخال و الاخراج .
4- عدد ( 2 ) مؤقت بقدرة 16 بت .
5- امكانية الاتصال التسلسلى .
6- معالج منطقى ALU
7- عدد 210 موقع فى الذاكرة يمكن استدعاؤها على مستوى البت .
8- زمن تنفيذ عملية الضرب او القسمة هو 4 مللى ثانية .
ثم ظهر بعد ذلك عدة اجيال كتطويرات لهذا الجيل تتلخص فى التالى :
.................................. ................ .................................. .............
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhh
8051 -------> 4K ROM , 128B RAM , 2 timer/counter
8031 -------> 0 ROM , 128B RAM , 2 timer/counter
8751 -------> 4K EPROM , 128B RAM , 2 timer/counter
8052 -------> 8K ROM , 256B RAM , 3 timer/counter
8032 -------> 0 ROM , 256B RAM , 3 timer/counter
8752 -------> 8K EPROM , 256B RAM , 3 timer/counter
.hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhh
.................................. ................ .................................. ..............
التالى هو الرسم التوضيحى (( المبسط )) لمكونات الميكروكونتروللر 8051



http://www.enghost.com/uploaded/6045_1171776361.jpg:4: (http://www.enghost.com/uploaded/6045_1171776361.jpg:4:)

, و ان شاء الله الى لقاء قادم مع باقى توصيف الميكروكونتروللر 8051

AsTrOMiDO
16-11-2007, 07:18 PM
منور ياعم احمد انت ومواضيعك الجامده وتشكر ياباشا:4:

zoro_ando
17-11-2007, 06:15 PM
التالى بعد نتعرف على اشارات التحكم

---------------------------------------
PSEN

------------
Program Store Enable
–يستخدم لاخراج اشارة على الطرف رقم 29 و التى يتم توصيلها على الذاكرة الخارجية (ROM). ((( اذا تم استخدام ذاكرة خارجية ))) ، و هى تعبر عن اشارة التحكم فى الشريحة لجعلها فعالة Enabled او غير فعالة Disabled حيث يتم فعلياً بتوصيلها على الطرف الخاص بالتفعيل ( OE == Output Enable ) للذاكرة الخارجية للسماح بقراء الكود المخزن عليها .
- هذه الاشارة تعتمد على التفعيل السلبى ( Active Low ) بمعنى اننا نخرج عليها 0 للسماح بعملية القراءة من الذاكرة الخارجية .
- الكود الثنائى المعبرعن البرنامج ( يسمى Opcode ) يتم قرائته من الذاكرة الخارجية EEPROM و يتم نقله عبر ناقل البيانات و يخزن على الميكروكونتروللر 8051 على مخازن التعليمات instruction register (IR) ليتم اعادة ترجمته decoding و تنفيذه .
ALE
-------------
Address Latch Enable
- اشارة خرج تظهر على الطرف رقم 30
-تستخدم فى فك التكويد الخاص بناقل البيانات و ناقل العناوين و يتم ذلك كالتالى :-
عندما يعمل المنفذ رقم 0 كناقل للبيانات تعبر الـ ALE عن الاشارة التى تخزن العنوان على مخزن خارجى خلال النصف الاول من دورة الذاكرة first-half of a memory cycle و بالتالى يكون خطوط المنفذ رقم 0 متاحة لادخال او اخراج البيانات .
خلال النصف الثانى من دورة الذاكرة second-half of the memory cycle يكون نقل البيانات قد تم .
- اشارة الـ ALE لها تردد يساوى 1/6 من تردد الميكروكونتروللر و يمكن استخدامها كنبضة عامة لتشغيل باقى الدوائر الرقمية المتصلة بالنظام .
ُِ
EA

----------

External Access
- اشارة دخل يتم ادخالها على الطرف رقم 31 للميكروكونتروللر 8051
- تأخذ أحد القيمتين ( 0 أو 1 )
القيمة ( 1 ) ، تستخدم إذا أردنا تنفيذ الأوامر المخزنة على الذاكرة الداخلية للميكروكونتروللر 8051 ، الذاكرة الداخلية محدودة ( 4/8 كيلو )
- القيمة ( 0 ) ، و تستخدم إذا أردنا أن ننفذ الأوامر المخزنة على الذاكرة الخارجية فقط ( هنا يجب ان تكون اشارات PSEN منخفضة === 0 )
RST
-----------
Reset
- اشارة دخل يتم ادخالها على الطرف رقم 9 للميكروكونتروللر 8051
- اذا تم ادخال القيمة ( 1 ) (( 5 فولت )) على هذا الطرف لمدة لا تقل عن زمن تنفيذ دورتين (machine cycles ) يتم تحميل المخازن بالقيم الاولى فى البرنامج (( يقوم الميكرو بانهاء التطبيقات الحالية و البدء من اول خطوة ))
- فى حالة التشغيل الطبيعية يجب ادخال ( 0 ) على هذا الطرف .
ترتيب الذاكرة
------------------
معظم المعالجات تنجز تداول البيانات و اوامر البرنامج من خلال المشاركة السريعة للذاكرة بينهما ، فكل من البيانات و الاوامر البرمجية تكون مقيمة فى الذاكرة العشوائية للميكروكونتروللر RAM بينما نجد دائماً ان اوامر التحكم فى البرنامج تكمن فى الذاكرة الدائمة ROM
الذاكرة الداخلية للميكروكونتروللر تحتوى على كل من ROM و RAM
و نجد ان الـ RAM تحتوى على عدد كبير من المخازن المستخدمة فى الاغراض العامة general-purpose storage و بعضها يستخدم كمخازن يمكن استدعاوها على مستوى البت bit addressable storage و البعض الاخر يستخدم كمصفوفة مخازن register banks و هناك مخازن لها وظائف خاصة special function registers. == SFR
الرسم التالى يوضح تقسيم الذاكرة RAM الداخلية
المخازن المستخدمة للاغراض العامة تنقسم كما هو بالشكل
[center]General-Purpose RAM
---------------------------------------------------------
نلاحظ انه لدينا عدد ( 210 ) موقع فى الذاكرة يتم استدعاؤهم على مستوى البت
210 (128+82) Bit-Addressable RAM
و الفكرة هنا هى امكانية الوصول و التعامل مع كل خانة Bit داخل مجموعة من البايت Bytes كل على حدا من خلال البرنامج ، مما اعطى ميزة قوية جداً للميكروكونتروللر .
و الرسم التالى يوضح اماكن هذه المجموعة داخل الذاكرة :-
توضيح لمنطقة الاغراض العامة و موقع الـ 128 موقع الذين يتم استدعاؤهم على مستوى البت
128 General-Purpose Bit-Addressable Locations
و الان يمكننا وضع قيمة 1 داخل البت رقم 3 داخل البايت ذات العنوان ( 25H ) بالامر التالى :-
SETB 2BH:a11:


و قبل أن أنسى اليكم كتاب سكوت ماكينزى عن الميكروكونتروللر 8051

http://www.4shared.com/account/file.jsp?id=10835771&sId=sLdhZaHjzcoBqkJF

elsayed abd elall
17-11-2007, 07:53 PM
شكرا ياحماده على الدائرة

AsTrOMiDO
17-11-2007, 07:53 PM
جميل جدا يا احمد
وادينا حملنا الكتاب
شكرا ياباش مهندس

admin
17-11-2007, 08:33 PM
جزالك الله خيرا

eng_control
02-12-2007, 03:45 PM
الف شكر والف تحيه على المواضيع الجامده ديه

elsayed abd elall
03-12-2007, 10:33 PM
:start-icon: شكرا جزيلا على هذا الموضوع ونرجوا المزيد ان شاء الله وجزاك الله كل خير :end-icon::127:

Eng Kasper
11-12-2007, 02:40 PM
الف شكر يا باش مهندس

elsayed abd elall
13-12-2007, 09:45 PM
يريت تكمل يابشمهندس الموضوع الجامد ده وجزاك الله كل خير على مشاركتك معنا

Eng Kasper
14-12-2007, 12:44 PM
جزاك الله خير الجزاء

elsayed abd elall
20-01-2008, 12:55 PM
نجد من توزيع ارجل الميكروكنترولر ان الرجل رقم 4 تستخدم فى عملreset وهذه الكلمة تعنى اعادة الميكرو الى وضع حالته المعروفة و ذلك عندما يكون الميكروكنترولر فى حالة غريبة او نتائجه غير دقيقة .


وكما ذكرنا سابقا ان الخط الموجود فوق كلمةMCLR تعنى عمل reset للميكرو فى حالة ان هذه الرجل تساوى صفر وليس 1













ويحدث ايضا للميكروreset فى الحالات الاتية
1- عند تشغيله وتوصيله بمصدر قدرة
2- عند استخدام الامر SLEEP
3- عندما يحدث زيادة لل Watchdog
4- عندما يقل مصدر القدرة عن قيمته المطلوبة




وفى التطبيقات الصناعية فان مصدر القدرة يكون غير منتظم ويتغير باستمرار ولذلك فانه لن يحدث الreset الا بعد 72 ثانية من استقرار مصدر القدرة حتى يتجب عمل ريست بدون داعى







وحدة المعالجة المركزية

فى هذا الجزء سنقوم بدراسة وحدة المعالجة المركزية بتفصيل اكثر حيث انها تمثل مخ الميكروكنترولر وهو الجزء المسئول عن احضار وتنفيذ تعليمات البرنامج وتركيبها موضح فى الشكل الاتى :



ويجب ملاحظة انه عندما يقوم المبرمج بكتابه برنامج معين فان التعليمات تكون مثلا فى الصورة الاتيةMOVLW 0x20 ولكن هذه التعليمات لا يفهمها الميكرو
ولذلك يجب ان تحول الى صفر و واحد وهذه الصيغة تسمىopcode وهى التى يفهمها الميكرو .

وعملية تحويل الحروف الى الصيغةopcode تتم بواسطة المترجم translator او يسمى احيانا assembler .
ويوجد ايضا بالميكروكنترولر وحدة فرعية تسمى وحدة الحساب والمنطقALU وهى المسئولة عن العمليات الحسابية والعمليات المنطقية وايضا تقوم بتنفيذ عمليات التحويل ونقل البيانات من والى المسجلات وفى الشكل الاتى نرى وحدة الحساب والمنطق حيث يدخل اليها التعليمة المراد تنفيذها من instruction register مع حالتها وحالة التعليمة السابقة من status register ثم تقوم باخراج النواتج الى working register .



وفى الشكل الاتى نرى التركيب العام لاجزاء للميكرو كنترولر




وهو من اهم المسجلات الموجودة فى الميكركنترولر

ولكن دعنا الان نلقى نظرة على المسجلات الموجودة فى الميكروكنترولر
وهى موضحة فى الشكل الاتى :




ونلاحظ من الشكل السابق وجود خانتينBank 0 وهى التى يقوم المستخدم بالتعامل معها و Bank1 هى نسخة طبق الاصل من Bank 0
وايضا تقسم ذاكرة البيانات الى جزء علوى وجزء سفلى
والجزء العلوى من00h الى 0bh وهو 11 مكان و يسمى




Special Function Registers
(SFR)
و هو للتحكم فى الميكرو والاجهزة الخارجية المتصلة به
والجزء السفلى يسمى




General Purpose Registers (GPR)
وهو الذى يعتبر كرامRAM




وكما نرى المسجلSTATUSموجود فى العنوان03h ويمكننا ايضا استخدامه من خلال العنوان 83h
وتركيبه كما بالشكل الاتى :






وكما واضح من الشكل انه يحتوى على8-bit والان سنبدا فى التعرف على كل bit ووظيفته على حده




bit 0


C (Carry) Transfer


وتكون قيمته تساوى 1 عندما يحدث زيادة فى ناتج اى عملية حسابية اى يزيد الناتج عن 255 وهى ال 8-bit المتاحة وفى هذه الحالة يضع الميكرو فى هذه البت 1 لانه لا يجد مكان لتخزين الناتج
فى فى حالة عدم تجاوز 255 فان قيمته هذا البت تظل 0




وهذا البت مهم جدا ويسمىCarry Flag




bit 1


DC (Digit Carry) DC Transfer


فهو خاص باول 4 بت حيث تكون قيمته 1 فاذا كان الناتج ازيد من 15 وهى تعنى ان الناتج قد استهلك اول 4 بت وسيقوم بتخزينه فى ال 4 بت الباقيين وفى حالة العكس تكون قيمته تساوى صفر



bit 2


Z (Zero bit) Indication of a zero result


وهذا البت يستخدم لتوضيح ان ناتج اى عملية حسابية او منطقيه يساوى صفر
وتكون قيمته تساوى 1 عندما يكون ناتج العمليات يساوى 0
وتكون قيمته تساوى 0 عندما يكون ناتج العمليات لا يساوى 0





bit 3


PD

(Power-down bit)



تكون قيمة هذا البت تساوى 1 عندما يبدا الميكرو فى العمل وذلك بعد عمليةreset وتكون قيمته صفر عندما يبدا فى اعادة التشغيل وتنفيذ امر SLEEP وتنفيذ هذا الامر يكون عند نقص القدرة المطلوبة .



bit 4


TO Time-out ; Watchdog overflow.



تكون قيمته تساوى واحد عندما ينتهى من اعادة التشغيل وتنفيذ أمرSLEEP وتصبح قيمته تساوى صفر عندما يرجع لنا Watchdog خطا معين




bit6:5


RP1:RP0

(Register Bank Select bits)



كما لاحظنا فى توزيع المسجلات انه يوجد ما يسمىBank0 وBank1 فهذان البتان يتيحان لنا عملية اختيار البنك صفر او البنك واحد
يجب ملاحظة ان عناوين الذاكرة تتنتهى بالعنوان FFh وهذا يساوى 255 ونجد ان الميكر PIC16f84 لديه 256 فلذلك سنحتاج بت واحد فقط وهو RP0 اما RP1 فلن يتم استخدامه ولكن تم وضعه للتطوير المستقبلى وتكون قيمته دائما صفر
اما RP0 تكون 1 عندما نستخدم Bank 1 وتكون 0 عندما نستخدم Bank 0





bit 7


IRP

(Register Bank Select bit)
__________________
ويتستخدم فى حالة العناوين الغير مباشرة حيث يقوم اختيار Bank المطلوب العمل بها .
__________________

صلي علي النبي
29-01-2008, 10:39 PM
جزاك الله عنا خيرا

بصراحة شرح جميل وحلو وبسيط

ونتمني المزيد من التقدم

صلي علي النبي
29-01-2008, 10:46 PM
ما كان لي الا ان اقول

ما شاء الله

وفي انتظار المزيد

صلي علي النبي
29-01-2008, 10:48 PM
ربنا يخليك لينا يا zoro_ando