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

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 30-04-2011, 09:05 PM المشاركة 9   
افتراضي



6- الدخول إلى حلقة do{….}while(1) الغير منتهية وفيها :
# اختبار حالة المفتاح المتصل بالطرف RA4 بعبارة if وداخلها شرط دالة الضغط على المفتاح بداية نتأكد أن طرف توصيل المفتاح فى الحالة المرتفعة (الوضع الابتدائى) ونسخ هذه الحالة (الحالة القديمة) فى خانة تذكر باسم oldstate1 بعد ذلك أختبار تحول طرف توصيل المفتاح إلى الحالة المنخفضة إى تم الضغط على المفتاح ويتم ذلك بإجراء عملية AND &&بين هذه الحالة والحالة القديمة فإذا كانت النتيجة حقيقية يتم التأخبر لمدة 200 ملى ثانية للاستقرار ثم تزايد محتويات سجل المتغير "number" بواحد وتصفير خانة الحالة القديمة للتجهيز للضغطة التالية .

كود:
do{
if (Button(&PORTA, 4, 1, 1)) { // Detect logical oldstate1 = 1; // Update flag } if (oldstate1 && Button(&PORTA, 4, 1, 0)) { // Detect one-to-zero transition Delay_ms(200); // If button is pressed, delay 0,2s and decrement "number" with 1; number = number +1; oldstate1 = 0; // Update flag }

اعلانات

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


# تكرار العمل للدخل الآخر مع تناقص المتغير "number"بواحد "number" .

كود:
if(Button(&PORTA,6,1,1)){ oldstate2 = 1; // Update flag }
if (oldstate2 && Button(&PORTA, 6, 1, 0)) { // Detect one-to-zero transition Delay_ms(200); // If button is pressed, delay 0,2s and decrement "number" with 1; number = number -1;
oldstate2 = 0; // Update flag }

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

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


# إذا تعدت محتويات السجل number العدد 9999 (حرف u ليؤكد أنه من النوع unsigned) يتم تصفيره


كود:
if (number > 9999u) // if it's more than 9999 go to 0; number = 0;


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 30-04-2011, 09:11 PM المشاركة 12   
افتراضي


# إستدعاء دالة استخلاص وتحويل محتويات السجل number لكود أسكى بغرض عرض نتيجة العد .

كود:
display_init(); // call display_init();


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


· إجراء أى عمليات رياضية أو منطقية على محتوى سجل المتغير number على سبيل المثال تشغيل خرج RB6 عندما يزداد العدد عن 10 (كمثال) وأيضا تشغيل مخرج آخر عندما يزداد العدد عن 20 وهكذا :

كود:
if(number>10) PORTB.B6=1;
else PORTB.B6=0;
if(number>20) PORTB.B7=1; else PORTB.B7=0;


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 30-04-2011, 09:14 PM المشاركة 14   
افتراضي


تكرار العملية بصفة دائمة .

كود:
} while(1); // infinite loop; }


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 30-04-2011, 09:16 PM المشاركة 15   
افتراضي


النتائج :






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


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 30-04-2011, 09:23 PM المشاركة 16   
افتراضي


الملفات الكاملة على الرابط :

http://www.4shared.com/file/-I4yxIyD/PIC16F628-COUNTER1.html



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