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

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 15-10-2010, 11:44 PM المشاركة 9   
افتراضي



الدرس الثامن :

8- تفاصيل مجموعة تعليمات الميكروكونترولر PIC16


الرابط :

http://www.qariya.com/vb/showthread....d=1#post451136

اعلانات

الصورة الرمزية islem
islem
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2007
الدولة: algeria
المشاركات: 81
نشاط [ islem ]
قوة السمعة:
قديم 18-10-2010, 04:20 AM المشاركة 10   
افتراضي


hada arabt yachmal kol adross
http://www.hobbyprojects.com/pic_tut...tutorial1.html

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

الصورة الرمزية سلمى
سلمى
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2006
المشاركات: 115
نشاط [ سلمى ]
قوة السمعة:
قديم 26-10-2010, 02:14 AM المشاركة 11   
x4


السلام عليكم.....

الدروس مفيدة و قد استفدت منها ، بارك الله فيك أستاذنا و أعانك على المواصلة .... بانتظار المزيد


الصورة الرمزية اكزي
اكزي
:: عضو ذهبي ::
تاريخ التسجيل: May 2009
الدولة: المغرب iguizzi06*hotmail.com // www.facebook.com/iguizzi.abdallah
المشاركات: 2,253
نشاط [ اكزي ]
قوة السمعة:
قديم 26-10-2010, 02:44 AM المشاركة 12   
افتراضي


عمل جيد بارك الله فيك أخي الكريم


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 26-10-2010, 10:41 PM المشاركة 13   
افتراضي


الشكر الجيل لجميع الاخوة المشاركين

مع تمنياتى بدوام التوفيق


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 26-10-2010, 10:43 PM المشاركة 14   
افتراضي 9- مثال بسيط لشفرة أو كود : بلغة الأسمبلى :


9- مثال بسيط لشفرة أو كود : بلغة الأسمبلى :
لنعطى مثال على ما تعلمناه :
لا تحاول ترجمة هذا المثال الآن بالأسمبلر فسوف نفعل ذلك عندما نأتي لبرنامجنا الأولى.
نحن فقط نحاول إظهار كيف أن ما تعلمناه هو بالفعل جزء من البرمجة الفعلية ونحاول فى نفس الوقت التعرف على بعض التعليمات .
المثال يوضح طريقة التعامل مع المنافذ.
أولا: نحتاج للتحويل من البنك 0 الى البنك 1 .
نفعل ذلك باستخدام سجل الحالة STATUS الواقع بالعنوان 03h بجعل الخانة 5 بقيمة 1 .



BSF 03h,5


هذه التعليمة معناها ( إجعل الخانة رقم 5 بالسجل الموجود بالعنوان 03h بالقيمة 1 )
الحرف F يعنى إننا بصدد استخدام موقع بالذاكرة ( RAM) أو ما اطلقنا عليه سجل .
والرقمان (المعاملان) : 03h هو عنوان سجل الحالة STATUS و 5 هو رقم الخانة .
نحن الآن فى البنك رقم 1






وضع القيمة الثنائية 00110 ( حرف b يعنى أن الرقم بالثنائى) فى سجل العمل العام W
يمكنا بالطبع فعل ذلك بالسداسى عشر فى هذه الحالة تكون التعليمة :



MOVLW 06h



كلاهما يصلح .
MOVLW تعنى (نقل أو ضع القيمة الثابتة والمحددة بالسجل W ) أى ضع القيمة التالية مباشرة بالسجل W
الآن نحتاج إلى وضع هذه القيمة فى السجل TRISA لتحديد وتوصيف المنفذ :



MOVWF 85h


هذه التعليمة تعنى ( إنقل أو إنسخ محتويات السجل W إلى السجل ذو العنوان التالى ) فى هذه الحالة فإن العنوان يشير إلى السجل TRISA
الآن أصبح فى السجل TRISA القيمة 00110 ويمكن توضيح ذلك بالشكل :




الآن تم تحديد وتوصيف أطراف المنفذ A

الآن يجب علينا العودة مرة أخرى إلى البنك رقم 0 للتعامل ومعالجة اى بيانات .

BCF 03h,5


هذه التعليمة تفعل عكس فعل التعليمة BSF

وهى تعنى ( اجعل الخانة بالسجل بصفر (

الرقمان أو المعاملان التابعان هما عنوان السجل (فى هذه الحالة السجل STATUS) ) ورقم الخانة المطلوب جعلها بصفر وهى فى هذه الحالة الخانة رقم 5 .

الآن جعلنا الخانة 5 بمسجل الحالة بصفر .
إذا نحن الآن فى البنك رقم 0 .
والشفرة الآن تصبح :






لقد القينا نظرة على 4تعليمات وباقى 31 تعليمة
إلى لقاء قريب ان شاء الله

الكتابة على المنافذ :


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 26-10-2010, 10:50 PM المشاركة 15   
افتراضي 10- الكتابة على المنافذ


10- الكتابة على المنافذ :

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

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




وهو مراجعة للتدريب السابق .
والفرق أننا هنا جعلنا كل الأطراف كمخارج بوضع 0 فى السجل TRISA
والأن ماذا نفعل لجعل دايود مشع يضىء .
نفعل ذلك بجعل جهد أحد الأطراف الموصل إلى الدايود المشع مرتفع (أى +5 فولت ) . بعبارة اخرى أرسال ‘1’ الى الطرف .
واليك الطريقة :




الأن الدايود المشع أضاء .
وإذا أردنا أن نطفأه :



الآن تم إضاءة وإطفاء الدايود المشع لمرة واحدة .
وإذا أردنا حدوث ذلك باستمرار نفعل ذلك بجعل البرنامج يعود مرة أخرى إلى البداية .
نفعل ذلك أولا بتعريف عنوان أو لافتة (يافطة (label فى أول البرنامج ونخبر البرنامج بأن يحافظ على العودة إلى هذا العنوان .
تعريف العنوان سهل .
نكتب اسمه وليكن START ونكتب الكود







فكما ترى :
نكتب كلمة ‘Start’ فى أقصى اليمين فى بداية البرنامج وفى النهاية نكتب ‘goto Start’
التعليمة ‘goto’ تفعل تماما كما تقول (إذهب إلى)
هذا البرنامج يقوم بإضاءة وإطفاء الدايود المشع باستمرار طالما إن التغذية واصلة الى الدائرة وتقف عند فصل التغذية .
أعتقد أنه يجب علينا النظر مرة أخرى إلى البرنامج






حسنا أزلنا التعليقات .
لاحظ :
فقط تعليمات وأرقام ؟وهذا يمكن أن يكون مربكا بعض الشيء وخصوصا عند محاولة تصحيح البرنامج debug في وقت لاحق ، وأيضا عند كتابتك لشفرة أو كود يجب عليك أن تتذكر كل العناوين.
حتى مع وجود التعليقات في مكانها يحدث أيضا قليل من الارتباك .
ما نحتاج إليه هو إعطاء أسماء لهذه الأرقام .
وهذا هو عمل (ماتنجزه) تعليمة ( الموجه ‘equ’ (
تعليمة الموجه ‘equ’ ببساطة تعنى شىء يساوى شىء آخر .
وهى ليست من تعليمات الميكروكونترولر ولكنها موجه من موجهات الأسمبلر .
بهذه التعليمات يمكننا تعيين (تخصيص) اسم لعنوان (موقع- سجل -ملف) أو من حيث البرمجة تخصيص اسم لثابت.
لنفعل ذلك فى برنامجنا لترى كيف أنه أصبح من السهل قراءة البرنامج .










والآن بعد أن تم تعريف القيم الثابتة لنرى وضعها فى البرنامج .
القيم الثابتة يجب أن تعرف قبل استخدامها فى البرنامج لذلك تأكد دائما من أنك قد وضعتها فى بداية البرنامج .
سوف نكتب البرنامج بدون تعليقات مرة أخرى لتقارن بنفسك :










أرجوا أن تكون هذه الثوابت قد جعلت البرنامج أسهل ولو قليلا على الرغم من عدم وجود التعليقات .

الى لقاء قريب ان شاء الله


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 27-10-2010, 12:37 AM المشاركة 16   
افتراضي 11- شرح الشكل النموذجى للبرنامج بلغة الأسمبلى مع مثال كامل


11- شرح الشكل النموذجى للبرنامج بلغة الأسمبلى مع مثال كامل :
البرنامج النموذجى المقترح يتكون من :
أولا : المقدمة أو رأسالبرنامج:
يبدأ البرنامج بالمقدمة أو رأس البرنامج : وهو مكون من خمسةأسطر (أو أى عدد)كلها تعليقات commentنبدأ كلتعليق بالفاصلة المنقوطة.
هذه الأسطر عبارة عن : تعريف بعنوان البرنامج – وصف مختصر لوظيفته – وتاريخ إنشاءة – والمؤلف أو الكاتب وأى شىء آخر يمكن أن تضيفه كما فى الشكل .




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

ثالثا : أول سطر فعال فى البرنامج:

هذا السطر يعرف الميكروكونترولر المستخدم باستخدام موجه لغة الاسمبلى list
(يمكن إضافة بعض الموجهات الأخرى هنا وسنذكرها فى حينها) .




التعديل الأخير تم بواسطة : F.Abdelaziz بتاريخ 27-10-2010 الساعة 12:42 AM


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