شارك تعلم استمتع حيث العلم والفائده


    دروس في الميكروكنترولر PIC 16F84

    شاطر
    avatar
    Admin
    Admin
    Admin

    ذكر
    عدد الرسائل : 699
    العمر : 32
    الكليه/الفرقه/العمل : طالب في كلية الهندسه الألكترونيه الفرقهالرابعه قسم تحكم
    المزاج :
    تاريخ التسجيل : 03/09/2007

    دروس في الميكروكنترولر PIC 16F84

    مُساهمة من طرف Admin في 5/11/2007, 7:35 pm

    الميكروكنترولر هو ببساطة عبارة عن كمبيوتر موضوع بداخل شريحة صغيرة، و عندما أقول كمبيوتر فإنني أعني ما أقول، إذ أن هذه الشريحة الصغيرة يوجد بها معالج CPU و مجموعة ذواكر RAM, ROM و غيرها، و لكي يكتمل الأمر، تحتوي هذه الشريحة أيضاً على وحدات إدخال و إخراج بالإضافة إلى وحدات تحكم لتسيير العملية بإنتظام
    إذاً اكتملت لدينا أجزاء الكمبيوتر الخمسة:
    1- إدخال INPUT
    2- حفظ MEMORY
    3- معالجة PROCESSING
    4- تحكم CONTROL
    5- إخارج OUTPUT

    فلا تستغربوا عندما تسمعون مرة أخرى أن الميكروكنترولر عبارة عن كمبيوتر مصغر في شريحة صغيرة .. !!

    بحول الله سأقوم بتفنيد كل نقطة و كل جزئية بحسب رؤيتي لأهميتها و أن الوقت مناسب لها أو أن المشاركين في هذه الدورة يجدون ضرورة الاستعجال بشرحها ..

    قد يتسائل البعض، ما هو الفرق بين الميكروكنتورلر و الميكروبروسيسر، و الفرق كما أسلفنا هو أن الأول عبارة عن كمبيوتر متكامل بينما الميكروبروسيسر عبارة عن الـ CPU فقط ! بغض النظر عن الفرق الهائل في السرعات و الذي يرجح بصورة هائلة الميكروبروسيسر لكن يظل عاجزاً عن العمل لوحده! أي أنه يحتاج وحدات إدخال (كيبورد)، إخراج (شاشة)، حفظ (رام + هارد ديسك)، تحكم (البيوس أو Chipset) !! و هنا يتضح جلياً تكاملية الميكروكنترولر إذا يحوي كل هذه الجزئيات في إطار دارة متكاملة صغيرة بحجم إحدى بنان الإصبع الواحدة!



    عدل سابقا من قبل في 5/11/2007, 9:21 pm عدل 1 مرات


    _________________
    avatar
    Admin
    Admin
    Admin

    ذكر
    عدد الرسائل : 699
    العمر : 32
    الكليه/الفرقه/العمل : طالب في كلية الهندسه الألكترونيه الفرقهالرابعه قسم تحكم
    المزاج :
    تاريخ التسجيل : 03/09/2007

    رد: دروس في الميكروكنترولر PIC 16F84

    مُساهمة من طرف Admin في 5/11/2007, 7:37 pm

    الدرس رقم 2
    الآن نقوم بإلقاء نظرة عن كثب على المتحكم و هو كما تلاحظونه في الصورة التالية

    هذا هو الشكل الحقيقي له، أما الرسم التوضيحي له فهو على الشكل التالي

    طبعاً الأرقام ليست موجودة على المتحكم الحقيقي و لكي نعرف من أين نبدأ العدّ، ستلاحظون وجود دائرة صغيرة منحوتة في أحد زوايا المتحكم و هي تدل على الرجل رقم واحد، أيضاً هذا الكلام ينطبق على معظم الدوائر المتكاملة إن لم تكن جميعها ..

    متحكمنا لديه 18 رجل سنقوم بتفصيل وظيفة كل منها و بشكل عام تنقسم إلى ثلاث مجموعات و هي:
    1- إدخال و إخراج I/O pins


    في الصورة أعلاه نلاحظ أن متحكمنا لديه 13 رجلاً بالإمكان برمجة كل واحدة منها إما للإدخال أو للإخراج، و تنقسم هذه الأرجل إلى منفذين Ports و هما منفذ A و الذي يحوي خمسة أرجل RA0-RA4 و منفذ B و الذي يحوي ثمانية أرجل RB0-RB7
    يتم إعطاء القيمة (صفر) برمجياً لأي رجل لضبطها كـ (إخراج output pin) أو القيمة (واحد) لضبطها كـ (إدخال input pin)، كما يمكن أيضاً ضبط أكثر من رجل بتعليمة برمجية واحدة، فبإرسال القيمة 05 (بالهيكسا) و التي تقابلها القيمة 00000101 (بالثنائي) إلى المنفذ B يعني أني سأقوم بضبط الأرجل (0 و 2) كـ إدخال، و الأرجل (1 و 3 و4 و5 و6 و7) كـ إخراج !


    # في لغة الأسمبلي كما سيتم توضيحه في دروس قادمة بالإمكان التعامل مع القيم بأي من الأنظمة التالية (العشري decimal أو الثنائي binary أو الهيكسا)
    # لاحظ أن المنفذ A يحوي فقط خمسة أرجل لذلك فأي قيمة لضبطه إذا كانت عبارة عن بايت واحد فآخر ثلاثة بتات bits لا تهم إن كانت 0 أو 1 فلا تأثير لها don't care


    2- تغذية power supply pins

    في الصورة أعلاه نلاحظ أن المتحكم يوجد به رجليت للتغذية، الرجل رقم 5 و هي خاصة بالـ Vss أو الـ ground (الأرضي)، و الرجل رقم 14 و الخاصة بالـ Vdd أو Vcc و مقداره في هذا النوع من المتحكمات (4.5 إلى 5.5) فولت و يفضل ضبطها على 5 فولت ثابتة بحيث يكون لديك مقدار سماحية tolerance +-0.5

    3- تحكم control pins


    في الصورة أعلاه نلاحظ أن المتحكم لديه ثلاثة أرجل للتحكم، الرجلين 15 و 16 و يوصل بهما المتذبذب oscillator و متحكمنا يدعم الترددات حتى 20 ميجاهرتز، يجب أن يكون هناك متذبذب و إلا لن يعمل المتحكم بالصورة المطلوبة إذ أن المتذبذب يوفر لنا خاصية التزامن و بدء و انتهاء كل عملية !
    أيضاً نلاحظ وجود MCLR أو Master CLeaR (الرجل 4) و هذه الرجل وظيفتها عمل إعادة ضبط reset لعمل المتحكم و جعله يبدء عمله من البداية. وجود الخط أعلى كلمة MCLR يدل على أن هذه الرجل تعمل عندما يكون جهدها منخفضاً !

    بهذا نكون تعرفنا على جميع أرجل المتحكم




    عدل سابقا من قبل في 5/11/2007, 9:13 pm عدل 1 مرات
    avatar
    Admin
    Admin
    Admin

    ذكر
    عدد الرسائل : 699
    العمر : 32
    الكليه/الفرقه/العمل : طالب في كلية الهندسه الألكترونيه الفرقهالرابعه قسم تحكم
    المزاج :
    تاريخ التسجيل : 03/09/2007

    رد: دروس في الميكروكنترولر PIC 16F84

    مُساهمة من طرف Admin في 5/11/2007, 7:51 pm

    Reset

    نجد من توزيع ارجل الميكروكنترولر ان الرجل رقم 4 تستخدم فى عمل reset وهذه الكلمة تعنى اعادة الميكرو الى وضع حالته المعروفة و ذلك عندما يكون الميكروكنترولر فى حالة غريبة او نتائجه غير دقيقة .

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



    وهذه الدائرة أكثر تفصيلا



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

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


    _________________
    avatar
    Admin
    Admin
    Admin

    ذكر
    عدد الرسائل : 699
    العمر : 32
    الكليه/الفرقه/العمل : طالب في كلية الهندسه الألكترونيه الفرقهالرابعه قسم تحكم
    المزاج :
    تاريخ التسجيل : 03/09/2007

    رد: دروس في الميكروكنترولر PIC 16F84

    مُساهمة من طرف Admin في 5/11/2007, 8:00 pm

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

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

    []

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

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

    avatar
    Admin
    Admin
    Admin

    ذكر
    عدد الرسائل : 699
    العمر : 32
    الكليه/الفرقه/العمل : طالب في كلية الهندسه الألكترونيه الفرقهالرابعه قسم تحكم
    المزاج :
    تاريخ التسجيل : 03/09/2007

    رد: دروس في الميكروكنترولر PIC 16F84

    مُساهمة من طرف Admin في 5/11/2007, 8:32 pm

    STATUS Register

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

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



    ونلاحظ من الشكل السابق وجود خانتينBank 0 وهى التى يقوم المستخدم بالتعامل معها و Bank 1 هى نسخة طبق الاصل من Bank 0
    وايضا تقسم ذاكرة البيانات الى جزء علوى وجزء سفلى i
    والجزء العلوى من 00h الى 0bh وهو 11 مكان و يسمى
    Special Function Registers
    ](SFR)]
    و هو للتحكم فى الميكرو والاجهزة الخارجية المتصلة به
    iوالجزء السفلى يسمى
    General Purpose Registers (GPR)]
    وهو الذى يعتبر كرام [RAM]
    الدرس منقول من منتديات المهندسhttp://www.almohandes.org/vb/showthread-t_2987.html


    عدل سابقا من قبل في 5/11/2007, 9:17 pm عدل 1 مرات
    avatar
    Admin
    Admin
    Admin

    ذكر
    عدد الرسائل : 699
    العمر : 32
    الكليه/الفرقه/العمل : طالب في كلية الهندسه الألكترونيه الفرقهالرابعه قسم تحكم
    المزاج :
    تاريخ التسجيل : 03/09/2007

    رد: دروس في الميكروكنترولر PIC 16F84

    مُساهمة من طرف Admin في 5/11/2007, 8:43 pm

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

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

    bit 0 C (Carry) Transfer
    [size=25]وتكون قيمته تساوى 1 عندما يحدث زيادة فى ناتج اى عملية حسابية اى يزيد الناتج عن 255 وهى ال 8-bit المتاحة وفى هذه الحالة يضع الميكرو فى هذه البت 1 لانه لا يجد مكان لتخزين الناتج i
    فى فى حالة عدم تجاوز 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
    [size=25]وهذا البت يستخدم لتوضيح ان ناتج اى عملية حسابية او منطقيه يساوى صفر
    وتكون قيمته تساوى 1 عندما يكون ناتج العمليات يساوى 0
    وتكون قيمته تساوى 0 عندما يكون ناتج العمليات لا يساوى 0


    عدل سابقا من قبل في 5/11/2007, 8:59 pm عدل 1 مرات
    avatar
    Admin
    Admin
    Admin

    ذكر
    عدد الرسائل : 699
    العمر : 32
    الكليه/الفرقه/العمل : طالب في كلية الهندسه الألكترونيه الفرقهالرابعه قسم تحكم
    المزاج :
    تاريخ التسجيل : 03/09/2007

    رد: دروس في الميكروكنترولر PIC 16F84

    مُساهمة من طرف Admin في 5/11/2007, 8:46 pm

    bit 3 PD
    (Power-down bit)


    تكون قيمة هذا البت تساوى 1 عندما يبدا الميكرو فى العمل وذلك بعد عملية
    reset وتكون قيمته صفر عندما يبدا فى اعادة التشغيل وتنفيذ امر [color:a9a2=darkorchid:a9a2]SLEEP وتنفيذ هذا الامر يكون عند نقص القدرة المطلوبة .[/size]

    [bit 4 TO Time-out ; Watchdog overflow.]


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

    size=25]bit6:5 RP1:RP0
    (Register Bank Select bits)
    كما لاحظنا فى توزيع المسجلات انه يوجد ما يسمى Bank0 وBank1 فهذان البتان يتيحان لنا عملية اختيار البنك صفر او البنك واحد
    يجب ملاحظة ان عناوين الذاكرة تتنتهى بالعنوان
    FFh وهذا يساوى 255 ونجد ان الميكر PIC16f84 لديه 256 فلذلك سنحتاج بت واحد فقط وهو [color:a9a2=darkorchid:a9a2]RP0 اما RP1 فلن يتم استخدامه ولكن تم وضعه للتطوير المستقبلى وتكون قيمته دائما صفر [/size]
    اما RP0 تكون 1 عندما نستخدم Bank 1 وتكون 0 عندما نستخدم Bank 0]


    [size=25]bit 7 IRP
    (Register Bank Select bit)
    [size=25]ويتستخدم فى حالة العناوين الغير مباشرة حيث يقوم اختيار ال Bank المطلوب العمل بها
    avatar
    eng.E-A-A
    عضو نشيط
    عضو نشيط

    ذكر
    عدد الرسائل : 52
    العمر : 30
    الكليه/الفرقه/العمل : طالب بالفرقة الثالثة ــ تحكم ــ
    المزاج : الله المستعان
    المزاج :
    تاريخ التسجيل : 03/03/2008

    رد: دروس في الميكروكنترولر PIC 16F84

    مُساهمة من طرف eng.E-A-A في 5/4/2008, 1:56 am

    جزاك الله عنا خيرا وعلى امانتك العلمية.....................و
    gzak
    avatar
    eng.E-A-A
    عضو نشيط
    عضو نشيط

    ذكر
    عدد الرسائل : 52
    العمر : 30
    الكليه/الفرقه/العمل : طالب بالفرقة الثالثة ــ تحكم ــ
    المزاج : الله المستعان
    المزاج :
    تاريخ التسجيل : 03/03/2008

    رد: دروس في الميكروكنترولر PIC 16F84

    مُساهمة من طرف eng.E-A-A في 5/4/2008, 1:57 am

    نتمنى من الجميع المشاركة للتشجيع واثراء المنتدى ولو بكلمة
    avatar
    نور الله

    ذكر
    عدد الرسائل : 1
    العمر : 32
    الكليه/الفرقه/العمل : تعلم السويتش
    اليلد :
    تاريخ التسجيل : 21/04/2008

    رد: دروس في الميكروكنترولر PIC 16F84

    مُساهمة من طرف نور الله في 19/8/2008, 2:47 am

    شكرا و لك ألف تحية
    avatar
    عبدالباسط حسن a

    ذكر
    عدد الرسائل : 1
    العمر : 29
    الكليه/الفرقه/العمل : كلية الهندسة الكهربائية
    المزاج :
    اليلد :
    تاريخ التسجيل : 12/01/2013

    رد: دروس في الميكروكنترولر PIC 16F84

    مُساهمة من طرف عبدالباسط حسن a في 12/1/2013, 8:54 pm

    than you

      الوقت/التاريخ الآن هو 23/10/2017, 11:05 am