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

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

thelordforever
:: مهندس ::
تاريخ التسجيل: Oct 2009
الدولة: بغداد
المشاركات: 20
نشاط [ thelordforever ]
قوة السمعة:0
قديم 07-02-2017, 04:19 PM المشاركة 1   
ha مشكلة في التحكم بالارجل RB4 و RB5 للمايكروكنترولر16F677 Twitter FaceBook Google+



السلام عليكم ورحمة الله وبركاته..
واجهتني مشكلة في عمل الــ 7-SEGMENT حيث اني عملت البرنامج بالكامل وبقي معي هذه المعضلة

الـ 7-SEGMENT هي COMMON CATHODE واخذت لها لتشغيل الطرف السالب البورتات الاربع للــ PORTB
الذي يحدث معي ان بورت RB4 و RB5 تبقيان توصلان التيار وبالتالي تبقى الوحدة الخاصة بهما مضاءة
اما الاخريتنان فتعملان وفق البرنامج بلاشائبة ..
هل سبب ذلك انهما ANALOG ؟

الكود كالتالي ..
كود:
unsigned int choose_digit(int a) //Variable for converting Decimal to 7 Segment format
{
 switch(a)                                //A B C D E F G       dP, F B G C D E A
   {                                     // 0 5 3 6 2 1 4        7, 6 5 4 3 2 1 0
      case 1: return 0B00101000;          // 0x06;
      case 2: return 0B00110111;         // 0x5B;
      case 3: return 0B00111101;         // 0x4F;
      case 4: return 0B01111000;         // 0x66;
      case 5: return 0B01011101;         // 0x6D;
      case 6: return 0B01011111;         // 0x7D;
      case 7: return 0B01101001;         // 0x27;
      case 8: return 0B01111111;         // 0x7F;
      case 9: return 0b01111101;
      default: return 0B01101111;         // 0x3F;
  }
}


void seven_segment(int number) {

     PORTC = choose_digit(number%10);

   PORTB.F4 = 0;
    delay_ms(500);
   PORTB.F4 = 1;

    PORTC = choose_digit((number/10)%10);
    PORTB.F6 = 0;
    delay_ms(500);
   PORTB.F6 = 1;

     PORTC = choose_digit(((number/10)/10)%10);
     PORTB.F7 = 0;
    delay_ms(500);
   PORTB.F7 = 1;

        PORTC = choose_digit((number/1000));
    PORTB.F5 = 0;
    delay_ms(500);
   PORTB.F5 = 1;

}

void main()
{


   int i=0;
   int s = 0;
 CM1CON0 = 7;   // To turn off comparators


//   ADCON1 = 0X00;
  ADCON0 = 0x06;  // To turn off analog to digital converters
   TRISB = 0x00; //PORT B as Output
   TRISC = 0x00; //PORT C as Output
   PORTB = 0XFF;
   delay_ms(20);
   
   while(1)
   {
  // if(s==9999){s=0;} //0 to 9999 counter
  // else{s++;}
     
     // for(i=0;i<15;i++)
       //       {
         //   delay_ms(3);
              
               seven_segment(22);
           //  }


   }
}


التعديل الأخير تم بواسطة : thelordforever بتاريخ 07-02-2017 الساعة 07:43 PM
اعلانات

thelordforever
:: مهندس ::
تاريخ التسجيل: Oct 2009
الدولة: بغداد
المشاركات: 20
نشاط [ thelordforever ]
قوة السمعة:0
قديم 09-02-2017, 05:38 AM المشاركة 2   
افتراضي


السلام عليكم ..
يا شـــــــباب على الاقل حـــــد يقـــول لي كيف اوقف الــ converter والـــ compiler للـــ 16f677
رجــــاءً,,,

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

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 09-02-2017, 05:54 AM المشاركة 3   
افتراضي


أخى
انزل الداتا شيت ستجد فيه مجموعة التعليمات لهذا الغرض
انسخها كما هى و ضعها فى أول البرنامج

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً ياسين الحانوتي ( شكر العضو على هذه المشاركة )
اعجاب ياسين الحانوتي ( أعجبته المشاركة )

thelordforever
:: مهندس ::
تاريخ التسجيل: Oct 2009
الدولة: بغداد
المشاركات: 20
نشاط [ thelordforever ]
قوة السمعة:0
قديم 09-02-2017, 07:05 AM المشاركة 4   
افتراضي


شـــكرا لردك .. اخي .. وارجو ان يكون صدرك رحب ..
انا منزل الداتاشيت من زمان لكني لا اعرف كيف اشغل واطفي الــ ADCON0
حاولت والمحاولات فاشلة
يختلف عن المايكروكنترولر 16f877 هذا اسهل فبمجرد وضع ADCON = 0x6 ينطفئ التحويل عن كل بورتات الانلوك
اما 16f677 معقد نوعا ما وعقدني معه ...

http://www.alldatasheet.com/view.jsp?Searchword=16F677


محمد إلياس
:: مهندس جيد ::
تاريخ التسجيل: Jan 2017
المشاركات: 230
نشاط [ محمد إلياس ]
قوة السمعة:0
قديم 09-02-2017, 08:30 AM المشاركة 5   
افتراضي


السلام عليكم ورحمة الله وبركاته..
واجهتني مشكلة في عمل الــ 7-SEGMENT حيث اني عملت البرنامج بالكامل وبقي معي هذه المعضلة

الـ 7-SEGMENT هي COMMON CATHODE واخذت لها لتشغيل الطرف السالب البورتات الاربع للــ PORTB
الذي يحدث معي ان بورت RB4 و RB5 تبقيان توصلان التيار وبالتالي تبقى الوحدة الخاصة بهما مضاءة
اما الاخريتنان فتعملان وفق البرنامج بلاشائبة ..
هل سبب ذلك انهما ANALOG ؟
السلام عليكم
المفترض لا ، لأنهما هنا مبرمجين كخرجين وليس كدخلين لكن عموما في Pic16F877 يمكن تحويل كل الدخول من الأنالوج إلى الديجتال بالتعليمة المعروفة:
; ADCON1=7 ; أو ADCON1=6
لكن في Pic16F677 يمكن ذلك بالمسجلين ANSELو ANSELH وبهذين التعليمتين :
كود:
  ANSEL=0;
ANSELH=0;
التفسير في الصفحة 63 من داتا شيت هذا الرابط:
http://ww1.microchip.com/downloads/e...Doc/41262d.pdf
و بما أن الكود لايتضمن تشغيل adc فلا حاجة للمسجلين adcon0 و adcon1

احصائية الشكر والاعجاب - 2 شكراً, 0 عدم اعجاب, 2 اعجاب
شكراً thelordforever, ياسين الحانوتي ( شكر العضو على هذه المشاركة )
اعجاب thelordforever, ياسين الحانوتي ( أعجبته المشاركة )

thelordforever
:: مهندس ::
تاريخ التسجيل: Oct 2009
الدولة: بغداد
المشاركات: 20
نشاط [ thelordforever ]
قوة السمعة:0
قديم 09-02-2017, 08:48 AM المشاركة 6   
افتراضي


اخ محمد إلياس .. لساني يعجز عن الشــــكر ..
وضعتها واشتغل البرنامج تمام .. منذ اسبوع تقريبا وانا ابحث عن حلها .. وانتابني شيء من اليـــاس
وكنت ابحث واحاول في حقل ADCON ..
ربــــــــــــــــــــــي يبارك فــــــــــــيك وبـــالذي اعطاك الله من العلــــم

هـــل لي ان اســـالك ..
لماذا هذا البك يعتمد على ANSEL & ANSEL بالتحويل بينما البقية على ADCON ؟


محمد إلياس
:: مهندس جيد ::
تاريخ التسجيل: Jan 2017
المشاركات: 230
نشاط [ محمد إلياس ]
قوة السمعة:0
قديم 09-02-2017, 08:53 AM المشاركة 7   
افتراضي


اخ محمد إلياس .. لساني يعجز عن الشــــكر ..
وضعتها واشتغل البرنامج تمام .. منذ اسبوع تقريبا وانا ابحث عن حلها .. وانتابني شيء من اليـــاس
وكنت ابحث واحاول في حقل ADCON ..
ربــــــــــــــــــــــي يبارك فــــــــــــيك وبـــالذي اعطاك الله من العلــــم

هـــل لي ان اســـالك ..
لماذا هذا البك يعتمد على ANSEL & ANSEL بالتحويل بينما البقية على ADCON ؟
الحمد لله أخي أنه اشتغل
أخي أغلب البيكات التي ظهرت بعد 16877 أصبحت تتضمن المسجلات ansel

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً thelordforever ( شكر العضو على هذه المشاركة )
اعجاب thelordforever ( أعجبته المشاركة )

thelordforever
:: مهندس ::
تاريخ التسجيل: Oct 2009
الدولة: بغداد
المشاركات: 20
نشاط [ thelordforever ]
قوة السمعة:0
قديم 09-02-2017, 09:14 AM المشاركة 8   
افتراضي


الحمدلله اولا واخيـــرا..

يا اخي فرحتني .. الله يفرحك بالدنيا والاخرة .. ممنون منك ياطيب

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً محمد إلياس ( شكر العضو على هذه المشاركة )
اعجاب محمد إلياس ( أعجبته المشاركة )
إضافة رد

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

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

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


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

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