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

أدوات الموضوع

astaghfiroallah
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2010
المشاركات: 79
نشاط [ astaghfiroallah ]
قوة السمعة:0
قديم 13-09-2016, 07:50 PM المشاركة 1   
ha طلب مساعدة في برمجة دائرة بسيطة Twitter FaceBook Google+



السلام عليكم ، عيدكم مبارك
أريد أعرف كيف أجعل 7segment تتوقف عن العد و لا تنطفئ عند الضغط على الزر الأعلى و حين الضغط على الزر السفلي تزيد بعدد واحد ، البرمجة ب mikroc


التعديل الأخير تم بواسطة : astaghfiroallah بتاريخ 13-09-2016 الساعة 07:53 PM السبب: خطأ في الكتابة
اعلانات

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 14-09-2016, 04:00 AM المشاركة 2   
x4 اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


السلام عليكم ، عيدكم مبارك
أريد أعرف كيف أجعل 7segment تتوقف عن العد و لا تنطفئ عند الضغط على الزر الأعلى و حين الضغط على الزر السفلي تزيد بعدد واحد ، البرمجة ب mikroc
السلام عليكم ورحمه الله ..



أخى تم كتابة الكود حسب الوظائف التاليه ..

1__ عند تشغيل الدائرة تبدأفى العد التصاعدى وكلما وصلت الى رقم " 9 " تبدأ العد من جديد ..

2__ عند الضغط على المفتاح الأعى يتوقف العداد .. وعند الضغط مرة أخى على المفتاح الأعلى يزيد العد بواحد عند كل ضغطه ..

3__ المفتاح الأسفل عند الضغط عليه .. ينقص العداد .. بواحد عن كل ضغطه .. ولاكن المفتاح الأسفل لا يعمل عند بدايه تشغيل البرنامج .. يجب الضغط على المفتاح الأعلى ليتوقف العداد .. ويمكن وبعد يمكنك زيادة العداد أو النقصا بكلا المفتاحين الأعلى والأسفل ..

4__ أيضااا تم أضافة مفتاح ثالث .. لتفعيل العداد ليبدأ العد فى حال كان متوقف ..


والمفتاح الثالث تم ربطة مع البن رقم " 5 " فى البورت " D
"


والأن مع الكود ........


كود:
        
     
 //   ENG / ABDALLA HYGAZY  //


      unsigned short mask(unsigned short num);
      unsigned int s1=0,loop=0,loop1=0;
      void interrupt(){
      INTCON=0b00100000;
      TMR0=0;
   //******************//
      portb=mask(s1);
      if(  PORTD.F6==0){  loop=1;   }
      if(  s1==10     ){  s1=0;     }
      if(  s1==0      ){  s1=0;     }
 }
//************************************//
      void main() {
      adcon1=0x06;
      OPTION_REG=0x81;
      INTCON=0b10100000;
      TMR0=217;
      TRISB=0;   PORTB=0;
      TRISD=224; PORTD=0;
//**********************************//
        loop:
       loop1=0;
        while(loop==0)
     {
      delay_ms(500);
      s1++;
     }
//**********************************//
       loop1=1;
       loop=0;
       while(1)
     {
      if( PORTD.F7==0 ) { s1--;       delay_ms(150); }
      if( PORTD.F6==0 ) { s1++;       delay_ms(150); }
      if( PORTD.F5==0 ) { goto loop;  delay_ms(150); }
    }
   
   }
//************************************//
 unsigned short mask(unsigned short num){
 switch (num){
 case 0 : return 0x3F;
 case 1 : return 0x06;
 case 2 : return 0x5B;
 case 3 : return 0x4F;
 case 4 : return 0x66;
 case 5 : return 0x6D;
 case 6 : return 0x7D;
 case 7 : return 0x27;
 case 8 : return 0x7F;
 case 9 : return 0x6F;
}
}
   
//*****************-------    END    ------********************//




تحياتى لك وبالتوفيق


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 14-09-2016 الساعة 04:07 AM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


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

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025