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

   

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 07-07-2017, 11:04 AM المشاركة 9   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما



الشكر قليل بحقك الف الف الف شكر .
لا شكر علي واجب أخي .. بالتوفيق

اعلانات

محمد55555
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2013
المشاركات: 80
نشاط [ محمد55555 ]
قوة السمعة:
قديم 09-07-2017, 02:03 PM المشاركة 10   
افتراضي


جزاك اللة كل خير

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

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 10-07-2017, 04:09 AM المشاركة 11   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


وجزاك بالمثل .. شكرااا لك أخي الكريم بارك الله فيك ...


رسول العراق
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2009
المشاركات: 90
نشاط [ رسول العراق ]
قوة السمعة:
قديم 11-07-2017, 08:51 PM المشاركة 12   
افتراضي


السلام عليكم ورحمه الله

أخي الكريم لقد صممت مثل هذا المشروع لأحد الأخوه هنا .. واليك المشروع

اليك صورة للمشروع


[/IMG]


هذا العداد هو عداد تصاعدى أو تنازلى حسب اختيارك للعداد ..

يوجد مفاتيح مكتوب أمام كل مفتاح الوظيفة المخصصة لة ..



مثال أو شرح للعداد ..

من خلال مفتاحان "" أختار العدد "" يمكنك أختيار رقم ما بين ( 1 ) أو ( 99 ) وبعد ذالك أضغط على مفتاح "" تصاعدى "" وتلاحظ أن العداد قد تم تصفير الشاشات وبدأ فى العد التصاعدى وأيضااا يوجد لدات للدالة على حالة العداد لاحظ الصورة .. وعند وصول العداد الى الرقم اللذى تم ادخالة تلاحظ وقوف العداد وأضاء ليد : أنتهى الوقت .. وللعد مرة أخرى بنفس الأرقام المدخلة أضغط على مفتاح "" تضاعدى " ليبدأ العد من جديد ..

وهناك مفتاح " تصفير العداد " لكى تبدل حالة العداد من تصاعدى الى تنازاى أضغط على " تصفير " العداد .. ولأختيار عداد تنازلى يبدأ من رقم ( 99 ) الى ( 00 ) أضغط على " تنازلى " ولاحظ عندما يصل العداد الى ( 00 ) يضئ ليد أنتهى الوقت ..

واليك كود البرنامج ..


كود:
   // ENG ABDALLA HYGAZY  //
  
   // TEMR ++  7SEGMENT    //
   
  //  DATDA / 2016 / 11 / 20 //
  
  #define LED_OF PORTD.F0=0;

unsigned short mask(unsigned short num);
unsigned int SEGMENT1=0,SEGMENT2=0,SEGMENT3=0,SEGMENT4=0,X=0;
unsigned int SEGcopy1=0,SEGcopy2=0;

  void interrupt(){
    porta=1;
    portb=mask(SEGMENT1);
    delay_ms(2);
    porta=2;
    portb=mask(SEGMENT2);
    delay_ms(2);
    INTCON=0b00100000;
    TMR0=0;
}
 //-------------------------------------------------------------//

    void SEGMENT_up() {
      SEGMENT1=0;  SEGMENT2=0; LED_OF PORTD.F3=0;
      while(X==0){
      if( PORTC.F2==1 ) { delay_ms(100);  X=1;   }
      PORTD.F4=1; PORTD.F1=1;
      delay_ms(100);
      SEGMENT2++;
      if( SEGMENT2==10){SEGMENT2=0;SEGMENT1++;  }
      if( SEGMENT1==10){SEGMENT1=0;  }
      if( SEGMENT1&&SEGMENT2==10)
      { SEGMENT1=0; SEGMENT2=0; }
      if(SEGMENT2==SEGcopy2&&SEGMENT1==SEGcopy1){PORTD.F0=1; X=1;  }
   }
  }
//-------------------------------------------------------------------//
   void SEGMENT_dwen() {
     SEGMENT2=9;  SEGMENT1=9; X=0; LED_OF PORTD.F3=0;
     while(X==0){
     if( PORTC.F2==1 ) { delay_ms(100);  X=1;   }
     PORTD.F4=1;  PORTD.F2=1;
     delay_ms(100);
     SEGMENT2--;
     if( SEGMENT2<1){SEGMENT2=9;SEGMENT1--;  }
     if( SEGMENT1<1){SEGMENT1=9;  }
     if( SEGMENT1==9&&SEGMENT2==9)
     { SEGMENT1=9; SEGMENT2=9; PORTD.F0=1; X=1; }
  }
 }

//------------------------------------------------------//
     void main() {
   OPTION_REG=0b10000101;
   INTCON=0b10100000;
   TMR0=217;
   TRISB=0;   PORTB=0;   TRISD=0; PORTD=0;
   TRISC=255; PORTC=0;   TRISA=0; PORTA=0;
   
    while(1){
    PORTD.F4=0;  PORTD.F3=1; PORTD.F1=0; PORTD.F2=0;

    if( PORTC.F3==1 ) { delay_ms(100); SEGMENT_up(); X=0;   }
    if( PORTC.F4==1 ) { delay_ms(100); SEGMENT_dwen();X=0; }
     if(PORTC.F0==1){SEGMENT2++; delay_ms(100);
     if( SEGMENT2==10){SEGMENT2=0;SEGMENT1++;  }
     if( SEGMENT1==10){SEGMENT1=0;  }
     if( SEGMENT1&&SEGMENT2==10)
     { SEGMENT1=0; SEGMENT2=0; }
       SEGcopy1=SEGMENT1;  SEGcopy2=SEGMENT2;
   }
    //****************************************//
     if(PORTC.F1==1){
     delay_ms(100);
     SEGMENT2--;
     if( SEGMENT2<1){SEGMENT2=9;SEGMENT1--;  }
     if( SEGMENT1<1){SEGMENT1=9;  }
     if( SEGMENT1&&SEGMENT2==0)
     { SEGMENT1=9; SEGMENT2=9; }
     SEGcopy1=SEGMENT1;  SEGcopy2=SEGMENT2;
    }
//*******************************************//
   
    if(PORTC.F5==1){SEGcopy1=SEGMENT1=0; SEGcopy2=SEGMENT2=0; X=0; LED_OF }

  }
 }
unsigned short mask(unsigned short num){
switch (num){
case 0 : return 0xC0;
case 1 : return 0xF9;
case 2 : return 0xA4;
case 3 : return 0xB0;
case 4 : return 0x99;
case 5 : return 0x92;
case 6 : return 0x82;
case 7 : return 0xD8;
case 8 : return 0x80;
case 9 : return 0x90;
}
}





وايضااا المشروع كامل للتحميل ..

رابط التحميل ..
https://drive.google.com/open?id=0Bx...3hZUHBpSzlWS28

تحياتى لك ..

لو محتاج أى توضيح لا تتردد ..

بالتوفيق

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


magdy_3
:: مهندس متميز ::
تاريخ التسجيل: Aug 2006
الدولة: Philippines
المشاركات: 339
نشاط [ magdy_3 ]
قوة السمعة:
قديم 11-07-2017, 11:20 PM المشاركة 13   
افتراضي


السلام عليكم
بارك الله فيك اخى عبدالله على هذا المجهود
ولاكن اخى عبدالله لماذا لا تستخدم جملة FOR
سوف تختصر الكود بشكل كبير جدا
وشكرا


الصورة الرمزية محمود عطية
محمود عطية
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2006
الدولة: الاسكندرية
المشاركات: 457
نشاط [ محمود عطية ]
قوة السمعة:
قديم 16-09-2018, 10:20 AM المشاركة 14   
sun السلام عليكم


السلام عليكم
أخى الحبيب
لماذا لم تستخدم lcd أعتقد أنه سيكون أفضل .
شكرا جزيلا


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 17-09-2018, 06:06 AM المشاركة 15   
افتراضي


السلام عليكم
أخى الحبيب
لماذا لم تستخدم lcd أعتقد أنه سيكون أفضل .
شكرا جزيلا
وعليكم السلام ورحمه الله ..


بالنسبه للشاشه ... لأن معظم المشاريع التجاريه تحتاج الي شاشات 7سيجمنت لأنها قويه الإضائه وتكون الأرقام كبيره وواضحه لكي يلاحظ العامل العداد من مسافه بعيده ......
وافضل ان اكمل من حيث ما انتهي الأخرون ...اختار الصعب لأنه يعطي نتائج وشكل افضل ..

شكرااا لك اخي الكريم



الصورة الرمزية محمود عطية
محمود عطية
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2006
الدولة: الاسكندرية
المشاركات: 457
نشاط [ محمود عطية ]
قوة السمعة:
قديم 22-09-2018, 04:49 PM المشاركة 16   
sun السلام عليكم


السلام عليكم
أخى العزير
استخدام lcd يمكن أن يعرض الوظائف .
و روابط الموضوع لا تعمل
شكرا مقدما



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