الدرس الثالث : التعرف على الميكرو Pic16f84


#1

والان سنبدا فى التعرف على

Microcontroller PIC16F84

وهذا هو النوع الذى ستكون دراستنا فى الدورة مبنية عليه
وهذه بعض الملاحظات على هذا النوع

1- هذا الميكروكنترولر من فئة 8 –bit وتركيبة من النوع RISC ويسمى ايضا Harvard

والشكل العام لهذا التركيب كما فى الصورة الاتية

والنوع الاخر يسمى من تركيب الميكروكنترولات هو
CISC او von-Neumann
وتركيبه كما فى الشكل الاتى

وطبعا واضح من الرسم ما هو الفرق بينهم
ولتوضيح الفرق بينهم أكثر

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

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

ونجد ايضا ان كلمة RISC تعنى Reduced Instruction Set Computer اى ان هذا النوع يعتمد على تقليل عدد التعليمات المخزنة وتصل فى هذا النوع الى 35 تعليمة.

اما كلمة CISC فتعنى Complex Instruction Set Computer .

2- ذاكرة البرنامج

وهى من النوع فلاش Flash اى يمكننا بسهولة مسح البيانات التى عليها واعادة كتابتها مرة اخرى .
وعند فصل التيار الكهربى فان البيانات الموجودة بيها يتم مسحها ولا تخزن ولا يمكن استرجاعها
وتساوى فى هذا النوع الف كلمة 1k word

والكلمة او word تساوى 8-bit او تساوى 2 byte

3- EEPROM

وهى ذاكرة القراءة فقط والتى بها بيانات الميكروكنترولر وتعليماته وهذه الذاكرة لا يتم ازالتها عند فصل التيار الكهربى
وتساوى 64 بايت

4- RAM

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

وتساوى 68 بايت
وهذا الميكرو لديه بورتان او مرفاءن
1- PORTA
ويحتوى على 5 أرجل
2- PORTB
يحتوى على 8 أرجل

5- FREE-RUN TIMER

وهو مسجل register خاص داخل الميكرو ويقوم بالعد من صفر الى 255 وله زمن معين بين كل عده والتى تليها .
ويستخدم فى معرفة الزمن بمعلومية الفترة التى يستغرقها بين العدة والتى تليها .

وفى الشكل الاتى نجد الشكل العام لل PIC16F84

Clock / instruction cycle
كما معروف لدينا ان الميكروكنترولر يقوم بتنفيذ التعليمات بصورة تتابعية
ولذلك لابد من وجود ساعة تنظم هذه العملية مع الوقت

والساعة فى الميكروكنترولر تسمى oscillator او المذبذب وتكون لها قيمة محددة معروفة بى الزمن بين كل ذبذبة والذبذبة التى تليها او الزمن الذى يستغرقه فى عمل ذبذبة كاملة او التردد وكما معروف لدينا فى الساعة العادية ان قيمة هذه الفترة تسمى الثانية

وتردد المذبذب يساوى 10 MHZ
ويتم توصيل المذبذب بالرجل التى تسمى OSC1 ثم يتم تقسيمها الى اربعة فترات
Q1, Q2, Q3, and Q4
وهذه الاربعة فترات تكون دورة تعليمة واحدة او تسمى كما معروف عند الجميع
machine cycle

وهى كالاتى
فى الفترة Q1 يتم استدعاء التعليمة التى عليها الدور فى التنفيذ
فى الفترة من Q2 الى Q3
يتم تحويل التعليمة الى صورة مفهومة للميكروكنترولر وهذه العملية تسمى Decoding ثم تنفيذها
فى الفترة Q4 يتم كتابة هذه التعليمة فى المسجل الخاص بها
وفى الشكل الاتى نلاحظ التقسيمات الداخلية للفترة الزمنية او الذبذبة الداخلة من
OSC1


فهرس دروس دورة الميكروكنترولر كاملة
فهرس دروس دورة الميكروكنترولر كاملة
#2

توصيف الارجل

فى الشكل الاتى نجد الميكروكنترولر مع اسم كل رجل

وكما نلاحظ فالميكروكنترولر يحتوى على 18 رجل وفائدة كل رجل موضحة كما يلى :

1- RA2 الرجل الثانية فى المرفأ A
2- RA3 الرجل الثالثة فى المرفأ A
3- RA4 الرجل الرابعة للمرفأ A ولها وظيفة اضافية هى TOCK وتستخدم مثل المؤقت او المذبذب
4- MCLR وهى RESET INPUT والخط الموجود فوقها يدل على انها تعمل فى حالة تحول الاشارة من قيمة موجبة الى الصفر ويوصل بها VPP وهو الفولت اللازم لبرمجة الميكرو
5- VSS خط الارضى GROUND
6- RB0 الرجل رقم صفر فى المرفا B ولها وظيفة اضافية حيث تستخدم فى عمل ال INTERRUPT
7- RB1 الرجل الاولى فى المرفا B
8- RB2 الرجل الثانية فى المرفأ B
9-RB3 الرجل الثالثة فى المرفأ B
10-RB4 الرجل الرابعة فى المرفأ B
11- RB5 الرجل الخامسة فى المرفأ B
12- RB6 الرجل السادسة فى المرفأ B وهى التى تستخدم فى دخول الساعة الى الميكروكنترولر
13-RB7 الرجل السابعة فى المرفأ B وهى التى تستخم فى دخول البيانات
14-Vdd توصل بالجهد الموجب
15-OSC1 توصل بالمذبذب
16- OSC2 توصل بالمذبذب
17- RA0 الرجل رقم صفر فى المرفا A
18- RA1 الرجل الاولى فى المرفا A

المذبذب Clock generator - oscillator

والان سنتعرف عن قرب على المذبذب وكيفية توصيله وانواعه

من خصائص الميكرو - الذى هو محل دراستنا – انه يمكنه ان يتعامل مع اربعة اشكال مختلفة من المذبذب .
ولكن عادة نستخدم نوعين فقط هما
crystal oscillator
او
resistor-capacitor
والنوع الاول يسمى XT او كما معروف فى الاسواق بى الكريستالة
وشكله كما يلى

والنوع الثانى هو
RC وهذا النوع اقل دقة من النوع الاول وقد يستخدم فى بعض التطبيقات التى قد لا تحتاج دقة عالية فى المذبذب .

ويعتمد هذا النوع على الجهد الداخل الى المقاومة والمكثف والذى يولد بما يسمى Resonant frequency

ونلاحظ ان هذا النوع قد تم توصيله بالرجل رقم 3 TOCK1
ويجب ملاحظة ان فى النوع الاول المذبذب او الكريستالة لا تعمل عند توصيل الكهرباء مباشرة ولكن تنتظر لفترة تعرف بى Crstal start up time وهى فتره كافيه ليصل المذبذب الى حالة الاستقرار والتخلص من الضوضاء وموضحة فى الشكل الاتى .


(عباس العراقي) #3

والله يا اخي وبدون مجاملة درس قيم
ولكني لم تظهر عندي الصور


(عباس العراقي) #4

12- Rb6 الرجل السادسة فى المرفأ B وهى التى تستخدم فى دخول الساعة الى الميكروكنترولر

ماذا تقصد يا اخي بدخول الساعة الى المايكروكونترولر

13-rb7 الرجل السابعة فى المرفأ B وهى التى تستخم فى دخول البيانات

اليست بقية الارجل ايضا تستخدم في دخول البيانات


(عباس العراقي) #5

ما قيمة المتسعات والمقاومة التي تربط مع الكريستالة


(عباس العراقي) #6

في الحالة الثانية من المذبذب
قلت يا اخي
يعتمد هذا النوع على الجهد الداخل الى المقاومة والمكثف والذى يولد بما يسمى Resonant frequency
اليس الجهد ثابت ويساوي 5V

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


#7

جزاك الله خيرا
ولكن فى الحقيقة الصور تعمل جيدا
يرجى عمل ريفرش


#8

Rb6 الرجل السادسة فى المرفأ B وهى التى تستخدم فى دخول الساعة الى الميكروكنترولر

ماذا تقصد يا اخي بدخول الساعة الى المايكروكونترولر

هى وظيفة اضافيه لتوصيل مذبذب بدلا من استخدام OSC1 و OSC2

rb7 الرجل السابعة فى المرفأ B وهى التى تستخم فى دخول البيانات

اليست بقية الارجل ايضا تستخدم في دخول البيانات

اقصد بيانات المذبذب البديل وليس بيانات عادية
وفى حالة عدم توصيله تصبح مثل اى رجل عادية

ما قيمة المتسعات والمقاومة التي تربط مع الكريستالة

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

يعتمد هذا النوع على الجهد الداخل الى المقاومة والمكثف والذى يولد بما يسمى Resonant frequency
اليس الجهد ثابت ويساوي 5V

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


(eng_asa) #9

شكرا جزيلا
جزاك الله خيرا
فى انتظار الدرس القادم


(رحال حول العالم) #10

السلام عليكم
اسمحوا لى ان اقدم تعليقاً عن الجزء الخاص بـ الـ R C حيث انه فى حالة التوصيل كما هو موضح بالرسم فان المنحنى على طرفى المكثف يمقل بمنحنى تزايدى كما هو بالشكل بمعنى :
عند بدء التشغيل الجهد صفر و بعد فترة = RC يصل الجهد الى قيمته العظمى Vdd
و هذا المنحنى يعبر عن فترة نأخير Delay و اظمها المسئولة عن منع عنل الميكروكونتروللر حلال قتر البدء و التى تحتوى على ضوضاء تؤثر على ثبات عمل البرنامج

برجاء مراجعة المنحنيات المرفقة


#11

فعلا اخى العزيز كلامك صحيح وهذه الفترة تسمى

Crstal start up time وهى فتره كافيه ليصل المذبذب الى حالة الاستقرار والتخلص من الضوضاء


(smart_storm) #12

السلام عليكم

توضيح لبعض أسئلة الاخ عباس العراقي

12- Rb6 الرجل السادسة فى المرفأ B وهى التى تستخدم فى دخول الساعة الى الميكروكنترولر

ماذا تقصد يا اخي بدخول الساعة الى المايكروكونترولر

هذه الرجل مختصة بال CLOCK اثناء طور البرمجة فقط
أي أثناء تنزيل البرنامج للميكروكنتورلر فقط

13-rb7 الرجل السابعة فى المرفأ B وهى التى تستخم فى دخول البيانات

اليست بقية الارجل ايضا تستخدم في دخول البيانات

أيضا هذه الرجل هي المختصة بدخول البيانات DATA فقط أثناء البرمجة أي في طور البرمجة

ما قيمة المتسعات والمقاومة التي تربط مع الكريستالة

أذا كنت تقصد ال XT فقيمة المكثفات التي تربط مع الكريستال تقريبا 30PF

اما أذا كنت تقصد ال RC فأليك بعض التوضيح

بعض الاطلاع علي بعض الشرح :

بالنسبة للمقاومة

أذا أستخدمنا مقاومة أقل من 2.2K فأن ال oscillator سيصبح غير مستقر

وأذا أستخدمنا قيمة كبيرة جدا “مثلا 1M” فأن الoscillator سيصبح حساس جدا للnoice

والرطوبة !

لذلك يفضل أستخدام قيمة مقاومة تتراوح بين 3 ألي 10 k مع مكثف تقريبا 20PF

هذا والله أعلم

والسلام عليكم


(عباس العراقي) #13

شكرا يا اخوتي الاعزاء
انشلء الله تكتمل الفكرة عندي عند التقدم بالدروس


(رحال حول العالم) #14

لى سؤال
بالنسبة للمكثفات 30pf الموصلة مع الكريستالات
اولاً هل من كتب تشرح بالتفصيل فكرة عمل و تصنيع الكريستالات ؟
ثانياً ما هو نوع المكثفات المستخدمة ( كيمياءى ام خزفى " جاف " )


(shahd alyasmeen) #15

اشكركم جميعا على المعلومات الحلوة دى وباذن الله استكمل معاكم بس كنت عايزة اسال
ما هى وظيفة الporta.والportb


(shahd alyasmeen) #16

او بمعنى اصح ما هما؟


#17

السلام عليكم
اولا وظيفة ال porta وال portb هى ادخال او اخراج البيانات القادمة الى الميكرو من العالم الخارجى وهى الاجهزة التى تكون موصله به مثل المفاتيح الحساسات المواتير وغيرها
وعموما لا يوجد فرق بينها


(eng.waleed) #18

5- FREE-RUN TIMER
وهو مسجل register خاص داخل الميكرو ويقوم بالعد من صفر الى 255 وله زمن معين بين كل عده والتى تليها .
ويستخدم فى معرفة الزمن بمعلومية الفترة التى يستغرقها بين العدة والتى تليها .

ما هو الزمن المقصود ؟ و ماذا سيفيدنا اذا علمنا هذا الزمن المقصود ؟

هذه الرجل مختصة بال CLOCK اثناء طور البرمجة فقط
أي أثناء تنزيل البرنامج للميكروكنتورلر فقط

هل معنى ذلك انه أثناء البرمجة نستخدم clock معينة مختلفة عن ال clock العادية الخاصة بالميكرو و التي يتم توليدها عبر الكريستال ؟
و هل من الممكن استخدام ال clock العادية أثناء البرمجة و عدم استخدام هذه clock ?

أيضا هذه الرجل هي المختصة بدخول البيانات DATA فقط أثناء البرمجة أي في طور البرمجة

هل معنى ذلك ان الداتا كلها يتم ادخالها عبر هذه الرجل فقط كنظام السيريال مثلا serial ?

شكرا على الدرس الثالث و في انتظار المزيد
سلام
المهندس وليد


(smart_storm) #19

السلام عليكم

بالنسبة للأخ jkmaro

النوع المستخدم في المكثفات هو كيميائي

اما بالنسبة للOscillator فأليك بعض المواقع والكتب ممكن تكون مفيدة

http://www.electronics-tutorials.com/oscillators/oscillator-basics.htm
http://www.electronics-tutorials.com/oscillators/oscillators.htm
http://www.rakon.com/generated/1-25/technical_article_files/frame.htm
http://www.sss-mag.com/cosc.html


(smart_storm) #20

السلام عليكم

بالنسبة للأخ م/وليد ربنا يوفقنا ونجاوب أجابة صحيحة

rb6 و rb7 مع بعض الارجل الاخري تم تخصيصهم من الشركة المصنعة لأستخدامهم أثناء

تنزيل “حرق” او “صب” البرنامج “hex” للميكروكنترولر أي بأستخدام هذه الارجل تقوم فكرة

المبرمجات “PROGRAMMERS”

وبالتالي انا لا أعتقد انه يمكن أستخدام الكريسالة العادية اثناء البرمجة

وبالنسبة للداتا نعم أعتقد ان كل الداتا تدخل عن طريق هذه الرجل

هذا والله اعلم