Contenu connexe
Similaire à تعلم الميكروكنترولر بسهولة الجزء الاول (20)
تعلم الميكروكنترولر بسهولة الجزء الاول
- 2. الرحيم الرحمن هللا بسم
بسهولة الميكروكنترولر تعلم
: مقدمة
عصر سمات اهم من أصبح كنترولر الميكرو أن فيه شك ال مما
هذه اهم ومن تصنيعة في الكبرى الشركات وتتنافس االتصاالت
وا وانتيل وتوشيبا ميكروشيب الشركاتالشركات من والعديد تميل
يشبه الميكروكنترولر أن تفاجأ سوف الميكروكنترولر هو ما ولكن
صغير حاسب ولكنه االلي الحاسب كبير لحدمدخالت له حيث
معالجة ووحدة ومخرجاتحيث الهواء تكيفات في كثيرا ويستخدم
االلي االنسان الربوت في ايضا ويستخدم الحرارة درجات في يتحكم
ويتحكالسيارات إلكترونيات في ويدخل الكهربية المحركات في م
بهذا اكتفي المقدمة في عليكم اطيل ال وحتى اساسي بشكل الحديثة
عالم الى سويا ولندخل القدراسراره لنكتشف الميكروكنترولر
وخفاياه
فتحي عيد استاذ :::: الكتاب مؤلف
- 4. الميكرو يشبه الصورة في كماكبير حد إلىICالمتكاملة الدوائر أو
على يحتوي حيث الحاسوب جهاز تركيبه في يشبه ولكن
1-عليه يطلق صغير معالجmicroprocessorبمعالجة يقوم
والضرب والطرح كالجمع الحسابية العمليات وعمل البيانات
وال والقسمةمثل المنطقية علمياتORوANDوNOT
2-راماتRAMلحد وتشبه العشوائي الوصول ذاكرة وهي
وصغيرة الحجم صغيرة انها إال الكمبيوتر رامات كبير
أيضا المساحةالجاري البرامج بيانات لتخزين وتستخدم
الكهربي التيار انقطاع عند محتواها وتفقد حاليا تنفيذها
3-EEPROMالذا وهي ::الدائمة كرةالميكروكنترولر في
الذاكرة وتشبهROMتمحو ان يمكن انها إال الحاسب في
وال مرات لعدة " بروجرمر " المبرمجة خالل من محتوياتها
الكهربي التيار انقطاع عند محتواها تفقد
- 5. ملحوظة
هذا فان الميكروكنترولر شحن أثناء الكهربي التيار انقطع اذا
المي تلف الى يؤديكروكنترولر
4-ميموري الفالشflash memoryالقرص يشبه وهو :
عليه البرامج تخزين يتم حيث ديسك الهارد او الصلب
5-واالخراج االدخال وحداتInput/Output Units
وهي االدخال وحدةPINرج اوولبمفاتيح تتصل التي الميكرو
باد الكاي أو التحكمkey padال تشبة مفاتيح لوحة وهيموجوده
أو الحاسبة االلة فيدرجة لقياس وهو ""سنسور الحساسات
شدة تقيس من فهناك الحساسات من كثيرة انواع ويوجد الحرارة
الضوئية المقاومات مثل االضاءةالهواء ضغط تقيس ما وهناك
تستقبل ما وهناك الهواء في الكربون اكسيد ثاني نسبة او
الموجات
رجو وهي االخراج وحداتلpinبلمبات تتصلledأو ليد
شاشةlcdمستمر تيار محركات او ترانزستور او ريالي او
ملحوظة
انه بمعني مشتركة الميكروكنترولر في واالخراج االدخال بنات
ذلك تعرف وسوف االخراج او لإلدخال رجل تستخدم أن يمكن
ماتركس الليد تصميم في
6-التايمرTimerالتع تنفيذ في يستخدمفي ليماتزمنمحدد
- 6. 7-تغذية ويتم الكهربية التغذية وحدة وهي سبالي الباور وحدة
الميكرومستمر بجهد5وتيار فولت25وسوف امبير ملي
للميكرو الكهربية الدائرة القادم الفصل في نشرح
8-محولADCإلى االنالوج التماثلية االشارات يحول وهو
ا واالشارة ديجيتال رقمية اشاراتاما هي قيمتان تأخذ لرقمية
عالية5فولت صفر منخفضة او فولت
االشارات محول اهمية وترجعADCال الميكرو ان الى
التماثلية االشارات مع مباشرة التعامل يستطيعاشارات مثل
االستقبال موجات او الصوت
9–يمكن زمن اقصى قيمة تحدد وهي نظام ساعة او مذبذب
الميك اوامر تنفيذروكنترولر
داخلي مذبذب بها كنترولر الميكرو انواع بعض ويوجدمثل
عائالتPIC18F
الميكروكنترولر تركيب شكل وهذا
- 8. الميكروكنترولر رجول تحديد أوال
االتية الصور مع الحظ
" رقم البن او الرجل تحديد يتم1الميكرو في "كالتالينصف ستجد
النقطة هذه بجوار صغيرة نقطة يسارها على وتوجد دائرةرقم البن
واحد
" رقم الرجل بحيث الرجول نهاية إلى التسلسل ويتم1اخر يقابلها "
الميكروكنترولر في بن واو رجل
على يحتوي ميكروكنترولر يوجد كما18بنيحتوي اخر ويوجد
على44واخر بن44بن
من ميكروكنترولر نستخدم سوف الكتاب هذه في أننا تعلم أن ويجب
النوعPICفي والنخيلي رام محالت في ويوجد مصر في المنتشر
القاهرةنستخدم حيث تحديدا اكثر نكون وسوفPIC16F877A
- 9. الميكروكنترولر في البنات وظائف
بشرح أقوم سوفجيدا فأنتبه الميكرو في البنات وظائف معظم
االهمية من الجزء فهذا القارئ عزيزيبا أن حيثقالكتاب اجزاء ي
الجزء هذا على مبنية
السابق الشكل فيللميكروPIC16F877Aيمكن ال رجول يوجد
فمثال عنها االستغناء
الرجول11و12الضر بالجهد الميكرو لتغذيةله وري
الرجل بجوار ستجد11VDDموجب جهد وهي5فولت
الرجل اما12VSSباالرضي توصل فهي
- 10. جهد على تحصل ولكي5و فولت25تستخدم أن يجب امبير ملي
االتية الدائرة
بطارية ستستخدم كنت اذا9فولت344امبير ملي
جهد منظم وتحتاج7805) ريجيرتور سي (اي
وتايضا حتاج2كيميائي مكثف14ميكروفاراد
ودايود
الدائرة وفتح لغلق مفتاح
اشارة لمبة(ليدال ام كهربي جهد هناك هل لتعرف )
ومقاومة1مع تتصل اوم كيلوLED
الجهد منظم شكل هو وهذا7805
- 11. أن حيث
للدخل طرف9فولت344امبير ملى
ارضي وطرفGND
يخرج خرج وطرف5فولت
( رقم الرجل1)
بجواراها مكتوب ستجدMCLRوتعنيmaster clearاعادة أي
في ريسترت زر مثل الميكروكنترولر تشغيل اعادة اي التشغيل
ريست هنا يسمى ولكن الكمبيوتر
اعادة ان تعني وهي ـــــــــــــــ فوقه شرطة وجود تالحظ وسوف
طالم المنخفض الجهد عند تعمل التشغيليقوم لن عالي الجهد أن ا
تشغيل اعادة بعمل الميكروالتالي الشكل في كما الدائرة وتوصيل
- 12. الرجول11و11
" "المذبذب النبضات مولد اطراف وهيOscillatorوتحتاج
كريستالة8بجوارهما ومكتوب هيرتر ميجاOSC1وOSC2
شيت الداتا في وستجدالكريستالة لعمل الضرورية المكثفات
التالي الشكل في كما الدائرة وتوصيل
مكثفين تحتاج سوف22الكرستالة مع بالتوازي متصلين بيكوفاراد
- 13. الرجولAN
وهي التماثلية او االنالوج االشارات بإدخال الخاصة الرجول وهي
8من تبدأ رجولAN0حتىAN7
ملحوظة
ذلك يتضح وسوف ديجيتال كا تستعمل أن يمكن االنالوج الرجول
الرجول باقي
منافذ مجموعة وهيPortsمخرجات أو كمدخالت تستخدم
Port AأوRA6من رجول: RA5RA0
Port BأوRB8من رجولRB0: RB7
Port CأوRC8من رجولRC0:RC7
Port DأوRD8من رجولRD0 :RD7
Port EأوRE3من رجولRE0 : RE2
الميكروكنترولر رجول باقي يبين والشكل
- 15. وظيفة من اكثر على تحتوي الميكروكنترولر بنات او رجول معظم
و
الرجل بجوار مكتوب ستجد26و25RXوTXالرجول وهذه
أخر ميكروكنترولر أو بالكمبيوتر الميكروكنترولر ربط وظيفتها
RXالبيانات تستقبل
TXالبيانات ترسل
الرجول17و16بجوارها مكتوب ستجدCCP1وCCP2
بتردد موجة انتاج مثل التردادات انتاج عن مسئولة وهي37000
هيرتزري مشروع عند تستخدم وسوفبسيط كنترول موت
الرجول وظائف معظم من انتهاينا قد نكون وهكذاPinsوسوف
الكهربية الميكروكنترولر خصائص عن نتحدث
- 16. يحتاج الميكرو أن انفا ذكرنا وكما
جهد5فولت
تيار25امبير ملي
ينتجة أن يمكن تردد اقصى24هرتز ميجا
انتهاي نكون وبذلكبالميكرو الخاصة شيت الداتا من نا
PIC16F877A
- 18. برنامجProteus
االلكترو الرسم برامج من غيره عن بروتس برنامج يتميزأنه ني
والميكروكنترولر االلكترونية العناصر من كبير عدد على يحتوي
تجربتها يمكن الدائرة تصميم بعد حيث المحاكاة خاصية فيه أن كما
البرنامج على
أنه وهي االهمية في غاية خاصية بروتس برنامج في توجد كما
قريب أنه نجد هنا ومن الميكروكنترولر على هيكس ملفات يتقبل
جداتشغيل أثناء ينبهك سوف الدائرة في خطأ وأي العملي الواقع من
الدائرة
كالتالي بفتحه نقوم سوف البرنامج تحميل بعد
قائمة منstartثمAll Programsبروتس ثم7اختر برفشنال
بجوارها ومكتوب الزقاء االيقونةISIS 7التالي الشكل في كما
- 20. استخدام يمكنSaveالمشروع لحفظ
هذه على أضغط االلكترونية العناصر إلى الوصول تستطيع ولكي
االداة
قائمة الشاشة يسار ستجد تحديدها وبعدDEVICEحرف ستجدP
التالي الشكل في كما
التالي الشكل في كما االلكترونية العناصر قائمة لتظهر علية اضغط
مقاومة مثل أضافتها تريد التي العناصر بكتابة قم"Resistor"
تظهر سوفثم العناصر قائمة إلى لتضاف كيلك دبل عليها اضغط
اكتبLED REDحمراء ليد لمبة اي
القائمة بإغالق قم ثم
لتظقائمة في االدوات هرDEVICE
- 21. في كما االتجاه تبديل اسهم خالل من العناصر اتجاه عكس يمكن كما
التالي الشكل
اضافة اردت واذاPowerDCاالتية االداة اختر
التالي الشكل في كما واالرضي بور سي دي بها قائمة لتظهر
البور عناصر أضافة يمكن كماهذه من متردد أو مستمر تريدة الذي
القائمة
- 23. ذكرها االنف العناصر قائمة بتحديد قم بسيطة دائرة برسم االن لنقوم
بالضغط وقمباقي واضف الرسم صندوق داخل واحدة مرة عليها
العناصر
التالي الشكل في كما
تشغيل قائمة على اضغط ذلك بعدRUNمع الرسم مربع اسفل
إلى المقاومة قيمة تعديل مالحظة334بدل14عليها بالضغط كيلو
نقرةمزدوجة
- 24. برنامج شرح من انتهينا نكون وهكذابشرح نقوم وسوف بروتس
بك ميكروسي وهو للميكروكنترولر الشفرة كتابة برنامج
بك ميكروسي برنامج
mikroC PRO for PIC
تعطي وهي الشركة موقع من مجاني البرنامج تحميل يمكنك كما
بالغرض تكفي لكنها اقل مساحة
كالتالي واجهته لتكون بفتحه قم البرنامج تحميل بعد
على أضغطNew Projectجديد مشروع النشاء
- 26. فيها مكتوب ستجدNameProjectالمشروع اسم اي
ستجد كماProject Folderالمشروع حفظ مكان أى
كستجد ماDevice Nameالميكروكنترولر اسم أى
حددPIC16F877A
ستجد كماDevice Clockالمذبذب أو الكرستالة مقدار وهي
تكون وسوف8ميجاهيرتز
أضغط ذلك بعدNextكالتالي الكود نافذة تظهر حتى
- 27. الرئي الدالة داخل الكود كتابة مكان ستجدسيةvoid main()
ويكمن التعليق أضافة ثم "//" بإضافة تعليق تكتب أن يمكن كما
داخل كود كل وظيفة فتكتب متشعب البرنامج كان إذا التعليق أهمية
البرنامج
القوائم **
نذكر سوف قوائم على سي ميكرو برنامج يحتويالقوائم هذه أهم
قائمةFile
- 28. على تحتوي
Newجديد ملف أي
Openموجود ملف فتح
Saveالحالية التعديالت حفظ
Save Asجديد بإسم المشروع حفظ
Exitالمشروع اغالق
قائمةEdit
على تحتوي
Undoالكود في تراجع
Redoالتراجع عكس
Cutكود قص
Copyكود نسخ
Pasteالكود لصق
Deleteحذتحديده بعد كود ف
Findاالكواد داخل نص عن البحث
GOTO Lineمعين سطر إلى الذهاب
- 30. قائمةBuild
بامتداد ملف تنشأ أنها حيث االهمية غاية في قائمة وتعتبرHEX
كنترولر الميكرو داخل تحميله أو حرقه أو شحنه يتم الذي
النافذة هذه اسفل تظهر صحيح الكود يكون وعندما
صح الكود أن على ليدلاالحمر باللون أخطاء تظهر ذلك وغير يح
- 32. السيري كابل توصيل يتم ثمبالمبرمجة الوالكمبيوتركالتالي
برنامج شغل ذلك بعدPICPgm Programmer
- 35. كابل أفصل الشحن اتمام وبعدالميكروكنترولر انزع ثم السيريال
برفق
مع التعامل لنا ويتبقى الفصل هذا اتماننا قد نكون وبذلك
المختلفة ومكتباته ودواله الميكروسي
الموفق وهللا هذا
- 37. 2
االول المشروع
بتصميم المشروع هذا في نقوم سوفمرات لعدد تضيئ ليد لمبة
تغلق ثم محدد
العناصر واضف قبل من تعلمت كما بروتس برنامج بفتح قوم
التالية االلكترونية
1-led green
2-PIC16F877A
3-Resistor
مقاومة و الميكروكنترولر و خضراء لمبة وتعني
العناصر صندوق من لتحديدة الميكروكنترولر على بالضغط قم
االلكترونية
- 38. 3
الميكركنترولر سيظهر الرسم صندوق داخل مره بالضغط ثم
الرسم صندوق منتصف في وضعه الماوس على من اصبعك ارفع
بجوار المقاومة ضع ثمRB0االرضي ضع ثم الليد وضعGND
كالتالي
- 39. 4
المشروع عناصر وضع بعد السهم رمز على بالضغط قم
للسهم االيسر الزر ترك ثم المقاومة نهاية على بالضغط قم
النقطة إلى السهم وتمريرRB0بالماوس مرة اضغط ثم
الى المقاومة قيمة عدل ثم333مرتي عليها بالضغطبالماوس ن
كالتالي
- 40. 5
كهذا المشروع ليصبح
رمز من المشروع بحفظ قم ذلك بعدsave
مشروع نحفظ لكي المجلد وضعت اين وتذكر مجلد في وضعه
معه ميكروسي
- 41. 6
تذكر عليك ويجب ميكروسي مشروع وهو االن المهم الدور يأتي
االتي
يجبتكون أنا نهايةالمنقوطة بالفاصلة لكود;
كول سمى تسمى التي
االمر نستعمل كخرج البورت نهيأ كي
TRISB.B0=0;
االمر نشرح وسوف
امر اوالTRISبورت هنا واخترنا البورت ثمB"." دوت ثم
ثمBالبن او الرجل رقم ثم ثنائي تعني وهيوهي3
تعم سوف البورت أن ميكروسي ليعرف بالصفر نساويها ثمل
السطر نهاية في المنقوطة الفاصلة تنسى وال كخرج
االمر
PORTB.B0=1;
PORTB.B0=0;
االمرPORTالجهد توصيل سيتم هل ميكروسي نخبر5فولت
كان اذا اما يوصل اذن واحد يساوي كان اذا ال ام الرجل على
مغلق اذن صفر يساوي
لألمر المعالجة سرعة والن8فسوف الثانية في مليونذلك يتم
االمر خالل من زمنية مسافة وضع ويجب كبيرة بسرعة
Delay_ms(1000);
والرقم1333تغيرها ويمكن ثانية بالملي وتقدر الزمنية المدة هو
الحلقةfor
كالتالي وشكلها المرات من محدد عدد الكود بتكرار تقوم الحلقة هذه
- 42. 7
For(1;2;3){
تكراره المراد الكود
}
المعامل1والعد بداية هو
المعامل2التكرار مرات عدد
المعامل3قيمةالزيادة
مثال
For(x=0;x<5;x++){
}
المعامل على ميكروسي يتعرف كي ولكنXتعريفه يجب
الرئيسية الدالة قبل أي العامة التصريحات قسم في وذلك
Void main()
المتغير اسم وضع ثم رقمي متغير بوضع نقوم
Int x;
والمتغيضرورية وهي الكود كتابة عملية تسهل معامالت هي رات
تقلق ال لذلك عنها االستغناء يمكن وال
حيثف تتغير قيمتها أنللمتغير ابتدائية قيمة بوضع قمناxوهي
صفروقيمةxالحلقة داخل تتغيرforواحد بمقدار تزيد حيث
كالتالي النهائي والكود
- 43. 8
ذلك بعدقائمة من نقومBuildبأختيارBuildالملف انشاء ليتم
Hex
على بالضغط قوم بروتس مشروع إلى الهكس ملف نضيف ولكي
التالية النافذة لتظهر مرتين بروتس داخل الميكروكنترولر
الى التردد بتعديل قوم8ميجاهيرتز
اضغط ثم انشأته الذي الهيكس ملف بأختيار قم ثمOK
بالضغط نقوم ثمالمشروع لتجربة التشغيل زر على
- 44. 9
ملحوظة
البور نوصل ولم المستركلير دائرة وال المذبذب دائرة نستخدم لم
الدائرة في اما بروتس برنامج في عنهم االستغناء يمكن النه وذلك
ذكرهم السابق دوائر الثالث بدون تعمل فال العملية
ال التجارب في االلكترونية العناصر شكلعملية
1-بطارية9فولت
2-بطارية جاك
3-ميكروكنترولرPIC16F877A
- 46. 11
الثاني المشروع
باستمرار لمبة من أكثر واطفاء اضائة
مجلد في واحفظه بروتس برنامج بفتح قم
العناصر بإضافة وقماالتية
1-led red
2-Resistor330
3-PIC16F877A
التالي كالشكل المشروع وارسم
- 47. 12
ميكروسي جديد مشروع بفتح قم
سابقا تعلمت كما واحفظه
لذلك نهاية ماال إلى وتغلق الليدات تضيأ أن المشروع هدف واالن
االمر نستخدم سوف
While(1){
}
الشرط نضع عندما االمر وهذا1النهاية ما إلى يعمل
نستخدم سوف لذلك ليد من أكثر التصميم رسم في الحظت ثانيا
االمر
TRISB =0B00000000;
من البورت كل أن يعني وهذاB0الىB7كمخرج تستخدم سوف
االمر مع ينطبق وهذا
PORTBليصبحPORTB=0B11111111;كل أن يعني وهذا
منافذBتعمل
كامال الكود واليك
- 48. 13
االتي مع الحظ
0bاما قيمة تأخذ ثنائية ارقام تعني3او1
هناك ان بما8يصبح فسوف نستخدم سوف ارجل0b00000000
كالتالي عشر سادس ارقام إلى التحويل يمكن
نضيف0xالتبويب خالل من ونحولهاQuick Converter
ساد ارقام إلى تحويله ويتم ثنائي الرقم نكتب حيثفي كما عشر س
التالي الشكل
كالتالي الكود ليصبح
كهذا التجربة وتصبح
- 49. 14
الثالث المشروع
وغلقه الليد بأضائة يقوم وفتح غلق مفتاح اضافة وهو
وحفظه جديد بروتس مشروع بإنشاء نقوم اوال
التالية االلكترونية العناصر اضافة ثم
Led green
Switch
PIC16F877A
Resistor
التالي بالشكل المشروع وارسم
- 50. 15
تم بل مباشرة المفتاح توصيل يتم لم أن أوال االتي معي الحظ
بجهد توصيله5ومقاومة فولت13عالي الدخل يكون وهكذا كيلو
او1دخل ويصبح باالرضي الجهد يوصل عليه الضغط وعند
الرجل3م أو فولتنخفض
ميكروسي مشروع افتح
االتي والحظ
نجعل كي أوالالرجلB0التالي االمر نكتب كدخل
TRISB.B0=1;
الشرط اداة نستخدم سوف وكذلكIF
وifكالتالي وصيغتها ""اذا تعني
if ( 1 ) {
2
}
1الشرط
2الشرط جواب
كالتالي فتكتب اللمبة تضيأ المفتاح على الضغط عند نريد فنحن
If(portb.b0==0){
- 51. 16
Portc.b0=0;
}
العبارة نستخدم ويطفأ يضيئ وكيelse
وإال وتعني
الكود التالي الشكل وفي
ملف أضفhexإلى التردد وعدل بروتس في الميكروكنترولر إلى
8ميجاهيرتز
كالتالي النتيجة لتصبح
هكذا المفتاح توصيل عند
- 52. 17
هكذا المفتاح فصل وعند
إلى ونتجه ماتركس الليد في المشاريع من القدر بهذا ونكتفي
القادم الفصل في الصوت إخراج مشاريع
- 54. 19
طريق عن يكون الصوت أخراج
المكتبةsound
العناصر وأضف جديد بروتس مشروع افتحالتالية االلكترونية
1-speaker
2-resistor
3-PIC16F877A
وسميه جديد ميكروسي مشروع افتح ثمsound
التالي الكود واكتب
- 55. 20
واضحة والمكتبة
فمعاملsound_initسيتصل الذي الرجل ورقم بالبورت للتعريف
بالسماعة
واماsound_playولها السماعة لعملالتردد االول معامالن
ثانية بالملي التردد زمن والثانيفي نغمات عن البحث ويمكنك
االنترنت
انهينا قد نكون وبهذاواخراج بالنغمات الخاص الخامس الفصل
الصوت
الموفق وهللا هذا
- 57. ا ا ا
ﻡButton
ر ا ﻡ آ ا م
ت ﻡ ﻡ ار
١-ﻡ وی ر ا رت ا اﺱ&
٢-رت ا ا او س ا ر
٣-ر وی ر ا زﻡ
٤-ﻡ ر ا1ﻡ او0
ﻡ ودا ا او ا ا ی ه
ا ﺥ ی ا
ل ﻡ
- 59. ا ا ا
ا د ا ﻡ ﻡ ا
ﺕ
ره ﺕ وز ی ا ا د ا ﻡ ﻡ ﺕ ن ا٢٠
اء ﺱ ك ﻡ ا اردﻥ ذا ﻡ و اﻡ ﻡDC or AC
د ا ا و وآ ا ﺱ وآ ﺱ ذا ﻡ
ﻡ ا اف ﺕ ی ﺹ ی
ﺹ وﺕ ی ة ﺹ ة دا م ﻥ ف ﺱ او
ری ﺝ١٢آ د ا ن ی ف وﺱ
رت ﻥ ف ﺱ اﻥ د ا ﻡ ی آB0رت و ج آ
C0رت أي ﺥ آB0ا ی ف ﺱرت وC0
ا ی آ ح یﺥ ﻡ
ﺕ ا ة ا ا
- 60. اوف ﺱﻥاح آ ر ﺱ اﻥرت ا أنB0
رت ا و وﺕ ة ا ا ﺕ ف ﺱ ا ی ﻡ
B0ﻡ ة دا ن ﺕ ف ﺱ ﺕ و ة ا ا ﺕ ن
وﻡ ا ب م ﻥ ف وﺱRBر ﺱ اﻥآ
RB=2.2*RL*HFE
RBو ة ا وﻡ ﻡRLو ا وﻡ ﻡHFEﻡ ﻡ
و ا ر ﺱ اﻥ اﺕ ا ا ع ﺝ ا وی ا
ر ﺱ اﻥ ﺕ ﻥ ا ﻥ2N2222أﻥ ﺱ م ﻡ وه
وﻡ ﻡ م ی١اوم آ
ﻡ او د دای م ﻥ ﻥا آ ﺝ أى ﺕ ی
وف ا وﻡ ﺕ و وآ ار ی د ای ا أن
- 61. ﺕ ی م ﻥ ف ﺱ وا اﺕ ا ا
ا ی ای ا أن آ ی ا وﻡ ا ا
دای م ﻥ ف ﺱ ا ر ا٣٠٠ا ﻡﻡ
ت ری ا ة دا م ی د ای ا ﺹ ﺕ أن آ
د ا ﻡ ﺹ ي ری م ﻥ٢٢٠دد ﻡ ر ﺕ
ة دا ﻡ ن ﺹ ی اف ا ﺥ ي ی وا
ذات رﺝ ا ة ا ا ﻡ و و وآ ا٢٢٠
آ ا
ا وا ا وا
- 62. ا ا ا
ك ﻡ ا ا
ك ﻡ ا یDCر ا ا اذا
اا ب ا وذكDC
ة ا ة دا ل ﻡ ذ ویHف اﻥ
H
ا ا ﻡ ك ا اذا ﻡف اف
ا ه ر وا ا
- 63. ی ا م ﻥ ف ﺱ ك ا ا اردﻥ و
ﺱ ا آ و ا آ ا اف
- 64. ر ﺱ اﻥ ا ال اﺱ ی آ و
ة دا م ﻥ ف ﺱ اوﻡ ا وی ح آ ر ﺱ اﻥ ا
ة ا ف لBر ﺱ اﻥ
آ ا وی
- 65. ر ﺱ اﻥ ة ا اف ا١ﻡ٣ی
ة ا اف ا٢ﻡ٤
و وآ ا ل ﻡ ذ ا وی
- 68. ا ا ا
ا ا
ت اLCD
:
ف آ وو ا او
16151413121110987654321
- 69. ١-Vssار
٢-Vddآ٥
٣-Voا ا
٤-RSا رة أ ی
٥-R/Wا/ا آرة
٦-ENوا ا ا ت
٧-D0م ﻡ ت ا
٨-D1م ﻡ ت ا
٩-D2م ﻡ ت ا
١٠-D3م ﻡ ت ا
١١-D4ا ﻡ ت ا
١٢-D5ا ﻡ ت ا
١٣-D6ا ﻡ ت ا
١٤-D7ا ﻡ ت ا
١٥-LED+ا ﺝ ا ف ا٥
١٦-LED-ا ر ا ف ا
و وآ اف ا ﺹ ﺙPIC16F877A
ف ا١و٣و٥رGND
ف اVddا ﻡ٥
ف اRSف ا ﻡRB2
ف اENف ا ﻡRB3
ف اD4ﻡف اRB4
ف اD5ف ا ﻡRB5
ف اD6ف ا ﻡRB6
ف اD7ف ا ﻡRB7
ف اLED+ا ﻡ٥
ف اLED-ر ا ﻡ
- 71. ا ا هو وآ ا ﻡ ﺹ ا ا اف أ ی ص د
ﺙ
Lcd_Init();
ﻡ ی صLCD
ﺙ
Lcd_Cmd
ا ا واﻡ ا ل رﺱ ص ﻡ ا ا ه
ل رﺱ ا أﻡ وه ﻡ ﻡ و
ل ﻡ
Lcd_Cmd(_LCD_CLEAR);
ﻡ ا ﻡ ﻡ دة م وی ا ﻡ ا ا ه م ی
Lcd_Cmd(_LCD_CURSOR_OFF);
ای ای وی ا ا ﻡ ف ی ص ﻡ ا ا ه
ﻡ ا
Lcd_Cmd(_LCD_FIRST_ROW);
ول ا ا ا ا ﻡ ی
Lcd_Cmd(_LCD_SECOND_ROW);
ﻡ یا ا ا ا
Lcd_Cmd(_LCD_UNDERLINE_ON);
ا ﻡ ی
Lcd_Cmd(_LCD_MOVE_CURSOR_LEFT);
ل ف ا ا ا ه ی
Lcd_Cmd(_LCD_MOVE_CURSOR_RIGHT);
ا ف ا ا ا ه ی
Lcd_Cmd(_LCD_TURN_ON);
- 72. ا
Lcd_Cmd(_LCD_TURN_OFF);
ا
ﻡ ا
Lcd_Chr_Cp('e');
ا وف ا ا ا ف
Lcd_Chr
ت ﻡ ﻡ ث ﺙ و ا ف
ا ر
د ا ر
ف ا
ل ﻡ
Lcd_Chr(2, 3, 'i');
ﻡ ا
Lcd_Out_Cp("Here!");
ﻡ ف ا ی آا ب
ﻡ ا
Lcd_Out
ت ﻡ ﻡ ث ﺙ و ا آ
ا ر
د ا ر
ا
ل ﻡ
Lcd_Out(1, 3, "Hello!");
- 73. ا ﺱ ا ی آ
ل ﻡtoolا ا آ
ا ة ا
- 74. ﺙد ا زر ا ﺙ ة ی ي ا ا وس د
ا زر ﺙ
ﻡ ا ات ا
اآ ﺙ
CustomChar(2, 2);
آ ا
ا ح و ن اآ رب ی ی ا وLCD
- 75. ا ا ا
ﻡ ا ا
م ر ا ﻡ ﻡ ا
Keypad
ﺕ
د ا او
ن ﻡ وی3x4و4x4
ﻡ ﻡ ف وﺱ4x4
اف ا ﺹ ﺕ
- 76. ف ا١ﻡRD0
ف ا2ﻡRD1
ف ا3ﻡRD2
ف ا٤ﻡRD3
افAﻡRD4
ف اBﻡRD5
ف اCﻡRD6
ف اDﻡRD7
وﺱ ا د ا د آ ح
م ر ا ی وع ﻡ م ف ﺱ را اﺥ
د ا
وﺕ ﻡ وع ا او
- 79. ﻡ أ ا ا ا ا ا ح ا م ور
ح ا ج ﺕ ر ا
ا وا
- 80. ا ا ا
ا ا ا
اGLCD
ا ا ت ا
:
ف آ وو ا او
2019181716151413121110987654321
١-Vssأر
٢-Vccآ٥
٣-Voا ا
٤-RSا رة ا ی
٥-R/Wرة ا آ ا
٦-ENوا ا ا ت
٧-D0ت ا
٨-D1ت ا
٩-D2ت ا
١٠-D3ت ا
- 81. ١١-D4ت ا
١٢-D5ت ا
١٣-D6ت ا
١٤-D7ت ا
١٥-CS1ی ا ر ا
١٦-CS2ا ر ای
١٧-RSTا دة ا
١٨-Voutا ج
١٩-LEDAا ا ا٥
٢٠-LEDKا ر ا ا
ا ﺹ
او
D0D7ﻡRD0RD7
CS1ﻡRC0
CS2ﻡRC1
RSﻡRC2
RWﻡRC3
- 83. Glcd_Init();
ا ی
Glcd_Fill(0);
ا م ید ﻡ ن ا ﻡ او
ا ی وﺹ ن ا وا ﻡ ﻡ و
Glcd_Dot(0, 0, 2);
ت ﻡ ﻡ ث و رﺱ
وی ا ر ا ا ی ول ااﻡ٠١٢٧
اوی أﺱ ا ر ا ا یﻡ ا٠٦٣
ن ا ی ا
Glcd_Line(0, 0, 20, 30, 1);
ت ﻡ ﻡ و رﺱ
ﻡ ا وی ا ر ا ا ای ول ا٠١٢٧
ﻡ ا وی أﺱ ا ر ا ا ای ا٠٦٣
اا ر ا ا ی
أﺱ ا ر ا ا ی ا ا
ن ا ﻡ ا
Glcd_V_Line(5, 25, 10, 1);
ت ﻡ ﻡ ار و دي رﺱ
ر ا ا ای ول اأﺱ ا
أﺱ ا ر ا ی ا
ار ا ا یأﺱ ا
ن ا ی ا ا
Glcd_H_Line(10, 50, 20, 1);
ت ﻡ ﻡ ار و ا رﺱ
ا ر ا ا ای ول ا
أﺱ ا ر ا ی ا
ا ر ا ا ی ا
ن ا ی ا ا
- 84. Glcd_Rectangle(5, 5, 40, 40, 1);
ت ﻡ ﻡ و ﻡ رﺱ
ا ای ول اى ا ا ﻡ ا ر ا
ى ا ا ﻡ أﺱ ا ر ا ا ای ا
ا ا ﻡ ا ر ا ا ی ا
ا ا ﻡ أﺱ ا ر ا ا ی ا ا
ن ا ی ﻡ ا
Glcd_Rectangle_Round_Edges(5, 5,
40, 40, 12, 1);
و اف ا ي دا ﻡ رﺱﺱت ﻡ ﻡ
ى ا ا ﻡ ا ر ا ا ای ول ا
ى ا ا ﻡ أﺱ ا ر ا ا ای ا
ا ا ﻡ ا ر ا ا ی ا
ا ا ﻡ أﺱ ا ر ا ا ی ا ا
ا ة دا ﻡ ا ﻡ ا
ن ا ی دس ا ﻡ ا
Glcd_Rectangle_Round_Edges_Fill(5,
5, 40, 40, 12, 1);
ا ه ت ﻡ ﻡ ﺱ و ن ﻡ اف ا ي دا ﻡ رﺱ
Glcd_Circle(50, 50, 10, 1);
ت ﻡ ﻡ ار و ة دا رﺱ
ا ر ا ة ا ا آ ﻡ ول ا
أﺱ ا ر ا ة ا ا آ ﻡ ا
ة ا ا ا
ة ا ا ن ا ا
Glcd_Circle_Fill(50, 50, 10, 1);
ا ه ت ﻡ ﻡ ار ﻡ ة دا رﺱ
- 85. Glcd_Write_Char('C', 10, 2, 1);
ت ﻡ ﻡ ار و ف آ
ف ا ول ا
اا ر ا
أﺱ ا ر ا ا
ف ا ن ا ا
Glcd_Write_Text("Hello world!",
10, 2, 1);
ت ﻡ ﻡ ار و آ
ا ول ا
ا ر ا ا ای ا
ا ا ای اأﺱ ا ر
ا ن ا ا
رة ﺹ رﺱ
ﻡTools
ا
- 86. ا ة ا
زر ﻡload BMPزر ﻡ د ا ا رة ا دcopy code
ﻡ ا ات ا د ا
آ
- 87. أآ
Glcd_Image(bank);آbankرة ا اﺱ ه
ا
آ
Glcd_Ext_Image(153608);
رﺝ رة ﺹ ض ی
Glcd_PartialImage(10, 12, 10, 15,
16, 32, image);
ت ﻡ ﻡ ﺱ و دة ا ا رة ا ﻡ ء ﺝ ض ی
ا ر ا رة ا ای ی ول ا
اأﺱ ا ر ا رة ا ای ی
اﻡ ب ارة ا ض
ا اﻡ ب ارة ا ل
ﺹ ا رة ا ض ﻡ ا
ﺹ ا رة ا ل دس ا
رة ا اﺱ ا
- 88. Glcd_Ext_PartialImage(10, 12, 10,
15, 16, 32, 0);
ا رﺝ رة ﺹ ﻡ ء ﺝ ض یت ﻡ ﻡ ﺱ و دة ا
ا
Glcd_Write_Text_Adv("GLCD", 0, 0);
أ وا ا ت ا ا ا
ت ث و
١-ا
٢-ا ر ا
٣-أ ا ر ا
Glcd_Set_Font_Adv(&myfont, 0, 0);
ا ی ي ا ا ع د ی
ت ﻡ ﻡ ث و
ا ع ول ا
اا ن
ا ا ی ا
Glcd_Set_Ext_Font_Adv(173296, 5,
7, 32);
رﺝ و ا ی ي ا ا ع د ی
ت ﻡ ﻡ ث و
ا ز ﺝ م ا ا ان
ا ن ا
ا ا ی ا
Glcd_Set_Font(&myfont, 5, 7, 32);
ا ي ا ا ع د
ت ث و
ا ا ول ا
- 90. ا ا ا
ا ﻡKeyboard
ﻡPs2
ﻡ هاو وآ اا
Ps2ﻡ ن ی٦ا رة ا آ اف ا او ت
- 91. اف ا و
١-ت ﻥDATA
٢-ﻡNC
٣-ارGROUND
٤-آ٥Vcc
٥-ا ددCLCK
٦-ﻡNC
و وآ ا ﻡ ﺹ وی
ول ا ف اDataﻥ ا ف واCLCKوا
دة ﻡ اف ی ﻡ
ا ت ﻡ ﻡ
١-Ps2_Config
ی وPs2
٢-Ps2_Key_Read
ا ﻡ ط ا ح ا ا
ت ﻡ ﻡ ث ﺙ و
أ-ا:-وف آ وی ط ا ح ا
أﺱASCII
ب-ص:-دي ف ام أﻥ ﻡ ص ح ﻡ ه ه
ا ف وا م ر ا ﻡ
ا ی ص ف ن آ اذا١
ا ی دي ف ن آ اذا٠
- 92. ج–ام ا ی ه ا ا ع ارﺝ ی
ح ا ی)ح ا ﻡ ك ی ر أي(
ا ا وی
٠ا ح ﻡ ی
١ا ی
ر ا وی٠رة ﻡ وف آ ی
ا ﻡ أ أﺱ وف وTOOLS
- 95. ف ﺹ ی ﻡDataف وCLCK
ﺝ ر٥وﻡ وﻡ١آاوم
ا وا
ا وا
- 96. ا ا ا
ﺱ ﺱ ا وال وا ات ا
وﺱ اMikroC
ﺕ
ات ا اع ا او
١-char
٢-رshort
٣-ﺹ رint
٤-ی رlong
٥-ي آ دfloat
ا واذارةUnsignedا ا ی
ا ول ا وا
آ وﻡ
- 97. وﺱ ا دوال اه
ا اSizeOf
ا ات ا ﻡ وﺕ ی ا ﺕ
ی ا اد وا ا م ر وا
ل ﻡ
Char x="7";
SizeOf(x);
ا اabs
ت و اذا ا ا ﺕ
ل ﻡ
Result=abs(-12);//12
ا اMax
ﻡ اآ ﺕ
ل ﻡ
Result=Max(123,73);//123
ا اMin
ى ا ا ﺕ
ل ﻡ
Result=Min(123,73);//73
ا اrend()
ﻡ ا ﺕ٠ا٣٢٧٦٧
- 98. ل ﻡ
Result=rand();
ﺱ ا م ر ا ل ﺕ ا وال ا أه ﺕ
ﺹ ی ت ﺵ ا ا
ٍ ا اShotToStr
ﺱ ا ا ا ل ﺕ
ل ﻡ
Short t=22;
Char txt[4];
ShortToStr(t,txt);
ا اIntTOStr
ﺱ ا ا ا ل ﺕ
IntToStr(t,txt);
ا اFloatToStr
ﺱ ا ي ا ا ل ﺕ
FloatToStr(t,txt);
ا وا ا وا ا ه
- 99. ا ا ا
دس ا ا
ا ا ل ا
اول ا وADC
ل د ا ج ا رة ا ه
ا و وآ ا
ج ا رة ا ان وف ا و
رة ا دة و
ل اوا او ا
ل ا أ وADCا
ر وﺱ ا ر ﺱ ر ا
ارة ا درء ا ة ر وﺱ
ا ل اداة ه ر وا
ا ال آ
زن ا س او ر ﺱ ذ
ة ه ﻩ أاو و
رة وه ﻁ ا ء ا
ا ء آ اد ا
- 100. ار اى أن و
ت ا و ة ه
در ر ﺱ ر ا ل و
ء ا أن ارة ا
س وا اض و
ارة ا هء آ
ا و ا ا ل و
ء ض ا اد ا و
و وآ ا ل ا اف اﻁ
رت ا نAوEار و
ANج ا اي
ذ وPIC16F877A٨اف اﻁ
وه ج اRA0وRA1وRA2وRA3و
RA5ٌوُRE0وRE1ٌُوRE2
- 101. ADC
ADC_Init();
ا د ا ا ه
tmp = ADC_Read(2);
ا ا ا ه د ا ا ه
ف ا ر ه واﺡ ﻩ وAN
ا ل راADC
س ا م ف و
و ا
وع ا
- 102. ة ة اPOT HG
١ف ا ا ﺹ و اوم آAN0
ا آ
د ا
- 104. ا ا ا
ر ﺱ او ﻡ أي د ﻡ ب ی
Vtا ع ﻡ
Vomaxا
Vominا
Vt=Vomax-Vomin
Stر ا ات و ع ﻡ
Smaxر ا ا
Sminر ى ا ا
St=Smax-Smin
Kا
K=Vt/St
Outا د ا
Vonowا ج ا
Out=(Vonow-Vomin)/K+Smin
- 108. ٤
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Bit7
0
1
Bit6
ADC
0
ADC
1
اINTCON
- 112. ٨
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Bit7
option_reg
0
Bit6
RB0
Intcon
اOPTION_REG