قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

مشاهدة نتائج الإستفتاء: هل ترى أهمية لدورة تشرح لغة (mikroBasic) لبرمجة البيك ؟
موضوع فى غاية الأهمية و ضرورى جدا ... ... 1 23 95.83%
موضوع هام ولكن يوجد ما يكفى ... ... 2 1 4.17%
موضوع مكرر ولا داع لبذل المزيد من الجهد ... 3 0 0%
المصوتون: 24. أنت لم تصوت في هذا الإستفتاء

   

mabdulraheman
:: عضو .. ::
تاريخ التسجيل: Jun 2009
المشاركات: 12
نشاط [ mabdulraheman ]
قوة السمعة:
قديم 21-03-2011, 04:22 PM المشاركة 225   
افتراضي



جزاك الله كل خير على التوضيح ياغالي

اعلانات

mabdulraheman
:: عضو .. ::
تاريخ التسجيل: Jun 2009
المشاركات: 12
نشاط [ mabdulraheman ]
قوة السمعة:
قديم 21-03-2011, 04:26 PM المشاركة 226   
افتراضي


أخي الغالي وليد وكل من يستطيع مساعدتي أرجوا منكم الله لا يهينكم أن

تساعدوني في هذا الطلب للضرورة


فمشروع مهم جدا لدي متوقف على هذه الطلب

أريد كود لـ pic-16f84

ليعمل كاتايمر يوصل الريلاي لمدة 12 ساعة ثم يفصله لمدة 10 ثواني ثم يعيد

تشغيله مره أخرى وهكذا على الدوام

لأن لدي جهاز يحتاج كثرة ريستارت تقريباً مرتين في اليوم فأحتاج هذه الدائرة لأجل ذلك

أرجوا أن تساعدوني ومشكورين جداً مقدماً.


وكيف لي أن أسجل إسمي كمتابع للدورة يا أخ وليد ...

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية نوفلsys
نوفلsys
:: مهندس ::
تاريخ التسجيل: Mar 2009
الدولة: الاردن
المشاركات: 49
نشاط [ نوفلsys ]
قوة السمعة:
قديم 21-03-2011, 07:48 PM المشاركة 227   
افتراضي


[QUOTE=wleed antar;518729]هذا ليس ترانزستور ولكنه منظم جهد ، أتمنى أن أكون فهمت استفسارك صح


شكر جزيلا .... موقف محرج خلص هههههههههه


الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,484
نشاط [ wleed antar ]
قوة السمعة:
قديم 21-03-2011, 08:09 PM المشاركة 228   
افتراضي



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

أقصد من هذا الموقف بأن العلم ليس له كبير !!

إخوانى الكرام بمشيئة الله سأرفع لحضراتكم أول دروس المقاطعات خلال الساعات القادمة
والسلام عليكم ورحمة الله


oman_boy
:: مهندس ::
تاريخ التسجيل: Dec 2010
المشاركات: 16
نشاط [ oman_boy ]
قوة السمعة:
قديم 21-03-2011, 10:20 PM المشاركة 229   
افتراضي


السلام عليكم اخوي
نظرا لضيق وقتك وشوقي الكبير في التعلم :-)
اذا لم تمانع
ترسلي بعض البرامج البسيطه الاساسيه في هذه المجالات
1- المقاطعات
2- الربط اللاسلكى بين متحكمان
3- الشاشة السومية Graphic LCD
4- التحويل التناظرى للرقمى
سوف احاول فهمه وتحليله بنفسي ان شاء الله
البرامج الجاهزه في البرنامجmikrobasic شويه معقده
ويكون في ما بينانا نقاش ان شاء الله
وشكرا جزيلا :-)


الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,484
نشاط [ wleed antar ]
قوة السمعة:
قديم 21-03-2011, 11:20 PM المشاركة 230   
افتراضي


السلام عليكم اخوي
نظرا لضيق وقتك وشوقي الكبير في التعلم :-)
اذا لم تمانع
ترسلي بعض البرامج البسيطه الاساسيه في هذه المجالات
1- المقاطعات
2- الربط اللاسلكى بين متحكمان
3- الشاشة السومية Graphic LCD
4- التحويل التناظرى للرقمى
سوف احاول فهمه وتحليله بنفسي ان شاء الله
البرامج الجاهزه في البرنامجmikrobasic شويه معقده
ويكون في ما بينانا نقاش ان شاء الله
وشكرا جزيلا :-)
عليكم السلام ورحمة الله وبركاته
لو عندى كتب أو شروحات لكنت وفرت على نفسى والله ورفعتها من بدرى وأنا قلت من يستطيع المساعدى والمساهمة فى هذه الدورة فليتفضل . أما عن مصدر المعلومات فبتوفيق من الله كما قلت من قبل لغة برمجة بيزيك ثم محاولة تطبيق ذلك حاليا على المايكروبيزيك فربما هذا يكون سبب لسهولة الأمر بالنسبة لى ولو أنى أملك مصدر معلومات غير الأمثلة المحدودة التى تأتى مع البرنامج لرفعتها فمصدرى هو نفس مصدرك ، وأنا الآن أقوم بتجربة ما أريد رفعه كى يكون مجربا قبل الشرح
والله الموفق والهادى


الصورة الرمزية نوفلsys
نوفلsys
:: مهندس ::
تاريخ التسجيل: Mar 2009
الدولة: الاردن
المشاركات: 49
نشاط [ نوفلsys ]
قوة السمعة:
قديم 22-03-2011, 12:29 AM المشاركة 231   
افتراضي


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

أقصد من هذا الموقف بأن العلم ليس له كبير !!

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


الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,484
نشاط [ wleed antar ]
قوة السمعة:
قديم 22-03-2011, 02:35 AM المشاركة 232   
افتراضي


بارك الله على هذه الكلامات
ولكن الموقف المحرج بنسبه لي هو اني اقراء داتا شيت لترانزستور وهو LM35
كما تفضلت اخي الكريم المحرج هو أن يدعى أحد أنه عالم بكل شئ .
ولكن اريد ان تحدث بشئ بما اننا نعتبر من الاشخاص الاخرين كنت في احد الورش افحص بورد كندشن ومعي ساعه الفحص راني احد الفنين وقال ان ساعه الفحص يستخدمها الاغبياء ...... في النهايه عطل البورد هذا الفني ذكي والحمد الله اصلاحت البورد عن طريق ساعه الفحص .....
اتمنا ان الله يوفقق و يهونا عليك ......
بارك الله فيك أخى ،
أنا لا أعرف ماتقصده بساعة الفحص هذه ولكن على أى حال مادمت تمتلك أى وسيلة تقيس بيها أو تختبر بها بطريقة علمية فلا بأس ، ولكن الخطر والغباء هى طريقة رأيتها على أحد الأشخاص زمان فى ورشة يقوم بالمسك بسلكه ويعمل على توصيلها عشوائيا بين نقطتان عشوائيتان عندما يقوم بإصلاح الكاسيت حتى يسمع صوت فيقوم بلحامهما وإن حدث قصر وتلف فيتركه .
لكن هناك مهارات تختلف حسب الخبرات وكنت أنوى فتح موضوع إن شاء الله عن مهارات الصيانة ،
ويشمل طريقة مسك طرفى المالتميتر بيد واحدة والتحكم بهما جيدا بيد واحدة وتستفيد بيدك الثانية بمسك البورده أو أى شئ آخر وكذلك طرق لحام الترانزستور بدون أن تتسبب الحرارة فى إتلافه وكذلك فك الدوائر المتكاملة ، وكذلك طريقة اختبار حجر البطارية الجيد من الضغيف عن طريق لمس الحجر بإصبع اليد بدون استخدام جهاز الآفوميتر وبدون الإستعانة بأى كابلات توصيل وبدون أى نوع من المعادن مطلقا فقط يديك البشرية وطبعا هذه الطريق لن تستطيع قراءة قيمة الفولت هل هى 1 فولت أم 1,5 فولت إنما تستطيع معرفة هل الحجر يزيد عن واحد فولت أم أقل تقريبا وهى مفيدة فى المواقف المفاجأة والتى لا تمتلك فيها جهاز قياس ولا شئ ، وغير ذلك من المهارات إن شاء الله ، فما أقصده هو أنك تصرف بأى وسيلة متاحة لك حسب ظروف المكان والزمان والمهم النتيجة ،
وفقك الله .
===================================






المقاطعات Interrupt




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



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




السجل الخاص بالمقاطعة يسمى intcon




هذا السجل يتكون من ثمانى بتات أى واحد بايت وكل بت مسؤل عن خاصية من خواص المقاطعة


البايت = 8 بت = 255




كل ما نريد معرفته الآن هو ماذا يقابل كل بت من الثمانى بتات من وظيفة للمقاطعة ؟



البت الثامن : هو البت الأخير وتفعيله بوضع قيمة 1 يسمح لنا تفعيله أن نستخدم أى حالة من المقاطعات بصفة عامة . 10000000% طبعا هنا كتبت واحد فى الخانة الثامنة وسيتم وضع قيمة واحد بدلا من صفر فى الخانات الأخرى حسب حاجتنا لنوع معين من المقاطعة كما سيتضح ، أما إن أردنا إلغاء المقاطعات فيكفينا وضع صفر فى البت الثامن بدلا من واحد صحيح وبالتالى فإن باقى السجل يصبح بدون أى أهمية لما فيه من قيم !

البت السابع : تفعيله بوضع واحد منطقى يسمح بتشغيل بعض الملحقات مثل مديول التحويل من تناظرى إلى رقمى وتصفيره بوضع قيمة صفر تتم فى حالة عدم حاجتنا لهذه الخاصية .

البت السادس : تفعيله بقيمة واحد منطقى تعنى تفعيل المقاطعة الخاصة بالتايمر زيرو وهو سجل من ثمانى بتات يزداد بقيمة واحد صحيح مع كل دورة من دورات المذبذب حتى يصل إلى آخر قيمة للبايت وهى 255 وعندها يعود إلى الصفر وبما أن هذا التايمر مرتبط مع نبضات المذبذب بغض النظر عن سير البرنامج فإن هذا يمكننا من استخدام زمن محدد لتطبيقات مختلفة لاحقا وسيتضح لاحقا فى المشاريع بتفاصيل أكثر .

البت الخامس : تفعيله بقيمة واحد منطقى يعنى أن المتحكم سيراقب حدوث إختلاف فى الفولت الرقمى سواء واحد منطقى أو صفر على طرف RB0 وهو البت الأول من المنفذ B يجب أن يكون طرف إدخال كى يتم مراقبته

البت الرابع : تفعيله بقيمة واحد صحيح يعنى تفعيل المقاطعة على الأطراف ( RB4 , RB5 , RB6 , RB7 ) بنفس الطريقة الخاصة بالبت الخامس بمعنى أن أى تغير فى قيمة الفولت الرقمى الواقع على أى من هذه الأطراف تحدث المقاطعة .

وهنا وقبل أن ننتقل لما تبقى من بتات لنا وقفة توضح لنا فائدة المقاطعة وفائدة البتات التالية :-
فى بعض البرامج يقوم المتحكم بتنفيذ عدة تعليمات والتى من ضمنها تعليمة تعنى هل الطرف كذا عليه واحد منطقى ؟؟ إذا كان نعم فقم بالذهاب إلى كذا وإن كان لا فقم بالذهاب إلى كذا

وكنا نحتاج فى برامجنا التى ذكرناها من قبل فى هذه الدورة حلقة تكرارية تراقب حركة المفاتيح المتصلة بأطراف الدخل أما بدون حلقة تكرارية فإن المتحكم سيبحث فى طرف الدخل مرة واحدة فى جزء من الثانية قد يصل إلى 2 مايكروثانية زمن تنفيذ التعليمة ثم يترك هذه المراقبة ويذهب لتكملة عدة إجراءات !

ولكن هنا نجد ميزة جديده باستخدام ما يسمى بالمقاطعات ، فعند حدوث تغير فى طرف خاص بعملية المقاطعة الخارجية مثلا حتى وإن كان المتحكم مشغول فى عدة تعليمات أخرى أو يقوم بتنفيذ تعليمة مثل (Delay_ms(1000 ومنتظر حتى إتمام ذلك الزمن ليخرج من التعليمة فنجد أن المقاطعة التى حدثت على الطرف المحدد والتى حدثت مرة أثناء إنشغال المتحكم فإنها تركت علامة دائمة تخبر المتحكم بأنه تم أثناء إنشغالك بالضغط على مفتاح كذا فقم بإجراء اللازم ! !

كيف ذلك ؟؟

عند حدوث تغيير فى الفولت على الطرف الخاص بعملية المقاطعة الخارجية أثناء إنشغال المتحكم بتنفيذ تعليمة من التعليمات فإن ذلك تسبب فى ترك شئ يسمى مفكرة ليراها المتحكم عند عودته من إنشغاله ، والمفكره هذه هى عبارة عن بت من البتات الموجودة فى نفس سجل المقاطعة المسمى intcon وهذا البت يتم إمتلاءه بقيمة واحد صحيح بمجرد حدوث المقاطعة الخارجية وبمجرد أن يبحث المتحكم فى هذا البت ويجد قيمة واحد صحيح يعلم أن هناك أمر قد حدث على طرف المقاطعة الخارجية فيتم قطع أى عمل يقوم به المتحكم لينفذ تعليمة خاصة بهذه الحالة الهامة .


مثال من الحياة اليومية :

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


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


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

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

والجرس هنا هو البت الثالث والبت الثانى والبت الثالث كل منهم يأخذ القيمة واحد عند حدوث مقاطعة معينة حتى يأتى المتحكم من خلال التعليمات لمراقبة هذه البتات الأخيرة لينظر هل بأى منهم قيمة واحد صحيح ؟؟ وبالتالى يعلم المتحكم بأن هناك مقاطعة تمت ! !
وبما أن هذه البتات للإعلام فهى تسمى بتات علم حدوث مقاطعة .

البت الثالث : هو علم حدوث مقاطعة على التايمر زيرو أى إمتلاءه عن آخره ، أى إمتلاء سجل التايمر زيرو بقيمة 255 وطبعا سيعود التايمر تلقائيا لقيمة الصفر ليبدأ من جديد لكن البت الثالث هنا سيظل به قيمة واحد صحيح من أجل إعلام المتحكم بأنه قد حدث إمتلاء للتايمر زيرو فيقوم المتحكم بإجراء المطلوب فى هذه الحالة .

وكما يضع صياد الطعم فى الصنارة ويهتز الجرس فإن الصياد يقوم بإجراء جذب الخيط كى يأخذ السمكة ولكن !؟ إذا لم يجد السمكة ؟؟
فإن ذلك يعنى أن السمكة أكلت الطعم ثم هربت ومن هنا فإن صوت الجرس كان دليلا على إجراء عملية جذب الخيط بواسطة الصياد فإن لم يجد سمكة فهو بحاجة لوضع طعم من جديد كلما سمع صوت الجرس !

ونحن هنا بحاجة لمسح قيمة الواحد الصحيح من هذا البت المسمى بت العلم من أجل السماح له بإعادة الإمتلاء بقيمة واحد صحيح من جديد فى المرة التالية . وذلك عن طريق وضع قيمة صفر فى هذا البت هكذا :-

INTCON.2 = 0
وبذلك نكون قمنا بتصفير البت الثالث

البت الثانى : هو بت علم أيضا ولكن يمتلئ بواحد صحيح عند حدوث تغير فولت على طرف RB0
ويتم تصفيره أيضا بعد ذلك هكذا
INTCON.1 = 0

البت الأول : هو بت علم أيضا لكنه خاص بالأطراف (RB4 , RB5 , RB6 , RB7 )
ويتم تصفيره هكذا
INTCON.0 = 0

نحن الآن بحاجة لمزيذ من الأمثلة التى توضح لنا كيفية تحديد نوع المقاطعة ونوع الفولت الإفتراضى على طرف المقاطعة الخارجية والذى سيعتبره المتحكم هو الجهد الإفتراضى حتى إذا تغير من قيمة صفر إلى واحد تحدث المقاطعة

فكيف لنا أن نحدد أن الجهد الإفتراضى هو صفر والمطلوب مراقبته إذا تحول إلى واحد منطقى أو العكس ؟!

هذا يكون عن طريق مسجل الوظائف
Option_reg

يتبع لاحقا إن شاء الله
والسلام عليكم ورحمة الله وبركاته


التعديل الأخير تم بواسطة : wleed antar بتاريخ 22-03-2011 الساعة 02:46 AM


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 05:13 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)