الحلقة الثانية للميكروكونتروللر 8051

بأمر الله تعالى سنبدأ سوياً الحلقة الثانية للميكروكونتروللر 8051 و التى نربط فيها الميكروكونتروللر 8051 بالعالم الخارجى بعد ان تعرفنا على التركيب البنائى له

:sm219: :sm219: :sm219: :sm219: :sm219:

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


http://www.almohandes.org/vb/showthread-t_3889.html

حتى يتسنى اتمام العرض بشكل جيد و حتى لا يتشتت القراء


شكراً للجميع و الى لقــــــاء بأمر الله تعالى

بسم الله الرحمن الرحيم

نبدأ اليوم بأمر الله تعالى الحلقة الثانية فى دورة الميكروكونتروللر 8051 و التى تتضمن اتصال و ربط الميكروكونتروللر بالعالم الخارجى .
و كما هو معروف ان كل نظام على ظهر البسيطة سواء كان كائن حى او ماكينة فهو يحتاج الى مصدر تغذية و نظام غذائى متكامل يوفر ظروف العمل المثلى و فى حالتنا هنا نحتاج مصدر جهد 5 فولت و جميع القراء لهذا الموضوع على دراية تامة بصنع دائرة تغذية 5 فولت و اشهر دائرة معروفة يتم فيها استخدام المتكاملة 7805 .
لكن دعونا نتحدث عن هذه الدائرة عن قرب و ببعض التفصيل حتى تعم الفائدة و لعلنا نتعرف على شئ جديد يتعلق بهذه الدائرة.
الرسم التوضيحى التالى هو دائرة كاملة للموضوع و سوف نتطرق لها بشئ من التفصيل

بالنظر الى اقصى اليسار فى الدائرة السابقة نجد ان جهد التغذية ( المنبع ) هو 220 فولت ، تيار متردد 50 هيرتز ( المستخدم لدينا فى مصر )
و الصورة التالية توضح شكل الموجة الجيبية المعبرة عن هذا الجهد المتردد


و يتم خفضه بواسطة محول خافض للجهد من النوع ذو نقطة تفرع وسطى " Center Tap " ( 12 – 0 – 12 ) و الذى يخفض الجهد الى 12 فولت و يتم فى هذه الحالة تحويل الجهد الى مستمر باستخدم عدد 2 وصلة ثنائية " Diodes " من النوع " 1A " .
فيكون شكل الموجة الناتجة عن دائرة التوحيد هذه كما يلى

و كذلك يمكن استخدام الدائرة التالية لاداء نفس الغرض


فى الدائرة الثانية نجد اننا نستخدم مصدر التغذية الاساسى عبارة عن بطارية جافة 9 فولت و يمكن ايضا بطارية 12 فولت او اى بطارية تعطى جهد تغذية لا يقل عن 6 فولت و بحد اقصى حوالى 18 فولت .
يتم دخول الجهد المستمر الخارج من كلا الوصلتين الثنائيتين الى دائرة منعم تتمثل فى المكثف " 1000 micro Farad " و الذى يتحمل العمل تحت جهد يصل الى 35 فولت كحد اقصى .
الصورة التالية تعبر عن جهد التغذية الثابت DC و هذا الشكل هو المرغوب فى استخدامه عند جهد 5 فولت كجهد دخل للميكروكونتروللر لضمان الثبات اثناء العمل و هو نفس الشكل الناتج عن استخدام البطارية DC

و لكن مصدر التغذية المتردد المستخدم فى الدائرة الاولى لا يمكننا من الوصول الى هذا الشكل لذلك استخدمنا المكثف 1000 micro Farad ليعمل على تنعيم الموجة الناتجة عن دائرة التوحيد و يكون شكل الموجة فى هذه الحالة كما يلى [/size][/color]


هنا لدينا سؤال هام جداً ، و هو لماذا نستخدم مكثف بقيمة 1000 micro Farad و ليس اكثر او اقل ؟
دون الدخول فى تفاصيل الحسابات يمكن تلخيص الاجابة فى كلمات قليلة و هى ان قيمة المكثف تتناسب مع قيمة التيار المسحوب ، بمعنى اننا اذا اردنا ان نضع احمال تحتاج 100 ميللى امبير فاننا نستخدم مكثف بسعة 100 ميكرو فاراد .
سؤال اخر سيطرح نفسه هنا ، و هو لماذا إذاً لا نستخدم مكثف اكبر من ذلك بكثيييير تحسباً لاستخدام احمال مستقبلية اعلى من 1000 ميللى امبير ؟؟؟؟؟؟؟؟؟
الاجابة هنا اننا بذلك سنعتمد على مصدر تغذية يمكنه امدادنا بقدرة عالية و هذا مكلف ، اى ان التكلفة الاقتصادية ستزداد و هذا موجود فعلاً و لكن فى دوائر ذات احمال عالية .
نعود الى الدائرة و ننظر الى ما بعد المكثف 1000 ميكرو لنشاهد المتكاملة 7805 و التى هى بيت القصيد فى هذه الدائرة



اما الصورة التالية تعبر عن استخدام جزء من اللوحة المطبوعة كمبدد حرارى


بالعودة مرة اخرى الى الدائرة لنشاهد مكثف ذو قيمة 10 ميكرو فاراد و هنا استخدم اقصى جهد تحمل هو 35 فولت ايضاً و من الممكن ان نستخدم مكثف اخر بجهد 16 فولت اذا كان متاحاً .
ثن تلاه مكثف اخر ذو سعة اصغر 0.01 ميكروفاراد .
و السؤال الطبيعى هو لماذا تم استخدام هذان المكثفان فى دائرة الخرج ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
اذا رجعنا الى دراسة دوائر التيار المتردد سنجد ان هناك انواع من الموجات غير المرغوب فيها تظهر فى الدوائر الكهربية … لكن نحن هنا بصدد دائرة تيار مستمر فمن اين تظهر هذه الموجات ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
الحقيقة اننا اذا رجعنا الى الصورة المعبرة عن شكل الجهد الخارج من الدايود فسنجده لا يمثل جهد مستمر نقى كما هو الحال فى حالة استخدام البطارية و لكنه جهد مستمر يحتوى على بعض الذبذبات الضعيفة Ripples .

ثم ان هناك عوامل اخرى تجعلنا نتحدث عن حالة التيار المتردد و هى حالة التشغيل و الغلق Switching و التى يظهر فيها ما يعرف بــ Spikes .[/color][/color][/size]


من المعلوم ان تردد الـ Ripples يكون صغير جداً Low Frequency بينما تردد الـ Spikes يكون كبير نوعاً ما High Frequency و من ثم فإننا نحتاج الى مرشحات لكلا النوعين من الذبذبات الغير مرغوب فيها و يتم ذلك باستخدام المكثفان الاخيران و الذان يعملان كـ Low Pass Filter & High Pass Filter .
فى نهاية الدائرة و تحيداً فى اقصى اليمين نجد ثنائى ضوئى LED متصل على التوالى مع مقاومة 1 كيلو اوم يعمل كبيان لحالة التشغيل حيث يومض فى حال تشغيل الدائرة .
الان نكون قد صممنا دائرة التغذية الخاصة بالميكروكونتروللر و عرفنا كل شق فيها و فكرة التشغيل .
ننتقل الان الى الميكروكونتروللر و نشاهد الرسم التالى و الذى يوضح تقسيم اطرافه

[CENTER]


نلاحظ الطرفين 20 و 40 ، نرى ان الطرف رقم 20 مكتوب عليه Vss و هو ما يعنى توصيل الارضى او الطرف السالب لجهد التغذية .
اما الطرف 40 مكتوب عليه Vcc و هو ما يعنى توصيل الطرف الموجب لجهد التغذية .
ثم يجب و لابد و حتماً ان نقوم بتوصيل مكثف ذو سعة صغيرة 33 بيكو فاراد او 0.01 ميكروفاراد بين طرفى التغذية بحيث يكون قريباً جداً من المتكاملة 8051 ، و وظيفة هذا المكثف هو تقليل الذبذبات Noise الناتجة عن المتكاملة 8051 نفسها .
أخيراً و ليس بلأخر يتم توصيل وصلة ثنائية Diode كما هو موضح بالشكل عند دخل الطرف الموجب رقم 40 على الميكروكونتروللر و ذلك تجنباً لمشاكل عكس القطبية التى يحتمل ان تحدث اثناء التوصيل و التى قد تودى بحياة الميكروكونتروللر .
و هذا هوشكل المتكاملة بعد توصيل جهد التغذية عليها

[/center]
هنا ينتهى الجزء الاول من الحلقة الثانية و الى لقاء إن شاء الله تعالى مع الجزء الثانى .

السلام عليكم و رحمة الله

"]عفواً يا جماعة الصورة الاخيرة قد استبدلت و هذه هى الصورة المقصودة[/center]


اليوم نكمل بأمر الله تعالى الجزء الثانى من الحلقة الثانية


السلام عليكم و رحمة الله و بركاته

بعد ان انتهينا من توفير التغذية اللازمة للميكروكونتروللر 8051 نبدأ اليوم بأمر الله تعالى اليوم فى اكمال الحلقة الثانية .
كما عرفنا انه يلزم لاى ماكينة فى الوجود لكى تعمل ان يتوفر لها مصدر الامداد بالطاقة فانه يلزم كذلك وجود المحرك اللازم لاتمام التشغيل ففى الانسان نجد ان القلب هو المنظم الاساسى لتدفق الدم و تشغيل الدورة الدموية و الجهاز العصبى يعمل على اصدار اشارات كهربية الى جميع اجزاء الجسم لتعمل فى تناغم و تناسق تام فلا يخل احد الاجهزة فى تنفيذ مهمته .
الميكروكونتروللر كذلك يحتاج الى منظم للاشارات الكهربية و الذى يتم على اساسه تنظيم عملية نقل البيانات و تنفيذ الاوامر فى تناغم تام ، و هذا المصدر المنظم ما هو الا دائرة المذبذب Oscillator Circuit .
لكن لدينا مشكله كبيييييييييييييييييييييييرة و هى ان مصدر التغذية لدينا مصدر جهد مستمر DC Voltage … إذن ما هو الحل لتوفير نبضات التذبذب ؟
لدينا حل من اثنان :-
الاول استخدام دائرة مذبذب خارجية " يمكن ذلك من خلال دائرة 555 تولد موجة مربعة " و يتم تطبيقها على الطرف 19 فى المتكاملة 8051 ، و لكن هذا الحل غير عملى و سيعمل على زيادة مصادر الخطأ فى الدائرة مما يقلل من كفاءة و دقة تنفيذ العمليات فى الميكروكونتروللر 8051 ، و لذلك لن نتعرض بتفصيلات انشاء دائرة المذبذب الخارجية و نكتفى فقط بعرض صورة توضح طرف الدخل فى حال استخدام دائرة مذبذب خارجية

[COLOR=“DarkRed”][SIZE=“5”]
يجب ان ندرك انه فى حال حدوث اى خلل فى دائرة المذبذب و توقفها عن العمل حتماً سيؤدى ذلك الى توقف النظام ككل .
و فى حال عمل دائرة المذبذب بشكل غير سليم ، فانه فى حالة اجراء اى عمليات مرتبطة بالزمن فستكون النتائج غير دقيقة .
الحالة الشائعة و العامة فى استخدام دوائر المذبذب تتمثل فى استخدام المذبذب البلورى CRYSTAL OSCILLATOR و الذى يستخدم من خلال دائرة مذبذب المثقب Pierce oscillator

الصورة التالية توضح شكل هذا النوع من المذبذبات و الذى يستخدم بشكل عام مع الميكروكونتروللر 8051

[/size][/color]

[COLOR=“DarkRed”][SIZE=“5”]
لتنفيذ هذا المذبذب يجب ان ندرك ان معظم مكوناته تم تصنيعها داخل الميكركونتروللر و من ثم فلا يتبقى للمستخدم الا ان يوفر الكريستالة و مكثفين صغيرين ليكمل دائرة المذبذب و قيم هذان المكثفان هى 30 بيكوفاراد 30pF .

و الصورة التالية توضح الدائرة الخارجية للمذبذ و اتصاله بالميكروكونتروللر 8051

[/size][/color]

[COLOR=“DarkRed”][SIZE=“5”]
و عندما نتحدث عن دائرة المذبذب الخاصة بالميكروكنتروللر 8051 يجب ان ندرك انه يعمل بكفاءة عالية حول تردد 12 ميلون هيرتز = 12MHz بالرغم من قدرته على العمل مع نطاق ترددى 40 مليون هريتز 40MHz كحد اقصى .
و حيث ان دورة العمل فى الميكروكونتروللر 8051 نستغرق 12 نبضة فإن استخدام تردد = 40 مليون هيرتز 40MHz يسمح لنا بدورة عمل ذات تردد 3.33 مليون هيرتز 3.33MHz.
بينما استخدام تردد = 12 مليون هيرتز 12MHz يسمح لنا بدورة عمل ذات تردد 1000000 هيرتز 1MHz
لوحظ ان هناك انواع جديدة من انتاج شركة انفينيون موديل 515 = Infineon C515C ذو دورة 6 نبضات فقط و هناك اخرى من انتاج شركة دالاس 420 = Dallas 89C420 و التى تستغرق دورتها نبضة واحدة فقط .
و من ثم يجب ان ندرك انه كلما قل زمن دورة التفيذ كلما زادت السرعة فى اجراء التعليمات و بصيغة اخرى بفرض اننا نستخدم نفس التردد من الكريستال فان الانواع التى ذات عدد الدورات الاقل تكون اسرع فى التنفيذ .
الآن قد يتبادر الى الاذهان انه من الافضل استخدام كريستالات ذات تردد عالى !!!

يا ترى هل هذا صحيح ؟؟؟؟؟؟؟؟؟؟؟

اذا نظرنا الى موضوع السرعة فهو صحيح حيث انه بزيادة التردد يقل الزمن و من ثم تزداد السرعة .
و لذا يلجأ الكثيرين الى استخدام مذبذب ذو تردد اقرب ما يكون الى القيمة القصوى التى يمكن ان يعمل عندها الميكروكونتروللر و هذا خطأ فادح .
:sm233: حيث لدينا عدة قيود يجب ان نأخذها فى الحسبان :-
1- العديد من التطبيقات لا تتطلب مستويات عالية فى الاداء .
2- ذكرنا سابقاً اننا يجب ان نستخدم مكثف صغير السعة 33 بيكو فاراد او 0.01 ميكروفاراد بين طرفى التغذية بحيث يكون قريباً جداً من المتكاملة 8051 ، و وظيفة هذا المكثف هو تقليل الذبذبات Noise الناتجة عن المتكاملة 8051 نفسها ، يا ترى ما هى نوعية الــ Noise المقصودة هنا ؟؟؟؟؟؟؟؟؟
فى الواقع هى موجات كهرومغناطيسية electromagnetic interference (EMI) .
3- هناك علاقة وطيدة بين التردد المستخدم و التيار المسحوب من دائرة التغذية فى دوائر الميكركونتروللر 8051 ، و من ثم فإننا يمكن نقلل الطاقة المسحوبة باستخدام تردد اقل ، و هذا مفيد فى تطبيقات كثيرة .
4- من التطبيقات التى تجبر المصممين على العمل عند ترددات صغيرة ، استخدام وصلات طرفية بطيئة مثل شاشات العرض ذات البللورات السائلة LCD ، الاتصال مع بعض انواع الذاكرة البطيئة … بطيئة ليس لعدم وجود ذاكرة سريعة و لكن لتقليل تكلفة المنتج .
بوجه عام فهو من المفضل العمل عند ترددات قليلة بقدر المستطاع طالماً لن يؤثر ذلك على جودة الاداء للدوائر المصممة .
قد يتبادر الى الاذهان سؤال حول مدى الدقة فى الاداء ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
نقول ان الميكروكونتروللر 8051 يمكنه ان يحقق دقة تمثل بــ 20 جزء من المليون سلباً او ايجاياً ‘±20 ppm’: ‘20 parts per million
ما معنى هذا الرقم ؟؟؟؟؟؟؟؟
يمكن اجراء بعض الحسابات و سنصل الى النتيجة التالية :-
العام تقريباً = 31557600 ثانية حوالى 3.2مليون ثانية و لكل مليون ثانية يحدث خطأ يساوى 20 ثانية و بالتالى اجمالى الخطأ فى العام الواحد يساوى 631.152 ثانية اى حوالى 10.5192 دقيقة === 10 دقائق فى العام .

الصورة التالية توضح شكل الكريستال و مكتوب عليه التردد 4000كيلو هيرتز

[/size][/color]


و الكريستالات المتاحة بالاسواق لها نسب خطأ تتراوح من 10 الى 100 جزء لكل مليون و من ثم فقيمة الخطأ حوالى 5 الى 50 ثانية للعام .
إذن لدينا مشكلة حقيقية عند استخدام الميكركونتروللر مع هذه المذبذبات التجارية غير المستقرة !!!
فما هو الحل للحصول على ثبات اقضل لدوائرنا؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
الحل بسيييييييييييييييييييييييييييط جداً يا شباب …
الاحتفاظ بالكريستالة و معها الدائرة داخل فرن او مبرد عند درجة حرارة ثابتة !!!
ثم العمل على ايجاد معادلة تنظم العلاقة بين درجة الحرارة و التردد و من ثم الحصول على زمن دقييييييييييييييييييييييق
يبدو الموضوع مضحكاً … اليس كذلك ؟
لا هو ده الواقع و هو المستخدم عملياً من خلال ما يعرف بــ TCXOs = Temperature Compensated Crystal Oscillators بمعنى مذبذبات الكريستال المعادل حرارياً .
و هو متوافر و يستخدم بسهولة و هو عبارة عن مجموعة متكاملة package و توفر معدل ثبات يصل الى 0.1 جزء من المليون اى ان الخطأ يصبح حوالى دقيقة كل 20 عام .
لكن تكلفة هذا النوع من الكريستالات حوالى 100 دولار للقطعة الواحدة حيث يتم تصنيعه مخصوص حسب التطبيق الذى تريده و كل ما عليك عمله هو ارسال بيانات درجة الحرارة التى تعمل عندها و التردد المطلوب ،
كما يمكنك ان تحصل على نفس الاداء بتكلفة اقل قد تصل الى 2 دولار و لكن ببذل المزيد من الجهد و يتم ذلك من خلال مجس حرارى صغير يتم بواسطته تتبع التغببر فى درجات الحرارة و اعادة ضبط المؤقت كل فترة .
و لكن فى حالات كثيرة نلجأ الى استخدام التجارى و الذى لا يتعدى ثمنه الدولار الواحد و الذى يكفى لشراء اكثر من 10 قطع و نقبل بنسبة الخطأ 10 دقائق فى العام و الامر الى الله.
ملخص ما سبق ان الكريستالات قد تتسبب فى خطأ يصل الى دقيقة واحدة اسبوعياً " مع التشائم " فهو قد يكون امراً مقبولاً . مع العلم ان كفائة الكريستال تقل مع التقادم فى الزمن .
و من العوامل السيئة التى تؤثر على كفائة الكريستال هو تأثرها بالاهتزازات الخارجية .
و للعلم فإننا سنستخدم كريستال ذو تردد 12 ميجاهيرتز فى التطبيقات المقبلة ان شاء الله تعالى

بسم الله الرحمن الرحيم
وصلى اللهم على سيدنا محمد وعلى آله وصحبه وسلم
السلام عليكم ورحمة الله وبركاته

تسلم إيدك يا أخى

مغلومات ممتازة
بارك الله فيك أخي

thank Youuuuuuuuuuuu

عفواً اعزائى قد اتوقف عن اتمام شرح دورة الميكروكونتروللر 8051
الاسباب هنا
http://www.almohandes.org/vb/showthr...7724#post67724

السلام عليكم و رحمة الله و بركاته
اليوم بأمر الله تعالى نكمل مع الجزء الثالث من الحلقة الثانية فى دورة الميكروكونتروللر 8051

[SIZE=“4”][COLOR=“DarkRed”]نكمل مع موضوع التردد المستخدم لتشغيل الميكروكونتروللر .
تحدثنا عن ان دورة العمل تحتاج 12 نبضة لاجراء ابسط العمليات ، لذلك تعالوا نتعرف عن زمن تنفيذ التعليمة الواحدة اذا كانت تحتاج الى دورة واحدة لتنفذ .
إذا استخدمنا كريستال ذو تردد 11.0592 ميجاهيرتز فما هو زمن الدورة الواحدة ؟؟؟
نحسب العملية التعليمية التالية :-
=1000000/12 * 11.0592
921.6 * 1000
= 921.6 كيلوهيرتز
و من ثم يكون زمن الدورة الواحدة " machine cycle " هو
1/921.6
= 1.085 ms
اما إذا استخدمنا كريستال ذو تردد 16 ميجاهيرتز ؟؟؟
MHz16 / 12
= 1.333 MHz
و من ثم يكون زمن الدورة الواحدة " machine cycle " هو
1/1.333=
0.75 ms
نلاحظ انه كلما زاد تردد الكريستال المستخدم كلما قل زمن تنفيذ التعليمات … إذن اعزائى ما هو التردد المقترح استخدامه فى التطبيقات العملية بالنسبة لنا فى هذه الدورة ؟؟؟؟؟؟؟؟؟؟؟
قطعاً يجب ان نأخذ فى الاعتبار ما ذكر فى الجزء الماضى حول استهلاك الطاقة و الاستقرار و … و … و … ؟؟؟؟؟؟؟
دعونى اقترح عليكم استخدام التردد 12 ميجاهيرتز و ذلك ليكون زمن تنفيذ الدورة الواحدة هو 1 ميللى ثانية " 12 / 12 MHz = 1 ms " …و لهذه القيمة تحديداً ميزة ستوفر علينا بعض الوقت فى اثناء البرمجة حيث سنلجأ لعمل بعض الحسابات الرياضية مستخدمين زمن الدورة الواحدة و من ثم 1 مللى ثانية رقم صحيح يسهل التعامل من خلاله .


عمل اعادة التشغيل للميكركونتروللر
Reset Hardware

من المعلون ان عملية بدأ تشغيل الميكركونتروللر عملية غير تقليدية فالميكركونتروللر ليس مثل باقى الدوائر المتكاملة يعمل مباشرة بمجرد توصيل جهد التشغيل اليه … فى الحقيقة عملية بدأ التشغيل عملية معقدة جداً و نظراً لوجود برنامج يجب ان يبدأ تنفيذه بعد استقرار عمل الميكرو فقد عمد المصنعون على اجراء عملية اعادة تشغيل للميكركونتروللر بعد توصيل الطاقة ليكون بدأ تنفيذ التعليمات بعد دخول الميكروكونتروللر الى حالة الاستقرار .
هذا الامر يشبه تماماً عملية اعادة تشغيل الحاسب الالى على الدافئ من خلال الضغط على مفتيح " Ctrl + Alt + Delete " و هذه العملية تسمح باعادة تشغيل الحاسب بعد استقرار وصول الطاقة الكهربية الى الدوائر الاليكترونية و استقرارها , و بهذا نضمن العمل بعيداً عن النبضات و الشوشرة التى تظهر اثناء عملية غلق الدوائر الكهربية و التى تؤثر حتماً على اوائل التعليمات فى البرنامج و التى اذا تعرض لها البرنامج فسيتم تشويه الكود و لا ينفذ بالشكل الصحيح .
كيف يتم ذلك فى الميكركونتروللر ؟
بالرجوع الى الشكل الذى يوضح اطراف الميكركونتروللر 8051 نجد انه يحتوى على الطرف رقم 9 و الذى يسمى " Reset Input " و هذا الطرف إذا تم توصيله الى جهد 0 فولت فان الميكروكونتروللر يعمل طبيعى جداً " ON "، و اذا تم توصيله بجهد 5 فولت فان الميكروكونتروللر يكون فى حالة عدم العمل " OFF " … و لكن هل يتم عمل ذلك يدوياً؟؟؟؟؟؟ هل كلما ارنا ان نعيد تشغيل الميكركونتروللر ان نستخدم مفتاحاً لتوصيل الطرف 9 مرة الى جهد 5 فولت ثم ننتظر قليلاً و نوصله الى جهد 0 فولت ؟؟؟؟؟؟؟؟
بالتأكيد و ذلك لان الفترة الكافية لوصول الميكروكونتروللر الى حالة الاستقرار بعد توصيل جهد التغذية هو جزء صغير من الثانية .
يتم استخدام دائرة بسيطة جداً و هى دائرة " R-C "
هيا بنا نتعرف على هذه الدائرة و كيفية استخدامها و آلية عملها
يتم عمل دائرة بسيطة يتصل فيها مقاومة على التوالى مع مكثف و يكون مصدر التغذية هو جهد ثابت كما هو بالشكل التالى

فى البداية كان الجهد على المكثف مساوياً للصفر ، ثم فجأة تم غلق مفتاح توصيل القدرة و تم وصول الجهد “ Vin “ بقيمته القصوى الثابتة و هى 5 فولت و لكن هذا ما لا يمكن ان يشحن المكثف مرة واحدة و لكن ذلك يستغرق بعض الوقت و الذى يتم حسابه من العلاقة التالية :-

T = R . C

بعد هذا الزمن نجد ان الجهد على المكثف وصل الى الاستقرار عند القيمة 5 فولت ثم يصبح المكثف كما لو كان غير موجود لانه داخل دائرة جهد مستمر فيصبح المكثف كدائرة مفتوحة " Open Circuit " .
هذا الشكل يبين عملية شحن المكثف من 0 الى 5 فولت [/color][/size]


فى اثناء فترة شحن المكثف يبدأ ظهور فرق جهد على اطراف المقاومة و يمر فى هذه الاثناء تيار كهربى ، حتى نصل الى ثبات الجهد على المكثف و من ثم يكون الجهد على المقاومة هو 0 فولت و هذا هو الجهد الذى يعمل عنده الميكروكونتروللر بثبات و الذى سيصل اليه بعد نفس الزمن .
هذا الشكل يبين عملية تفريغ شحنة المكثف من 5 الى 0 فولت فى المقاومة

[SIZE=“4”][COLOR=“DarkRed”]السؤال الذى سيتبادر الى الاذهان هو ما زمن عملية اعادة التشغيل اذا استخدمنا هذه الدائرة ؟؟؟؟
للاجابة نعود الى المعادلة السابقة
T = R . C
و باختيار مقاومة قيمتها 10 كيلو اوم و مكثف ذو سعة 1 ميكروفاراد

R = 10 K Ohm
C = 1 Micro Farad

T = 10 * 1000 * 1 * 0.000001 = 0.01 sec = 10 mill sec
نجد ان زمن اعادة التشغيل هو 10 ميللى ثانية ، و قد ذكرنا اننا باستخدامنا لكريستال 12 ميجاهيرتز يكون زمن اجراء دورة كاملة هو 1 ميللى ثانية … اى اننا قمنا بتأخير تنفيذ البرنامج فترة كافية " بمعدل عدد 10 تعليمات " و هو زمن كافى جداً لوصول الميكروكونتروللر الى حالة الاستقرار .
الدائرة التالية توضح دائرة عمل اعادة التشغيل باستخدام الدائرة السابقة بالاضافة الى امكانية اجرائها يدوياً من خلال سويتش " S "
[/color][/size]

لكن هل هذه هى الطريقة الوحيدة لعمل اعادة التشغيل؟؟؟؟؟؟؟
من المعروف ان المكثف الكيميائى المستخدم هنا ستتغير قيمته و سعته مع مرور الزمن و من ثم فمن الممكن ان يمثل هذا المكثف مشكلة بعد مدة من التشغيل
لذلك تم عمل دائرة متكاملة تقوم بهذه الوظيفة بكفائة عالية و تحمل الرقم " DS 1812 "

نسترجع هذا الجزء من الحلقة الاولى

EA
External Access

-[COLOR=“Indigo”][SIZE=“4”] اشارة دخل يتم ادخالها على الطرف رقم 31 للميكروكونتروللر 8051
  • تأخذ أحد القيمتين ( 0 أو 1 )
    القيمة ( 1 ) ، تستخدم إذا أردنا تنفيذ الأوامر المخزنة على الذاكرة الداخلية للميكروكونتروللر 8051 ، الذاكرة الداخلية محدودة ( 4/8 كيلو )
  • القيمة ( 0 ) ، و تستخدم إذا أردنا أن ننفذ الأوامر المخزنة على الذاكرة الخارجية فقط ( هنا يجب ان تكون اشارات PSEN منخفضة === 0 )
    و من ثم يتم توصيل الطرف 31 الى مصدر التغذية Vcc لاننا ستبدأ مع الذاكرة الداخلية حيث ان البرامج الاساسية فى الدورة غتابتً ستكون صغيرة السعة .[/size][/color]
    الان يمكننا مراقبة الميكروكونتروللر للتأكد من انه يعمل ام لا .
    و يتم ذلك من خلال مراقبة الاشارة على الطرف رقم 30 ALE و الذى من المفترض ان يخرج موجه مربعة و لكن ترددها يساوى 1/6 من تردد الكريستال المستخدم و لا يتسنى لنا ذلك الا من خلال استخدام الاوسيليسكوب و الصورة التالية توضح شكل الاشارة الناتجة :-
    الشكل التالى يوضح توصيل الدائرة المتكاملة DS1812 بالميكرو فى وجود دائرة المذبذب و توصيل الطرف EA

[SIZE=“4”][COLOR=“DarkRed”]اليوم بأمر الله تعالى نبدأ مع الجزء الرابع من الحلقة الثانية


Driving DC Loads
تشغيل احمال التيار المستمر

من المعلوم انه يمكننا ان نجعل الجهد على اطراف الميكروكونترولر 8051 اما 0 فولت او 5 فولت ، و هناك بعض الموديلات تستخدم 0 فولت او 3 فولت ، و يتم ذلك من خلال التحكم بالبرنامج .
كل طرف يمكنه ان يمد sink or source الحمل الواقع عليه بتيار قيمته حوالى 10 ميللى امبير ، و بالرغم من ذلك و فى حالة تحميل كل اطرافه " 32 طرف " فى نفس الوقت فالميكروكونتروللر 8051 لا يستطيع ان يغذى بتيار اعلى من 70 ميللى امبير .
NAKED LED
توصيل الثنائى الضوئى مباشرة

من الممكن توصيل الثنائى الضوئى مباشرة على قنوات التوصيل للميكروكونتروللر ، و لكن فى هذه الحالة يكون جهد التغذية للثنائى الضوئى 5 فولت كجهد انحياز امامى .و التيار اللازم لتشغيل الثنائى الضوئى هو 15 ميللى امبير .
بالتالى هذا لا يتناسب مع الثنائى الضوئى و لكن قد يتناسب مع احمال اخرى مثل م يعرف بــ Buzzer و هو نوع خاص من السماعات .

و من المعلوم ان الثنائى الضوئى يحتاج الى جهد انحياز امامى 2 فولت فقط مع تيار قيمته 15 ميللى امبير " يمكنك التعرف على هذه القيمة من خلال الــ DataSheet " الخاص بالثنائى الضوئى حيث يوجد منه اكثر من نوع .
و من ثم نحتاج توصيل مقاومة على التوالى مع الثنائى الضوئى و يتم حساب قيمة هذه المقاومة من العلاقة التالية

R = V / I = ( 5 – 2 ) / 0.015 = 200 Ohm

Use of pull-up resistors
استخدام مقاومات التوقف الاجبارى

لتهيئة الدوائر المتكاملة التى لا يوجد بها مقاومات ايقاف داخلية ،،،، يتم ذلك بتوصيل مقاومة خارجية على اطرافه ، و قيمة هذه المقاومة هى " من 1 ك اوم الى 10 ك اوم " و يتم توصيل هذه المقاومات على جميع التطبيقات خلال هذه الدورة .
فى حالة الميكروكونترولر 8051 نحتاج الى توصيل هذه المقاومات فقط على ميناء الاتصال رقم 0 Port 0 .




The need for pull-up resistors
ماهى اهمية مقاومات الايقاف ؟؟؟؟


لكن ما هى اهمية هذه المقاومات ؟؟؟؟؟؟؟؟؟؟؟

تعالوا نشاهد هذه الصور التى ستوضح اهمية توصيل هذه المقاومات

فى حالة وجود المقاومات With pull-ups

هنا نجد اننا اذا لم نضع اى قيم على اطراف ميناء التوصيل فهى ترى القيمة 1 = 5 فولت بشكل تلقائى . " الصورة اليسرى "
اما اذا ادخلنا القيمة 0 على اطراف ميناء التوصيل فحتماً سترى 0 . " الصورة اليمنى "
بدون المقاومات Without pull-ups

هنا نجد اننا اذا لم نضع اى قيم على اطراف ميناء التوصيل فهى ترى القيمة 0 بشكل تلقائى . " الصورة اليسرى "
اما اذا ادخلنا القيمة 0 على اطراف ميناء التوصيل فحتماً سترى 0 . " الصورة اليمنى "

The need for pull-up resistors

إذن أيت تكمن اهمية استخدام هذه المقاومات و ما الفائدة من جعل الدخل فى حالة عدم الاستخدام دائماً يكون 1 و يتغيير فقط اذا ادخلنا 0 على ميناء التوصيل ؟؟؟؟؟؟؟؟؟؟؟؟؟؟

Dealing with switch bounce
التعامل مع تغيير حالة المفاتيح

CENTER][/center]
نجد ان اى مفتاح ميكانيكى يستخدم لتغيير الحال من ON الى OFF او العكس لا يصل الى الاستقرار مباشرة و لكن يتطلب الامر التأرجح بين الحالتين لفترة زمنية قصيرة ثم العودة مرة اخرى الى حالة الاستقرار الجديدة .
و لكن ما هى المشكلة هنا ؟؟؟؟؟؟؟؟؟؟؟
المشكلة تكمن فى ان الميكروكونتروللر قد يعتبر كل تغيير يحدث اثناء عملية الغلق او الفتح كما لو كانت عملية غلق او فتح منفصلة فى حد ذاتها …
الموضوع غير واضح … أليس كذلك ؟؟؟
تعالوا نتحدث عن استخدامنا للوحة المفاتيح الخاصة بالحاسب
اذا ضغط على مفتاح ما ليكن A مرة واحدة فستظهر على الشاشة A اما اذا ضغطنا مرتين فسيظهر AA و لكن لنفترض ان هناك مستخدم جديد و يديه ثقيلة على اللوحة … اذا اراد ان يكتب ذلك الحرف مرة واحدة سيظهر له AAAAAAAAA … اممممممممم اذن هناك مشكلة .
اما ان يتدرب على السرعة الملائمة او ان يغيير من حساسية لوحة المفاتيح .
كيف يتم تغيير حساسية لوحة المفاتيح ؟؟؟
هى نفس المشكلة التى تظهر مع الميكروكونتروللر … لذلك يجب ام معدل فى البرنامج اللازم للقراءة او الكتابة على قناة الاتصال او تغيير حساسية الاشارة الداخلة … و هذا ما يتم عمله باستخدام تلك المقاومات

Driving a low-power load without using a buffer
تغذية احمال صغيرة دون الحاجة الى وسيط تحميل BUFFER
Using an IC Buffer

يمكن استخدام المتكاملة ULN2003 كوسيط للتحميل أو اى نوع اخر مثل البوابات AND او OR او NAND او NOT او … الخ

هنا نستخدم المتكاملة 74HC04 و هى عبارة عن بوابة نفى Inverter و هذه المتكاملةتحوى داخلها pull-up resistors و نجد اننا نستطيع سحب تيار عالى و فى مثالنا الحالى 3 ثنائى ضوئى يسحب 315 = 45 ميللى امبير من الــ inverter و ليس من من 8051 .
هذه المتكاملة يمكن ان توصل 6 اطراف يعنى 6
15=90 ميللى امبير , تذكر ان الميكرو اقصى حمل له كان 70 ميللى امبير .

Using a CMOS buffer

Using a TTL buffer

What is a multi-segment LED

تم توصيل مجموعة من الثنائيات الضوئية فيما يعرف بالعارضات متعددة الاقسام MS LED Multi-Segment displays و هى مكونة من عدد 8 ثنائيات ضوئية و تشتهر بــ seven-segment displays و هذه التسمية تكون صحيحة فى حالة اهمال الفاصلة العشرية .
هذا النوع من العارضات يعتمد على ترتيب خاص حيث يكون له طرف عام و اطراف خاصة
منها ما يكون المهبط هو الطرف العام و منها ما يكون له المصعد هو الطرف العام

‘common cathode’ or ‘common anode’

التيار اللازم لتشغيل هذه المجموعات يترواح بين 2 ميللى امبير و 60 ميللى امبير و احياناً يصل الى 100 ميللى امبير و يمكنكم التعرف عليها من المواصفات الفنية DataSheet الخاصة بالنوع الذى تشتريه .

دائماً و ابداً سنحتاج الى buffer خاص لتشغيل هذه المجموعات MS LED و من الامثلة المستخدمة المتكاملة UDN2585A و التى يمكن ان تغذى الــ 8 اطراف بتيار يصل الى 120 ميللى امبير عند جهد يصل الى 25 فولت " يمكنك من خلالها تشغيل MS LED من الحجم العائلى …
يجب ان نأخذ فى اعتباراتنا ان هذا النوع عاكس للاشارة inverting (current source) buffer بمعنى انه اذا كان الخرج 0 من الميكرو و تم ادخاله على هذه المتكاملة فانها ستضئ المشع الضوئى المتصل عليها .

الى اللقاء مع الحلقة الثالثة و كتابة اول الاوامر للميكروكونتروللر 8051

[/color][/size]

جزاك الله خيراً

و إياك أخى الكريم و شكراً لمرورك

السلام عليكم و رحمة الله و بركاته
اعزائى اعضاء المنتدى
نظراً لان مدة الاستفتاء اوشكت على الانتهاء ، حيث كنت قد قررت لها مدة 30 يوم فقط لم يتبقى منها سوى يومين
و حيث انه لم يشارك سوى 6 اعضاء فقط فى هذا الاستفتاء
معنى ذلك انه لا يتواجد مهتمين غيرهم و اسمحوا لى ان اتقدم لهم بالشكر لمشاركاتهم الايجابية و هم
ahmedeldeep
banhawy
eng47
fadeonlin
روبوت الاسلام
S0m3a

و أود أن أوضح أن لهم مفاجأة :sm219: فيما يتعلق بالتطبيقات العملية و سوف أعلنها فور البدء فى الحلقة الثالثة إن شاء الله تعالى

جزاك الله الف خير اخوي الرحال والله يزيدك من علمه ويوفقه في كل امورك

جزاك الله خيرا وبارك الله فى مجهود ونحن فى انتظار المفاجاة

[SIZE=4][COLOR=Red][B]الحلقة الثالثة تبدأ اليوم بأمر الله تعالى

[/b][/color][/size]

http://www.almohandes.org/vb/showthread-t_11956.html

بارك الله فيك وجعله في ميزان حسناتك

بارك الله فيك

momtaz bgad allah ynwar bs elswar msh mwgoda 3andy yrat 2ly 3andoh 7al y2oly