| ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO | |
|
+8ELTIYEB KROPI bouridir eng_mo7amed_3ly أيمن الطيب 11 خالد الاحمر metwally.mustafa mr/slc500 F.Abdelaziz 12 مشترك |
|
كاتب الموضوع | رسالة |
---|
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 1:12 | |
| ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى PIC Microcontrollers – Programming in C والمترجم (الكومبيلر) mikroC PRO المرجع الأساسى على الرابط : http://www.mikroe.com/eng/products/view/285/book-pic-microcontrollers-programming-in-c/ الفصل الأول عالم الميكروكونترولر World of Microcontrollers 1.1 مقدمة عادة يعتقد المبتدئين في مجال الالكترونيات أن الميكروكونترولر "المتحكم الدقيق" microcontroller هو نفسه الميكروبروسسور "المعالج الدقيق" microprocessor . هذا ليس صحيحا. انهما يتختلفان عن بعضها البعض في نواح كثيرة. الفارق الأول والأهم لصالح الميكروكونترولر هو القيام بالوظيفة . فلكى يمكن استخدام الميكروبروسسور يجب أن يضاف إليه مكونات أخرى , يأتى فى مقدمتها الذاكرة memory .على الرغم من أن الميكروبروسسور يعتبر آلة حاسبة قوية إلا أنه غير معد للاتصال communicating مع البيئة المحيطة. يجب استخدام دوائر خاصة لتمكين الميكروبروسسور من الاتصال بالبيئة المحيطة .هذا ما كان عليه الأمر في البداية وما زال نفسه إلى اليوم . من الناحية الأخرى يتم تصميم الميكروكونترولر ليكون كل هذه الأجهزة في جهاز واحد .فلا توجد هناك حاجة إلى أي عناصر خاصة خارجية فى تطبيقه لأن جميع الدوائر اللازمة والتى تنتمى إلى الأجهزة المحيطة تم بناؤها بالفعل داخله .بهذه الطريقة يتم توفير الوقت والمساحة اللازمة لتصميم الجهاز. كافة ما يستطيع الميكروكونترولر فعله لجعل الأمر أكثر سهولة لتفهم أسباب مثل هذا النجاح الكبير للميكروكنترولر فسوف نلفت انتباهك لبضع دقائق بالمثال التالي. منذ حوالى عشر سنوات كان تصميم جهاز الكتروني للتحكم في مصعد مبنى متعدد الطوابق صعب للغاية حتى بالنسبة لفريق من الخبراء. هل سبق لك أن فكرت فى ما هي المتطلبات التى يجب الالتزام بها فى المصعد العادي؟ وفى كيفية التعامل مع الوضع عندما يقوم شخصين أو أكثر باستدعاء(طلب) المصعد في نفس الوقت؟ وما هو الطلب الذى له الأولوية؟ وفى كيفية التعامل مع مسألة الأمان؟ وانقطاع الكهرباء؟ العطل ؟ سوء الاستخدام ؟...... ما يأتي بعد حل هذه الأسئلة الأساسية هي عملية مضنية من تصميم الالكترونيات المناسبة باستخدام عدد كبير من الرقائق الخاصة المتخصصة. اعتمادا على تعقيد الجهاز، يمكن أن تستغرق هذه العملية أسابيع أو أشهر. عند الانتهاء يحين وقت تصميم لوحة الدوائر المطبوعة وتجميع الجهاز. جهاز ضخم! وهذا العمل يأخذ أمدا طويلا . وأخيرا عندما يتم الانتهاء من كل شيء والاختبار لمرات عديدة تأتي اللحظة الحاسمة عندما تقوم بالتركيز وتأخذ نفسا عميقا وتقوم بتوصيل مصدر القدرة . عادة هذه هى النقطة التي يتحول فيها التصميم إلى عمل حقيقى حيث أن الأجهزة الألكترونية فى الغالب لا تبدأ العمل على الفور.إستعد لعدم النوم لليالى طويلة والقيام بالتصحيحات والتحسينات .. ولا تنسى نحن ما نزال نتحدث عن تشغيل مصعد عادى . وأخيرا عندما يبدأ الجهاز فى العمل التام الصحيح ويرضى (يقتنع) الجميع، وأخيرا تحصل على مستحقاتك لما قمت به من عمل فسوف تصبح العديد من الشركات مهتمة بعملك. بالطبع إذا كنت محظوظا فسوف يأتيك عرض من مستثمر جديد. هو مبنى جديد به أربعة طوابق أخرى . هل تعلم ما هو عليه؟ هل تعتقد انك تستطيع ان تتحكم بالمصير؟ هل سوف تقوم بعمل جهاز عام يمكن استخدامه في المباني من 4 حتي 40 طابق كتحفة من الالكترونيات؟ حسنا ، حتى لو كنت تخطط لصناعة مثل هذه الجوهرة الإلكترونية ، فسوف تجد المستثمر ينتظر أمام بابك ليطلب منك وضع كاميرا في المصعد . أو موسيقى مريحة فى حالة حدوث عطل بالمصعد .أو مصعد ذو بابين . هذا ما كان عليه الحال حتى تم تصميم الميكروكنترولر الأول , صغير وقوى ورخيص ومنذ ذلك الحين وكل شيء أخذ اتجاه آخر... الآن أصبح بالإمكان بناء شريحة الكترونية واحدة قادرة على التحكم فى غواصة صغيرة وفى رافعة أو المصعد المذكور أعلاه . يقدم الميكروكنترولر مجموعة واسعة من التطبيقات . والامر متروك لك ان تقرر ما تريد من الميكروكونترولر القيام به فتضع به البرنامج الذى يحتوى على التعليمات المناسبة لذلك . قبل تشغيل الجهاز، يجب اختبار تشغيله بواسطة جهاز محاكاة. إذا كان كل شيء يعمل بشكل جيد، يتم بناء الميكروكونترولر بالجهاز . إذا كنت في حاجة فى أي وقت لتغيير أو تحسين أو ترقية البرنامج ، فقط إفعل ذلك. حتى متى؟ حتى تشعر بالارتياح. هذا كل شيء. | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 1:42 | |
| تابع الفصل الأول 2.1 أنظمة الأعداد NUMBERS الرياضيات هو ذلك العلم الجيد! كل شيء فيه منطقي جدا... ويمكن وصف الكون كله بعشرة أرقام فقط . ولكن هل هذا حقيقى ؟ هل نحتاج بالضبط لعشرة أرقام؟ بالطبع لا ، فما هو إلا نوع من التعود . تذكر الدروس المدرسية . على سبيل المثال ما يعنيه العدد 764 هو : أربع وحدات (آحاد)، وستة عشرات وسبعة مئات . إنها بهذه البساطة ! هل يمكن أن توصف بطريقة أكثر تعقيدا ؟ طبعا يمكن ذلك كما يلى : 4 + 60 + 700. وهل توجد طريقة وصف أكثر تعقيدا؟ نعم كما يلى : 4*1 + 6*10 + 7*100 . وهل يمكن وصف هذا العدد بطريقة علمية أكثر ؟ الجواب هو نعم مرة أخرى : 4*100 + 6*101 + 7*102 . ماذا يعني ذلك في الواقع؟ لماذا نستخدم بالضبط هذه الأرقام : 100, 101 , 102 ؟ لماذا هى دائما حول العدد 10 ؟ الجواب : لأننا نستخدم عشرة أرقام مختلفة (0, 1, 2, ... 8, 9) . وبعبارة أخرى نستخدم نظام أساسه العدد 10 أى نظام أعداد "الأرقام العشرية" . نظام الأعداد الثنائية BINARY NUMBER SYSTEM ماذا سيحدث إذا تم استخدام رقمين فقط هما الصفر 0 والواحد 1 ؟ أو إذا كنا لا نعرف طريقة تحديد ما إذا كان هناك شيء أكبر من شىء آخربمقدار 3 أو 5 مرات؟ أو كنا مقيدين عندما نقارن بين اثنين من الأحجام أى إذا لم يكن فى استطاعتنا إلا التعبير بأن شىء ما موجود (1) أو غير موجود (0) ؟ الجواب "لا شيء خاص" يمكننا الحفاظ على استخدام الأعداد بنفس الطريقة كما فعلنا فى نظام الأعداد العشرية لكنها سوف تبدو مختلفة بعض الشيء.على سبيل المثال : 11011010 . كم عدد صفحات كتاب يحتوى على العدد 11011010 ؟ من أجل معرفة ذلك ، عليك أن تتبع المنطق نفسه كما في النظام العشرى ، ولكن بترتيب عكسي. ونضع في اعتبارنا أن كل هذا برياضيات تستخدم رقمين فقط هما 0 و 1 أي نظام أساسه العدد 2 (لذلك يسمى بالنظام الثنائي للأعداد ). ومن الواضح أن نفس العدد ممثل بنظامين للأعداد مختلفين . الفرق الوحيد بينهما هو عدد الأرقام (الخانات) اللازمة لكتابة العدد . يستخدم رقم واحد هو (2) لكتابة العدد(2) في النظام العشري، بينما يستخدم رقمين(1 , 0) لكتابته في النظام الثنائي. باستثناء ظروف المعامل والمراقبة بصرامة فإن الدوائر الإلكترونية حتى الأكثر تعقيدا لا يمكنها أن تحدد الفرق بين حجمين بدقة (على سبيل المثال قيمتين للجهد ) إذا كانت صغيرة جدا (أقل من عدة فولتات ). الأسباب هي الضوضاء الكهربائية وما يسمى 'بيئة العمل الحقيقية ' (التغيرات الغير متوقعة فى جهد مصدر القدرة ، والتغيرات في درجات الحرارة، وقيم السماحات فى المكونات الخ). تخيل كمبيوتر يعمل بنظام الأرقام العشرية ويعالجها بالطريقة التالية : 0=0V, 1=5V, 2=10V, 3=15V, 4=20V...9=45V الحل الأكثر بساطة هو المنطق الثنائي حيث الصفر 0 يشير إلى عدم وجود جهد والواحد 1 يشير إلى أن هناك جهد. فمن الأسهل كتابة 0 أو 1 بدلا من جملة كاملة "لا يوجد جهد" أو "هناك الجهد" على الترتيب . يعرف هذا بالمنطق صفر (0) والمنطق واحد (1) والذى يتناسب تماما مع الالكترونيات وينفذ بسهولة كل هذه العمليات الرياضية المعقدة الغير منتهية . من الواضح أن إلكترونيات التى نتحدث عنها تطبق الرياضيات باستخدام رقمين فقط وحيث يكون المهم فقط هو معرفة وجود جهد من عدمه . بطبيعة الحال نحن نتحدث عن الالكترونيات الرقمية. نظام الأعداد السداسى عشر HEXADECIMAL NUMBER SYSTEM | |
|
| |
mr/slc500 فريق أول
عدد الرسائل : 5693 العمر : 45 الموقع : EgyPt OlDeSt schOol in the wOrlD العمل/الترفيه : عندما تنتفض الامة ستكون البيعة على تراب فلسطين تاريخ التسجيل : 21/11/2010
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 1:45 | |
| موضوع رائع جزاكم الله كل خير | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 1:51 | |
| نظام الأعداد السداسى عشر HEXADECIMAL NUMBER SYSTEM في بداية مجال الكمبيوتر تم إدراك أن الناس لديها العديد من الصعوبات في التعامل مع الأعداد الثنائية . لهذا السبب تم إنشاء نظام أعداد جديد يستخدم 16 رمز مختلف . لذلك سمى هذا النظام بنظام الأعداد السداسى عشر وهو يتكون من العشرة أرقام التى نستخدمها (0, 1, 2, 3,... 9) وستة حروف أبجدية A, B, C, D, E ,F . قد تتساءل حول الغرض من هذا المزيج الغريب على ما يبدو؟ فقط انظر على أنه يتناسب تماما مع الأعداد الثنائية وسوف تفهم. أكبر عدد يمكن تمثيله بأربعة أرقام (خانات) ثنائية هو العدد 1111 . وهو يقابل العدد 15 في النظام العشري ، بينما في النظام السداسى عشر يمثل برقم واحد فقط هو F . وهو أكبر عدد مكون من رقم واحد فى النظام السداسى عشر . هل ترى كيف يتم استخدامه بمهارة ؟ أكبر عدد يكتب بثمانى أرقام (خانات) ثنائية هو في الوقت نفسه أكبر عدد سداسى عشر مكون من رقمين (خانتين) . لا ننسى أن أجهزة الكمبيوتر تستخدام الأعداد الثنائية ذات الثمانى أرقام (خانات) . هل هذه صدفة ؟ كود الأعداد الثنائية المشفرة عشرى BCD CODE الكود BCD هو كود ثنائى للأرقام العشرية فقط (Binary-Coded Decimal) . وهو يستخدم لتمكين الدوائر الالكترونية للاتصال سواء مع الملحقات المحيطة التى تستخدم نظام الأعداد العشري أو داخلها وحيث يستخدم نظام الأعداد الثنائى . وهو يتألف من أعداد ثنائية ذات أربعة أرقام (خانات) والتي تمثل الأرقام العشرة الأولى (0, 1, 2, 3 ... 8, 9) . على الرغم من أربعة أرقام يمكن أن تعطي 16 توليفة إلا أن الكود BCD يستخدم فقط العشرة أرقام الأولى . تحويل الأنظمة العددية NUMBER SYSTEM CONVERSION | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 2:03 | |
| تحويل الأنظمة العددية NUMBER SYSTEM CONVERSION نظام الأعداد الثنائى هو الأكثر استخداما ونظام الأعداد العشرى هو الأكثر فهما في حين أن نظام الأعداد السداسى عشر في مكان ما بينهما . لذلك من المهم جدا معرفة كيفية تحويل الأعداد من أحد الأنظمة إلى نظام آخر أي كيفية تحويل سلسلة من الآحاد والأصفار إلى قيم مفهومة. تحول العدد من النظام الثنائى إلى النظام العشرى الأرقام (الخانات) في العدد ثنائي لها قيم value مختلفة تبعا لمكانها (موقعها) بالعدد (أى أن كل رقم أو خانة له موقع وله قيمة) . بالإضافة إلى ذلك يمكن أن يحتوي كل مكان (خانة – موقع ) إما على صفر 0 أو على واحد 1 وتحدد قيمته بسهولة عن طريق حساب (عد) مكانه (موقعه) من اليمين . لعمل تحويل لعدد ثنائى إلى عدد عشرى من الضروري ضرب قيم value فى الأرقام المقابلة (0 or1) وجمع كل النواتج كما فى الشكل التالى : وتجدر الإشارة إلى أنه من أجل تمثل الأعداد العشرية من 0 إلى 3 نحتاج إلى استخدام رقمين ثنائيين فقط . وللأعداد الأكبر يجب استخدام أرقام ثنائية إضافية. لذلك من أجل تمثيل الأعداد العشرية من 0 إلى 7 نحتاج لثلاثة أرقام ثنائية ، وللأعداد من 0 إلى 15 نحتاج لأربعة أرقام ..ألخ . ببساطة للحصول على أكبر عدد ثنائى مكون من n رقم (خانة) نرفع الأساس وهو 2 للأس n . ويجب بعد ذلك طرح واحد 1 من الناتج . مثال : if n=4: 24 - 1 = 16 - 1 = 15 وبناء عليه باستخدام 4 أرقام ثنائية من الممكن تمثيل الأرقام العشرية من 0 إلى 15 والتي تبلغ فى مجموعها 16 قيمة مختلفة . تحويل العدد السداسى إلى عدد عشرى | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 2:13 | |
| تحويل العدد السداسى عشر إلى عدد عشرى لإجراء عملية تحويل عدد سداسى عشر إلى عدد عشري : كل رقم (خانة) سداسى عشر يجب ضربه بالعدد 16 مرفوع لأس قيمة موقعه . على سبيل المثال : تحويل العدد السداسى عشر إلى عدد ثنائى لتحويل العدد من سداسى عشر إلى ثنائى ليس من الضروري إجراء أي حسابات . ببساطة يتم استبدال الأرقام السداسية عشر بالأرقام الثنائية المناسبة . وحيث أن أكبر رقم سداسى عشر يكافىء العدد العشرى 15 فسوف نحتاج إلى استخدام أربعة أرقام ثنائية لتمثل رقم واحد سداسى عشر . على سبيل المثال : يتضمن جدول المقارنة التالى قيم الأرقام 0-255 في الثلاثة نظم العددية المختلفة. ربما يكون هذا الجدول أسهل طريقة لفهم المنطق المشترك المطبق على جميع الأنظمة. وسم (تعليم) الأعداد | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 2:18 | |
| وسم (تعليم) الأعداد نظام الأعداد السداسى عشر جنبا إلى جنب مع أنظمة الأعداد الثنائية والأعداد العشرية تعتبر نظم الأعداد الأكثر أهمية بالنسبة لنا. فمن السهل تحويل أي عدد سداسى عشر إلى عدد ثنائي كما أنه من السهل تذكر ذلك . مع ذلك قد تسبب هذه التحويلات الارتباك. على سبيل المثال ، ماذا تعنى فعليا الجملة " من الضروري عد 110 منتج فى خط تجميع " ؟ يعتمد ذلك على نظام الأعداد فهذا الرقم يعنى 6 بالثنائى و يعنى 110 بالعشرى ويعنى 272 بالسداسى عشر . وبناء عليه من أجل تجنب سوء الفهم ، تضاف مباشرة بادئات prefixes ولواحق suffixes مختلفة إلى الأعداد . البادئة $ أو 0x فضلا عن اللاحقة h لوسم أو تعليم أو تعريف الأعداد في النظام السداسى عشر. على سبيل المثال العدد السداسى عشر 10AF تكون صيغه : $10AF, 0x10AF or 10AFh . بالمثل الأعداد الثنائية عادة تعطى البادئة % أو 0b . إذا لم يحتوى العدد على بادئة ولا على لاحقة فيعتبر عدد عشرى . لسوء الحظ هذه الطريقة في وسم الأرقام ليست موحدة وبالتالي تعتمد على التطبيق الفعلي.
| |
|
| |
mr/slc500 فريق أول
عدد الرسائل : 5693 العمر : 45 الموقع : EgyPt OlDeSt schOol in the wOrlD العمل/الترفيه : عندما تنتفض الامة ستكون البيعة على تراب فلسطين تاريخ التسجيل : 21/11/2010
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 2:24 | |
| شكرا للمعلومات القيمة لان معلوماتى عن الميكروكونترولر كانت تقريبا صفر | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 2:28 | |
| الخانة "البت" BIT نظريا تعتبر الخانة bit هى الوحدة الأساسية للمعلومات... دعونا ننسى ذلك للحظة ونلقي نظرة على الواقع . البت (الخانة) هى مجرد رقم ثنائى . مشابهة لنظام الأعداد العشرية حيث كل رقم فى العدد ليس له نفس القيمة (على سبيل المثال الأرقام في العدد العشري 444 هي نفسها، ولكن لها قيم مختلفة) ، 'أهمية' ‘significance’ الخانة (البت) تعتمد على موقعها (مكانها) في العدد الثنائي . ونظرا لعدم وجود علامة تدل على الآحاد والعشرات ...ألخ فى الأعداد الثنائية فأن أرقام العدد الثنائى يشار إليها بالخانة رقم صفر zero bit (بت أقصى اليمين) والخانة رقم 1 ( البت الثانية من اليمين ) وهكذا بالإضافة إلى ذلك حيث أن النظام الثنائي يستخدم رقمين فقط (0 and 1) فإن البت إما أن تكون 0 أو 1 . ينبغي عدم الخلط إذا كنت تعبر عن خانة بالقيم 4, 16 or 64 فهذه مجرد قيم التمثيل فى النظام العشرى .لقد تعودنا على استخدام الأعداد العشرية وسوف نتعود على استخدام الأعداد الثنائية. البايت BYTE يتكون البايت من ثمانى بتات مجمعة معا. إذا كانت البت رقم فمن المنطقى أن تمثل البيتات أعداد. ويمكن تنفيذ كافة العمليات الحسابية عليها ، مثل الأعداد العشرية . مشابهة لأرقام أى عدد فإن أرقام البايت ليس لها نفس الأهمية (القيمة) . أعظم قيمة (أهمية) تعطى للبت الموجودة أقصى اليسار وتسمى " البت ذات الأهمية أو القيمة القصوى" most significant bit (MSB) . البت الموجودة أقصى اليمين تعطى أقل قيمة وتسمى "البت ذات الأهمية أو القيمة الصغرى " least significant bit (LSB) . حيث أنه يمكن الحصول من ثمانى أصفار وآحاد لبايت واحدة على عدد 256 مجموعة (تركيبة -توليفة) مختلفة فإن أكبر عدد عشرى يمكن تمثيله ببايت واحد هو 255 ( أحد المجموعات يمثل الصفر) يشار إلى مصطلح "النبل" nibble على أنه نصف البايت . يعتمد على أى نصف نتكلم يكون لدينا النصف الأيسر والنصف الأيمن وتعرف بالنبل العلوى‘high’ والنبل السفلى ‘low’ على الترتيب . | |
|
| |
metwally.mustafa فريق أول
عدد الرسائل : 4226 العمر : 38 الموقع : Egypt العمل/الترفيه : automation engineer تاريخ التسجيل : 12/01/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 5:04 | |
| جزاكم الله خيرا _________________ I am so far behind, I think i am first
| |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 5:49 | |
| -3 الدوائر المنطقية LOGIC CIRCUITS تعطى بعض تعليمات البرنامج نفس نتيجة البوابات المنطقية . فيما يلى دراسة لمبدأ (أساس) عملها . بوابة " و " AND Gate بوابة المنطق AND لها مدخلين أو أكثر ومخرج واحد . نفترض أن البوابة المستخدمة في هذا المثال لها مدخلين فقط . سوف يظهر المنطق (1) فى مخرجها فقط إذا كان كلا المدخلين (A AND B) فى الحالة المرتفعة (1) . الجدول الموجود على يمين رمز البوابة يظهر الاعتماد المتبادل بين المدخلات والمخرج ويسمى "جدول الحقيقة" truth table . عندما تستخدم بوابة AND في برنامج فأنه يتم تنفيذ العملية المنطقية AND باستخدام تعليمة برنامج والتى سوف نناقشها فى وقت لاحق . في الوقت الحاضر، سوف نكتفى بأن نتذكر أن المنطق AND فى البرنامج يشير إلى إجراء عملية AND على البتات (الخانات) المتناظرة (المقابلة) فى سجلين (كل سجل عبارة عن بايت) . بوابة "أو" OR GATE | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 5:57 | |
| بوابة "أو" OR GATE بالمثل البوابة " أو" أيضا لها مدخلين أو أكثر ومخرج واحد . نفترض أن البوابة المستخدمة في هذا المثال لها مدخلين فقط . سوف يظهر المنطق (1) فى مخرجها إذا كان أى من المدخلين (A OR B) فى الحالة المرتفعة (1) . إذا كان للبوابة OR أكثر من مدخلين فإن خرجها يكون فى الحالة المرتفعة (1) إذا كان على الأقل أحد المداخل فى الحالة المرتفعة (1) . وإذا كان جميع المداخل عند المنطق صفر (0) يكون المخرج عند المنطق صفر (0) أيضا . الجدول الموجود على يمين رمز البوابة يظهر الاعتماد المتبادل بين المدخلات والمخرج ويسمى "جدول الحقيقة" truth table . عندما تستخدم بوابة OR في برنامج فأنه يتم تنفيذ العملية المنطقية OR باستخدام تعليمة برنامج والتى سوف نناقشها فى وقت لاحق . في الوقت الحاضر، سوف نكتفى بأن نتذكر أن المنطق OR فى البرنامج يشير إلى إجراء عملية OR على البتات (الخانات) المتناظرة (المقابلة) فى سجلين (كل سجل عبارة عن بايت) . بوابة " النفى " "العاكس" NOT GATE | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 6:00 | |
| بوابة " النفى " "العاكس" NOT GATE البوابة المنطقية NOT لها مدخل واحد فقط ومخرج واحد فقط .تعمل بطريقة بسيطة للغاية . عندما تظهر الحالة المنطقية المنخفضة (0) على مدخلها تظهر الحالة المنطقية المرتفعة (1) على مخرجها والعكس بالعكس .وهذا يعنى أن هذه البوابة تقوم بعكس الإشارة لذلك فغالبا ما تسمى بالعاكس . بوابة " أو الحصرية أو المنفردة" EXCLUSIVE OR GATE | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 6:09 | |
| بوابة " أو الحصرية أو المنفردة" EXCLUSIVE OR GATE البوابة " أو الحصرية" EXCLUSIVE OR (XOR) معقدة قليلا بالمقارنة بالبوابات الأخرى. تظهر الحالة المنطقية المرتفعة (1) على مخرجها فقط عندما تكون مداخلها فى حالات منطقية مختلفة . أى أن أحد المدخلين ينفرد أو ينحصر بالحالة المرتفعة والأخر بالحالة المنخفضة . هذه العملية المنطقية شائعة الاستخدام فى البرنامج فى المقارنة بين بايت وآخر . قد تستخدم عملية الطرح فى نفس الغرض ( إذا كانت النتيجة بصفر فإن البايت الأول يساوى البايت الثانى ) . وعلى العكس من عمليه الطرح فإن ميزة هذه العملية المنطقية أنه لا يمكن الحصول على نتيجة سالبة . | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 11:57 | |
| السجلات والمنافذ السجل REGISTER باختصار السجل أو خلية الذاكرة هي دوائر إلكترونية والتي يمكن أن تتذكر (تحفظ) حالة بايت واحد one byte . سجلات الوظائف الخاصة SFR REGISTERS بالإضافة إلى السجلات التي لا تملك أي وظيفة خاصة ومحددة سلفا ، فإن كل ميكروكونترولر به عدد من السجلات والتى يتم تحديد وظيفتها سلفا من قبل الشركة المصنعة ( تسمى سجلات الوظائف الخاصة SFR ). وترتبط (تتصل) بتات (خانات) تلك السجلات بالدوائر الداخلية للميكروكونترولر مثل المؤقتات والمحول من تناظرى إلى رقمى A/D والمذبذب وغيره وهو ما يعني أنها تحت القيادة المباشرة لعمل هذه الدوائر، أي الميكروكونترولر . تخيل ثمانى مفاتيح تتحكم فى عمل دائرة صغيرة داخل الميكروكونترولر , سجلات الوظائف الخاصة تفعل نفس الشىء . وبعبارة أخرى فإن حالة بتات السجل تتغيير من داخل البرنامج , تقوم السجلات بتشغيل دوائر صغيرة داخل الميكروكونترولر وهذه الدوائر ومن خلال أطراف الميكروكونترولر تتصل بالأجهزة الإلكترونية المحيطة والتى يتم استخدامها ويكون الأمر متروك للمبرمج . منافذ المداخل / المخارج INPUT / OUTPUT PORTS من أجل جعل الميكروكونترولر ذو فائدة يجب أن يكون متصلا بأجهزة إلكترونية إضافية أي الأجهزة الملحقة أو المحيطة . peripherals كل ميكروكونترولر به سجل أو أكثر متصل بأطراف الميكروكونترولر(يسمى منفذ port). لماذا المدخلات / المخرجات؟ لأنه يمكنك تغيير وظيفة الطرف كما يحلو لك. على سبيل المثال افترض أنك تريد أن يقوم جهازك بتشغيل / إيقاف on / off ثلاثة إشارات لليدات وفي الوقت نفسه بمراقبة (رصد) الحالة المنطقية لخمس حساسات أو مفاتيح ضاغطة . لذلك بعض المنافذ تحتاج إلى إعداد أو تهيئة بحيث يكون هناك ثلاثة مخارج (تتصل بالليدات ) وخمسة مدخل (تتصل بالحساسات ). يتم الإعداد ببساطة عن طريق البرمجيات ، مما يعني أن وظيفة الطرف يمكن تغييرها أثناء التشغيل. واحدة من المواصفات الهامة لأطراف المداخل / المخارج I /O هو الحد الأقصى للتيار الذى يمكن تداوله أو التعامل معه. بالنسبة لمعظم الميكروكنترولر يكون التيار الذى نحصل عليه من طرف واحد كافى لتشغيل ليد أو بعض الأجهزة الأخرى التى تعمل على تيار منخفض (10-20 mA) . كلما استخدمنا أطراف أكثر كلما إنخفض التيار المسموح به لكل طرف . بعبارة أخرى يتم تقاسم أقصى تيار منصوص عليه في صفحات المواصفات للميكروكونترولر على جميع منافذ المداخل / المخارج . وظيفة هامة أخرى للطرف هى أنه يمكن أن يكون له مقاومة سحب أو جذب إلى أعلى pull-up resistors . هذه المقاومات توصل الطرف بالجهد الموجب لمصدر القدرة وتصبح فعالة أو مؤثرة عندما يتم إعداد الطرف كمدخل يتصل بمفتاح ميكانيكى أو مفتاح ضاغط . الميكروكونترولر الحديث به مقاومات سحب لأعلى يتم إعدادها برمجيا . كل منفذ مداخل / مخارج عادة ما يكون تحت سيطرة سجل وظائف خاصةSFR مخصوص يسمى سجل التحكم بالمنفذ الأمر الذي يعني أن كل بت من هذا السجل يحدد حالة طرف مقابل بالميكروكونترولر . على سبيل المثال بكتابة المنطق واحد (1) على خانة من سجل التحكم يتم تلقائيا إعداد الطرف المناسب المقابل بالمنفذ كمدخل والجهد الواصل إليه يمكن قراءته كمنطق منخفض 0 أو منطق مرتفع 1 . خلافا لذلك بكتابة صفر على خانة من سجل التحكم يتم تلقائيا إعداد الطرف المقابل المناسب بالمنفذ كمخرج . جهد المخرج(0V or 5V) يناظر (يتوافق) حالة البت المناسبة لسجل المنفذ . | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الأحد 27 فبراير 2011 - 17:05 | |
| الذاكرات وحدة الذاكرة MEMORY UNIT الذاكرة هي جزء من الميكروكونترولر تستخدم لتخزين البيانات. أسهل طريقة لفهمها هو مقارنتها بخزانة ملفات تحتوى على العديد من الأدراج. لنفترض أن الأدراج مميزة (معلمة) بوضوح بحيث يمكن العثور على محتوياتها بسهولة عن طريق قراءة الملصق الموجود على الجزء الأمامي للدرج. بالمثل فكل عنوان لذاكرة memory address يناظر موقع (مكان) location ذاكرة واحدة. يمكن الوصول إلى محتويات أي موقع وقرأته بواسطة عنوانه . يمكن إما الكتابة على الذاكرة أو القراءة منها . توجد أنواع عديدة من الذاكرة داخل الميكروكونترولر : ذاكرة القراءة فقط READ ONLY MEMORY (ROM) تستخدم ذاكرة القراءة فقط (ROM) فى الحفظ (التخزين) الدائم للبرنامج الذى يتم تنفيذه . حجم البرنامج الذي يمكن كتابتة يعتمد على حجم هذه الذاكرة.يستخدم الميكروكونترولر الآن العنونة ذات الستة عشر بت 16-bit addressing الأمر الذي يعني أنها قادرة على عنونة تصل إلى 64 كيلوبايت 64 Kb من الذاكرة أي 65535 مواقع. كمبتدأ فأن برنامجك نادرا ما يتجاوز حدود عدة مئات من التعليمات . توجد عدة أنواع ذاكرة ROM ذاكرة الروم ذات القناع Masked ROM (MROM) ذاكرة الروم ذات القناع هى نوع من ذاكرة الروم محتوياتها يتم برمجتها من قبل الشركة المصنعة. المصطلح "ذات القناع" masked يأتي من عملية التصنيع حيث يتم تغطية أو ستر أو عمل قناع لمناطق بالشريحة قبل عملية التصنيع الضوئية .سعر هذه الذاكرة يكون منخفض جدا في حالة الإنتاج على نطاق واسع .لن نستخدم هذا النوع فى دراستنا . ذاكرة ROM قابلة للبرمجة مرة واحدة (OTP ROM) هذه الذاكرة تمكنك من تحميل البرنامج عليها ولكن كما هو واضح من اسمها لمرة واحدة فقط . إذا تم اكتشاف خطأ بعد تحميلها فالشىء الوحيد الممكن عمله هو تحميل البرنامج الصحيح على شريحة أخرى . ذاكرة ROM قابلة للمسح بالأشعةفوق البنفسجية (UV EPROM) كل من عملية التصنيع وخصائص هذه الذاكرة مطابقة تماما للذاكرة OTP ROM . الميكروكونترولر الذى يحتوى على هذه الذاكرة يمكن التعرف عليه بوجود نافذة فى الجانب العلوى له .هذه النافذة تمكن من مسح (محو) البيانات تحت تأثير الأشعة فوق البنفسجية القوية. بعد بضع دقائق من الممكن تحميل (تنزيل) برنامج جديد عليها . تركيب هذه النافذة معقد الأمر الذي يؤثر عادة على السعر. وجهة نظرنا فيها لسوء الحظ سلبى . ذاكرة الفلاش (الوميض) Flash Memory أخترع هذا النوع من الذاكرة في الثمانيات في مختبرات شركة إنتل لتكون خليفة للذاكرة UV EPROM .حيث يمكن كتابة محتويات هذه الذاكرة ومسحها عمليا لعدد غير محدود من المرات ، الميكروكنترولر الذى يحتوى على ذاكرة Flash ROM مثالى للتعليم والتجريب والإنتاج على نطاق صغير.ونظرا لانشارها الواسع يتم تصنيع معظم الميكروكنترولر الأن بتقنية ذاكرة الفلاش . لذا إن كنت تنوى شراء ميكروكونترولر فابحث بالقطع عن ذاكرة الفلاش . ذاكرة الوصول العشوائى RAM بمجرد أن يتم إيقاف مصدر القدرة يتم مسح محتويات ذاكرة الوصول العشوائي RAM . تستخدم هذه الذاكرة فى التخزين المؤقت وإنشاء نتائج وسيطة والتي تستخدم أثناء عملية تشغيل الميكروكونترولر . على سبيل المثال ، إذا كان البرنامج يقوم بإجراء عملية جمع فمن الضرورى أن يكون هناك سجل يسمى "المجموع" sum . لهذا السبب نسمى أحد سجلات الذاكرة RAM بالاسم sum ونستخدمه لتخزين نتيجة عملية الجمع مؤقتا . ذاكرة ROM القابلة للمسح كهربائيا EEPROM قد يتم تغيير محتويات هذه الذاكرة خلال التشغيل (مثل RAM ) ولكنها سوف تظل محتفظة بها بشكل دائم حتى بعد فقدان مصدر القدرة (مثل ROM ) . وبناء عليه فإن ذاكرة EEPROM غالبا ما تستخدم لتخزين القيم التى يتم إنشاؤها خلال التشغيل والتى يجب حفظها بشكل دائم. على سبيل المثال ، إذا قمت بتصميم قفل إلكتروني أو جهاز تنبيه سيكون أمرا رائعا تمكين المستخدم من إنشاء وأدخال كلمة مرور، لكنه يكون عديم الفائدة إذا تم فقدها كل مرة ينفصل فيها مصدر الطاقة . الحل المثالي هو ميكروكونترولر يحتوى على ذاكرة EEPROM | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الإثنين 28 فبراير 2011 - 3:19 | |
| المقاطعة INTERRUPT معظم البرامج تستخدام المقاطعات في تنفيذها العادية. الغرض من الميكروكونترولر أساسا هو الاستجابة للتغيرات في محيطه. بعبارة أخرى عند وقوع حدث يقوم الميكروكونترولر بفعل شىء. على سبيل المثال عند الضغط على مفتاح ضاغط بجهاز تحكم عن بعد فإن الميكروكونترولر سوف يسجل ذلك الحدث ويستجيب (يرد) عن طريق تغيير القناة أو فى أرتفاع أو انخفاض شدة الصوت وما إلى ذلك . إذا قضى الميكروكونترولر معظم وقته فى فحص عدة مفاتيح ضاغطة بشكل لا ينتهى لساعات أو لأيام فإنه لن يكون عمليا على الإطلاق. هذا هو السبب الذى جعل الميكركونترولر يتعلم بعض الخدع أثناء تطوره. فبدلا من التحقق (اختبار) كل طرف أو بت باستمرار فإن الميكروكونترولر يوكل العملية إلى جزء متخصص والذى سوف يستجيب فقط عندما يحدث شيء يستحق الاهتمام. يطلق على الإشارة التي التى تبلغ وحدة المعالجة المركزية عن مثل هذا الحدث بالمقاطعة INTERRUPT . وحدة المعالجة المركزية CENTRAL PROCESSOR UNIT (CPU) كما هو واضح من اسمها هى تلك الوحدة التى تراقب وتتحكم في كل العمليات داخل الميكروكونترولر . وهى تتتألف من وحدات فرعية عدةمن أهمها ما يلي : · وحدة حل (فك) شفرة (كود) التعليمات Instruction Decoder وهى جزء من الالكترونيات يقوم بحل شفرة التعليمات وبناء على ذلك يقوم بتشغيل دوائر أخرى. 'مجموعة التعليمات' والتى تختلف من عائلة ميكروكونترولر لأخرى تعبر عن قدرات هذه الدائرة. · وحدة الحساب والمنطق Arithmetical Logical Unit (ALU) تقوم بإجراء جميع العمليات الرياضية والمنطقية على البيانات . · المركم (المجمع) Accumulator وهو سجل وظيفة خاصة يرتبط ارتباطا وثيقا بتشغيل وحدة الحساب والمنطق . وهو نوع من مكاتب العمل يستخدم لتخزين جميع البيانات التي يجب أن يجرى عليها بعض العمليات ( كالجمع والنقل والإزاحة ..ألخ ). كما أنها يخزن (يحفظ) النتائج الجاهزة للاستخدام في مزيد من المعالجات . أحد سجلات الوظائف الخاصة ويسمى "سجل الحالة" Status Register (PSW) يرتبط ارتباطا وثيقا بالمركم وهو يظهر في أي وقت معطى "حالة" status العدد المخزن في المركم ( العدد أكبر أو أقل من الصفر وما إلى ذلك). يسمى المركم أيضا بسجل العمل working register ويعرف بالسجل W أو حتى W فقط . الناقل (الممر) BUS يتكون الناقل bus من 8 أسلاك أو 16 سلك أو أكثر. يوجد نوعان من الناقلات : ناقل العنوان address bus وناقل البيانات data bus . يتكون ناقل العنوان address bus من عدد خطوط اللازمة لعنونة الذاكرة. فهو يستخدم لنقل العناوين من وحدة المعالجة المركزية إلى الذاكرة. عرض (سعة) wide ناقل البيانات كعرض البيانات ، في حالتنا العرض هو 8 بت أو 8 أسلاك. وهو يستخدم لربط جميع الدوائر داخل الميكروكونترولر. | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الإثنين 28 فبراير 2011 - 7:27 | |
| الاتصال التسلسلى SERIAL COMMUNICATION التوصيل المتوازي بين الميكروكونترولر والأجهزة الطرفية المحيطة عبر منافذ المداخل /المخارج هو الحل المثالي حالة المسافات القصيرة وحتى عدة أمتار. عندما يكون ضروريا إقامة اتصال بين جهازين على مسافات أطول فمن غير الممكن استخدام الاتصال المتوازى . بدلا من ذلك يستخدم الاتصال التسلسلي. اليوم معظم الميكروكنترولر يضم بنائها العديد من الأنظمة المختلفة للاتصال التسلسلى كمعدات قياسية. أي من هذه النظم سوف تستخدم هذا يتوقف على عوامل كثيرة من أهمها ما يلي : · كم عدد الأجهزة التى سوف يتبادل معها الميكروكونترولر البيانات ؟ · ما هى السرعة المطلوبة لتبادل البيانات ؟ · ما هى المسافة بين الأجهزة ؟ · هل من الضرورى إرسال واستقبال البيانات فى وقت واحد ؟ واحد من أهم الأمور المتعلقة بالاتصال التسلسلى هو "البروتوكول" Protocol الذي ينبغي أن يتم مراعاته بدقة . "البروتوكول" هو عبارة عن مجموعة من القواعد التي يجب تطبيقها من أجل أن تتمكن الأجهزة من تفسير (ترجمة) البيانات المتبادلة بشكل صحيح . لحسن الحظ أن الميكروكونترولر يهتم بذلك تلقائيا بحيث ينحصر عمل المبرمج / المستخدم فى كتابة البيانات المراد إرسالها وقراءة البيانات المستقبلة . معدل البود (سرعة أو معدل نقل البانات ) BAUD RATE يستخدم المصطلح معدل البود baud rate للدلالة على عدد البتات المنقولة في الثانية [bps] . لاحظ أنه يشير إلى البت bits وليس البايت bytes. عادة ما يكون مطلوبا بواسطة البروتوكول أن يتم نقل كل بايت جنبا إلى جنب مع عدة بتات (خانات) تحكم .وهو ما يعني أن بايت واحد في تدفق البيانات المتسلسلة قد يتكون من 11 بت. على سبيل المثال إذا كان معدل البود هو 300 bps عندئذ يمكن نقل 37 بايت كحد أقصى ( بدون أى بت تحكم ) و 27 بايت كحد أدنى (بإضافة 3 بتات تحكم ) فى الثانية الواحدة . أنظمة الاتصال التسلسلى الأكثر شيوعا هي : نظام الاتصال البينى للدوائر المتكاملة I2C (INTER INTEGRATED CIRCUIT) هو نظام لتبادل البيانات التسلسلية بين الميكروكنترولر والدوائر المتكاملة المتخصصة للجيل الجديد. يستخدم هذا النظام عندما تكون المسافة بينهما قصيرة ( عادة ما يكون المستقبل والمرسل على نفس اللوحة المطبوعة ). يتم تأسيس الاتصال عبر موصلين . أحدهما يستخدم لنقل البيانات ويستخدم الآخر فى التزامن (إشارة الساعة). كما هو مبين في الشكل أدناه : أحد الأجهزة يكون دائما الماسترmaster (السيد –الرئيسى-القائد). يتم عنونة أحد الرقائق التابعة slave chip قبل بدأ الاتصال . بهذه الطريقة يمكن لميكروكونترولر واحد أن يتصل بعدد 112 جهاز مختلف . عادة ما يكون معدل البود 100 Kb/sec (النظام القياسى ) أو 10 Kb/sec (نظام معدل البود البطىء). ظهر في الآونة الأخيرة أنظمة تعمل على معدل بود 3.4 Mb/sec . المسافة بين الأجهزة التي تتصل عبر الناقل I2C محدودة بعدة أمتار. نظام الربط (الواجة) التسلسلى للأجهزة المحيطة (الخارجية ) SPI (SERIAL PERIPHERAL INTERFACE BUS) هو نظام للاتصال المتسلسل والذي يستخدم حتى أربعة موصلات والشائع منها ما يستخدم ثلاثة. يستخدم أحد الموصلات لاستقبال البيانات وموصل أخر لإرسال البيانات وموصل ثالث للتزامن وقد يستخدم موصل رابع كبديل لاختيار الجهاز المراد الاتصال معه . هذا النظام من النوع "المزدوج الكامل" full duplex وهذا يعني أنه يتم إرسال البيانات واستقبالها في نفس الوقت. أعلى معدل بود فى هذا النظام أعلى من نظيره فى نظام الاتصال I2C . نظام الاستقبال / الارسال العام (الشامل) الغير متزامن UART UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER هذا النوع من الاتصالات غير متزامن وهذا يعني عدم استخدام الخط المخصص لنقل إشارات الساعة clock signal. في بعض التطبيقات مثل الاتصال اللاسلكى أو من خلال موجات الأشعة تحت الحمراء للتحكم عن بعد يعتبر هذا النظام ميزة حاسمة (مصيرية) . كل من الاستقبال والارسال يعمل بنفس المعدل المحدد مسبقا من أجل الحفاظ على التزامن اللازم . هذه هي الطريقة البسيطة جدا لنقل البيانات لأنها أساسا تمثل تحويل البيانات 8 بت من الشكل المتوازى إلى الشكل المتسلسل . معدل البود ليس عاليا وقد يصل إلى 1 Mbit/sec . | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الإثنين 28 فبراير 2011 - 15:41 | |
| المذبذب OSCILLATOR تمكن النبضات المتولدة بواسطة المذبذب جميع دوائر الميكروكونترولر من العمل فى تناسق وتزامن . عادة يتم إعداد (تهيئة) المذبذب بحيث يستخدم كريستال كوارتز أو دائرة رنين سيراميك لاستقرار تردده ولكن يمكن أن يعمل أيضا بدائرة قائمة بذاتها (مثل مذبذب بدائرة RC ). من المهم القول بأن التعليمات لا تنفذ بمعدل يفرضه تردد المذبذب نفسه ولكن بمعدل أبطأ بعدة مرات( عادة يقسم تردد المذبذب على 4 ) . يحدث ذلك لأن كل تعليمة يتم تنفيذها في عدة خطوات. في بعض الميكروكنترولر نحتاج إلى نفس العدد من دورات لتنفيذ كافة التعليمات وبينما في حالات أخرى تختلف عدد الدورات باختلاف التعليمة . دائرة الامداد بالقدرة POWER SUPPLY CIRCUIT هناك شيئان جديران بالاهتمام بشأن دائرة إمداد الميكروكونترولر بالقدرة : · حالة Brown out : هى حالة خطرة تحدث عند لحظة فصل التغذية عن الميكروكونترولر أو عند انخفاض جهد التغذية للحد الأدنى بسبب الضوضاء الكهربائية. ونظرا لأن الميكروكونترولر يتكون من عدة دوائر تعمل بمستويات جهد مختلفة فإن هذه الحالة يمكن أن تسبب خروج الميكروكونترولر عن السيطرة على الأداء . من أجل منع ذلك فإن البناء الداخلى للميكروكونترولر يحتوى على دائرة تصفير داخلية تسمى brown out reset والتى تقوم بتصفير (إعادة) جميع دوائر الميكروكونترولر بمجرد تعرضه لحالة طارئة . · طرف التصفير Reset pin : يعرف عادة باسم MCLR (Master Clear Reset) .ويستخدم فى التصفير الخارجى للميكروكونترولر عن طريق تطبيق المنطق المنخفض صفر (0) أو المنطق المرتفع واحد (1) عليه ، والتي تعتمد على نوع الميكروكونترولر . في حالة عدم وجود دائرة تصفير عند هبوط الجهد brown out circuit فى بناء الميكروكونترولر يمكن توصيل دائرة بسيطة لهذا الغرض بالطرف MCLR. | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الإثنين 28 فبراير 2011 - 16:35 | |
| المؤقتات / العدادات TIMERS/COUNTERS يستخدم مذبذب الميكروكونترولر كريستال كوارتز فى عمله . على الرغم من أن ذلك ليس الحل الأبسط فأن هناك أسباب كثيرة لاستخدامه. تردد مثل هذا المذبذب يكون معرف بدقة ومستقر جدا بحيث أن النبضات التى يقوم بتوليدها يكون لها نفس العرض الأمر الذي يجعلها مثالية لقياس الوقت. مثل هذه المذبذبات تستخدم أيضا فى الساعات الكوارتز. إذا كانت هناك ضرورة لقياس الوقت (الزمن) بين حدثين فإنه يكفي عد (حساب) النبضات المتولدة بواسطة هذا مذبذب. هذا هو بالضبط ما يفعله المؤقت. معظم البرامج تستخدم " ساعات الإيقاف " الإلكترونية المنمنمة هذه .هذه الساعات عبارة عن سجلات وظائف خاصة SFR ذات عرض 8-bit أو 16-bit والتى تتزايد تلقائيا عند قدوم كل نبضة . وبمجرد تحميل السجل بالكامل يمكن توليد مقاطعة. إذا كان المؤقت يستخدم مذبذب الكوارتز الداخى فى عمله عندئذ يمكن استخدامه لقياس الوقت بين حدثين (إذا كانت قيمة السجل هى T1 فى لحظة بدأ القياس وقيمته هى T2 في لحظة إنتهاء القياس عندئذ يكون الوقت المنقضي يساوي نتيجة الطرح T2-T1) . وإذا استخدمت السجلات نبضات قادمة من مصدر خارجي عندئذ يتحول هذا المؤقت إلى عداد . هذا ليس سوى شرح مبسط للعملية نفسها. لكنها أكثر تعقيدا عند الممارسة العملية. كيف يعمل المؤقت ؟ | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الإثنين 28 فبراير 2011 - 16:38 | |
| كيف يعمل المؤقت ؟ عمليا يتم جلب النبضات المتولدة بمذبذب الكوارتز مرة واحدة فى كل دورة آلة إما مباشرة أو عن طريق prescaler إلى الدائرة التي تقوم بزيادة العدد المخزن في سجل مؤقت. من السهل قياس الفترات الزمنية القصيرة والتى تصل إلى 256 ميكروثانية بالطريقة المذكورة أعلاه لأن هذا الرقم هو أكبر عدد يمكن أن يخزنه سجل واحد . قد يكون من السهل التغلب على هذا التقييد بعدة طرق مثل استخدام مذبذب أبطأ أو سجلات ببتات أكثر أو استخدام prescaler أو بالمقاطعة . الحل الأول والحل الثانى بهما بعض نقاط الضعف لذلك فإنه يوصى وبشدة باستخدام prescalers أو المقاطعات. استخدام prescaler فى عمل المؤقت | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الإثنين 28 فبراير 2011 - 16:41 | |
| استخدام prescaler فى عمل المؤقت prescaler هو جهاز إلكتروني يستخدم فى تخفيض التردد (قسمة التردد) بمعامل محدد سلفا. لتوليد نبضة واحدة فى مخرجه فمن الضرورى إحضار عدد من النبضات قيمته 1 أو 2 أو 4 أو أكثر إلى مدخله . معظم الميكروكنترولر يوجد فى بنائها واحد أو أكثر prescalers ويمكن تغيير معدل قسمتها من داخل البرنامج. يستخدم prescaler عندما يكون ضروريا قياس فترات أطول من الوقت. إذا تشارك فى prescaler واحد كل من المؤقت ومؤقت الحراسة فإنه لا يمكن أن يستخدم من قبل كل منهما في وقت واحد. استخدام المقاطعة بعمل المؤقت | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الإثنين 28 فبراير 2011 - 16:44 | |
| استخدام المقاطعة بعمل المؤقت إذا كان سجل المؤقت يتكون من 8 بت فإن أكبر عدد يمكن أن يخزنه هو 255. أما بالنسبة للسجلات 16 بت فإن أكبر عدد هو 65،535. إذا تم تجاوز (تعدى) هذا العدد فأن المؤقت يقوم تلقائيا بالتصفير reset ويبدأ العد من الصفر مرة أخرى . هذه الحالة تسمى overflow " الطفحان أو التجاوز " . حالة الطفحان هذه إذا تم تمكينها من العمل enable من داخل البرنامج يمكن أن تسبب المقاطعة والتي تعطي إمكانيات جديدة تماما. على سبيل المثال يمكن تغيير حالة السجلات المستخدمة لحساب الثوان والدقائق والأيام في روتين المقاطعة. يتم تنفيذ العملية برمتها (باستثناء روتين المقاطعة) تلقائيا من خلف الكواليس ( داخليا فلا تشاهدها ) ومن ثم تمكن الدوائر الرئيسية للميكروكونترولر من العمل بشكل طبيعي. الشكل التالى يبين استخدام المقاطعة بعمل المؤقت . يمكن الحصول بسهولة على تأخير بالمدة المطلوبة وبدون أى تأثير على البرنامج الرئيسى عن طريق تخصيص prescaler للمؤقت. العدادات COUNTERS | |
|
| |
F.Abdelaziz عقيد
عدد الرسائل : 639 تاريخ التسجيل : 20/05/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الإثنين 28 فبراير 2011 - 16:47 | |
| العدادات COUNTERS إذا استقبل المؤقت نبضات من طرف مدخل للميكروكونترولر عندئذ يتحول إلى عداد . من الواضح أن نفس الدائرة الالكترونية قادرة على العمل في نظامين مختلفين. والفرق الوحيد هو أنه في هذه الحالة تأتى النبضات المراد عدها من طرف للميكروكونترولر ومدة تواجدها (العرض) غير معروف في معظم الأحيان.وهذا هو السبب في أنه لا يمكن استخدامها لقياس الوقت ولكن تستخدم لأغراض أخرى مثل حساب عدد المنتجات على خط التجميع ، وحساب عدد لفات محور الدوران وحساب عدد الركاب وما إلى ذلك (اعتمادا على الحساس المستخدم ). مؤقت الحراسة WATCHDOG TIMER مؤقت الحراسة هو مؤقت متصل بمذبذب RC منفصل تماما وموجود داخل الميكروكونترولر. إذا تم تمكين مؤقت الحراسة فإنه في كل مرة يصل فيها عده إلى القيمة القصوى يحدث تصفير reset للميكروكونترولر ويبدأ تنفيذ البرنامج من التعليمة الأولى. النقطة الهامة هي منع حدوث ذلك باستخدام أمر معين. على أي حال أن الفكرة كلها قائمة على حقيقة أن كل برنامج يتم تنفيذه في عدة حلقات طويلة كانت أم قصيرة . إذا تم وضع التعليمات التي تقوم بتصفير مؤقت الحراسة في الأماكن المناسبة من البرنامج بجانب الأوامر التى يتم تنفيذها بشكل منتظم عندئذ فإن عمل مؤقت الحراسة لن يؤثر على تنفيذ البرنامج. إذا حدث لأي سبب من الأسباب ( عادة الضوضاء الكهربائية فى الصناعة) أن أصبح عداد البرنامج فى حالة إلتصاق أى توقف عن العمل عند موقع ذاكرة معين فيقف البرنامج بينما مؤقت الحراسة يعمل (لأنه بمذبذب مستقل) ولن يتم تصفيره ويظل سجله يتزايد حتى يصل إلى أقصى قيمة وبالطبع يؤدى إلى حدوث تصفير reset ويبدأ البرنامج من أول تعليمة . | |
|
| |
metwally.mustafa فريق أول
عدد الرسائل : 4226 العمر : 38 الموقع : Egypt العمل/الترفيه : automation engineer تاريخ التسجيل : 12/01/2009
| موضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO الثلاثاء 1 مارس 2011 - 2:29 | |
| جزاكم الله خيرا اخى العزيز _________________ I am so far behind, I think i am first
| |
|
| |
| ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO | |
|