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

   

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



التعليق على البرنامج :
1- مقدمة (رأس) البرنامج


/*
PIC16F628
Seven segment display
*/

2- تعريفات وإعلانات :
# تعريف أطراف الميكروكونترولر بأسماء الشرائح لتسهيل فهم وتتبع البرنامج فعلى سبيل المثال الطرف RB0 متصل بالشريحة a فيعرف : sbit seg_a at RB0_bit; .

// Define seven segment connections

sbit seg_a at RB0_bit;

sbit seg_b at RB1_bit;

sbit seg_c at RB2_bit;

sbit seg_d at RB3_bit;

sbit seg_e at RB4_bit;

sbit seg_f at RB5_bit;

sbit seg_g at RB6_bit;

# الإعلان عن متغير بالاسم count مع إسناد (تخصيص) قيمة ابتدائية له هى الصفر count=0

unsigned short count=0;

3- بداية الدالة الرئيسية :
void main() {

· تهيئة المنافذ والأطراف : جميع أطراف المنفذ PORTB والمنفذ PORTA كمخارج فيما عدا الطرف RA5 فهو مدخل الإعادة MCLR


TRISB = 0b00000000; // PORTC All Outputs

TRISA = 0b00100000; // PORTA All Outputs, Except RA5 = MCLR

· الدخول فى حلقة غير منتهية do{….} while(1) وفيها يتم تنفيذ :
do {

اعلانات

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


# تنفيذ تعبير switch (count) أى :
أ‌- تقييم قيمة المتغير count (وهو فى الوضع الابتدائى بصفر) ثم
ب‌- مقارنة نتيجة التقييم بجميع الحالات التى يذكر فى بدايتها كلمة case يليها ثابت وهو هنا من صفر إلى 15 .
ت‌- الحالة التى يتم فيها تطابق التقييم مع المقارنة يتم تحويل مسار البرنامج إليها أى تنفيذ التعليمات التى تتضمنها .
وبما أن المتغير count يبدأ بالصفر فإن التطابق يحدث مع case 0 : ومن ثم يتم تنفيذ محتويات هذه الحالة وهى : جعل الشرئح المناظرة للرقم صفر فى الحالة المرتفعة 1 حتى تضىء هذه الشرائح لعرض الرقم صفر . تنتهى محتويات الحالة بكلمة break حيث يتم الخروج عبارة switch (count){ …..}

switch (count) {

case 0 : seg_a=1; seg_b=1; seg_c=1;

seg_d=1; seg_e=1; seg_f=1; seg_g=0;

break;

case 1 : seg_a=0; seg_b=1; seg_c=1; seg_d=0;

seg_e=0; seg_f=0; seg_g=0;

break;

case 2 : seg_a=1; seg_b=1; seg_c=0; seg_d=1;
seg_e=1; seg_f=0; seg_g=1;

break;

case 3 : seg_a=1; seg_b=1; seg_c=1; seg_d=1;

seg_e=0; seg_f=0; seg_g=1;

break;

case 4 : seg_a=0; seg_b=1; seg_c=1; seg_d=0;

seg_e=0; seg_f=1; seg_g=1;

break;

case 5 : seg_a=1; seg_b=0; seg_c=1; seg_d=1;

seg_e=0; seg_f=1; seg_g=1;

break;

case 6 : seg_a=1; seg_b=0; seg_c=1; seg_d=1;

seg_e=1; seg_f=1; seg_g=1;

break;

case 7 : seg_a=1; seg_b=1; seg_c=1; seg_d=0;

seg_e=0; seg_f=0; seg_g=0;

break;

case 8 : seg_a=1; seg_b=1; seg_c=1; seg_d=1;

seg_e=1; seg_f=1; seg_g=1;

break;

case 9 : seg_a=1; seg_b=1; seg_c=1; seg_d=0;

seg_e=0; seg_f=1; seg_g=1;

break;

case 10 : seg_a=1; seg_b=1; seg_c=1; seg_d=0;

seg_e=1; seg_f=1; seg_g=1;

break;

case 11 : seg_a=0; seg_b=0; seg_c=1; seg_d=1;

seg_e=1; seg_f=1; seg_g=1;

break;

case 12 : seg_a=1; seg_b=0; seg_c=0; seg_d=1;

seg_e=1; seg_f=1; seg_g=0;

break;

case 13 : seg_a=0; seg_b=1; seg_c=1; seg_d=1;

seg_e=1; seg_f=0; seg_g=1;

break;

case 14 : seg_a=1; seg_b=0; seg_c=0; seg_d=1;

seg_e=1; seg_f=1; seg_g=1;

break;

case 15 : seg_a=1; seg_b=0; seg_c=0; seg_d=0;

seg_e=1; seg_f=1; seg_g=1;

break;

} //case end

# بعد الخروج من عبارة switch يتم تزايد العداد بواحد فيصبح count = 1 للتجهيز لعرض الرقم 1
count ++;

# بعد الانتهاء من عرض الأرقام من 0 إلى 15 يتم إعادة العرض مرة أوخرى ويتم ذلك عن طريق عبارة الشرط if بمعنى إذا كانت محتويات المتغير تساوى 16 يتم وضع صفر بدلا منها .

if(count ==16) count =0;

# فترة تأخير أو انتظار 1 ثانية بين عرض رقم وآخر للسماح بمشاهدة المعروض

Delay_ms(1000); // Wait for 1 sec before updating the display

# تكرار ما سبق بصفة مستمرة

} while(1); // Infinite Loop
# نهاية الدالة الرئيسية
}

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

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


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


http://www.4shared.com/file/p80-i6Qz/EX9-7-SEGMENT-INTERFACE.html


metalljack
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2008
الدولة: syria
المشاركات: 893
نشاط [ metalljack ]
قوة السمعة:
قديم 21-04-2011, 12:23 AM المشاركة 68   
افتراضي


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


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


قال صلى الله عليه وسلم ( إن الله وملائكته وأهل السماوات والأرض حتى النملة في جحرها وحتى الحوت ليصلون على معلمي الناس الخير)أخرجه أبو داود
اللهم صلى على سيدنا محمد .

أخى الكريم

شكرا جزيلا لك

بارك الله فيك

اللهم وفقنى وإياك لفعل الخير

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


الصورة الرمزية أبو معاذ 2010
أبو معاذ 2010
:: مشرف قسم الإنتاج الزراعي والحيواني والطاقة البديلة ::
تاريخ التسجيل: Feb 2010
المشاركات: 2,039
نشاط [ أبو معاذ 2010 ]
قوة السمعة:
قديم 21-04-2011, 02:05 AM المشاركة 70   
افتراضي


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

مع تحياتي و دعواتي الخالصة .


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


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

مع تحياتي و دعواتي الخالصة .

اخى الكريم

شكرا جزيلا لك

بارك الله فيك

شكرا للتنبيه

لقد سقط سهوا

ها هو رابط الملف

http://www.4shared.com/file/swdmrf-l/EX8-Timer0_as_Timer_and_Counte.html



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


الصورة الرمزية أبو معاذ 2010
أبو معاذ 2010
:: مشرف قسم الإنتاج الزراعي والحيواني والطاقة البديلة ::
تاريخ التسجيل: Feb 2010
المشاركات: 2,039
نشاط [ أبو معاذ 2010 ]
قوة السمعة:
قديم 21-04-2011, 03:49 AM المشاركة 72   
افتراضي


مشكور أستاذ ، وحفظك الله و رعاك .



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