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

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

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 27-03-2017, 07:49 AM المشاركة 1   
افتراضي اريد تفعيل التايمر الداخلي لل PIC12F675 Twitter FaceBook Google+



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


تحيه طيبه للجميع ..

اريد تشغيل التايمر الداخلي للبك PIC12F675 زمن دورة التايمر الماراد ( 1 ميلي سانيه )


وأيضااا اريد ضبط تهيئه الأطراف .. ك التالي ..


GP0_bit و GP2_bit و GP4_bit و GP5_bit ك خرك ..

وطرف .. GP1_bit يتم تهيئته ك دخل .. وتفعيل محول الإشارة واستخدام الطرف GP1_bit للقرأة ..

والطرف GP3_bit يتم تهيئته ك دخل ....


بالطبع سيستخدم الهزاز الداخلي علي سرعه 4 ميجا ..


واليكم الكود لأضافه تفعيل التايمر وضبط التهيئه لتتوافق مع المطلوب اعلاة ..


كود:
    
  //    Design Program Engineer  ABDALLA HYGAZY    //

         //     Lighting consecutive        //

            //    Date / 2016 / 2 /15    //

   unsigned timer,ADCRED=0;
   int X,M,KEY =0;

  //---------------------------//

   //#define time  timer_variabe();
  //**************************//
   #define BUTTON if(GP3_bit==0){ KEY=0; while(KEY==0){if(GP3_bit==1){ KEY=1; }   for( M=0; M< 10; M++ ){   GPIO = 0; GPIO=1; Time(); GPIO=4;Time(); GPIO=16; Time(); GPIO=32; Time(); GPIO = 0;  }   for( M=0; M< 10; M++ ){   GPIO=32; Time(); GPIO=16; Time(); GPIO=4; Time(); GPIO=1; Time();} } }
   #define TEMER1  delay_ms(4000);
   #define TEMER2  delay_ms(400);
   #define FOOR   for( M=0; M< 3; M++ )
   #define FOOR1   for( M=0; M< 5; M++ )
   #define PRG1   GPIO=48;TEMER1
   #define PRG2  GPIO=17;
   #define PRG3 GPIO=36;
   #define PRG4 GPIO=33;
  //----------------------------------------//

    void Time() {

    for(X=0;X< timer; X++)
    
   {
    delay_ms(2);
   }
   
  timer= ADC_Read(1);

 }


       void main() {
       ADC_Init();
       TRISIO = 10; // set as output
       ANSEL = 2;
       CMCON = 6;
       GPIO = 0;

       while(1) {
  //********* program ( 1 ) ********//
      GPIO = 0;

      for( M=0; M< 4; M++ ){
      GPIO = 0; Time(); GPIO=1; Time(); GPIO=4;Time();    GPIO=16; Time(); GPIO=32; Time();
      GPIO = 0; Time(); GPIO=32; Time(); GPIO=16; Time(); GPIO=4; Time(); GPIO=1; Time();  BUTTON
     }

      for( M=0; M< 3; M++ ){ GPIO = 53; Time(); GPIO = 0; Time(); }



      GPIO=0;Time(); GPIO=1;Time(); GPIO=5;Time();  GPIO=21;Time();  GPIO=53;Time();
      GPIO=21;Time(); GPIO=5;Time(); GPIO=1;Time();  GPIO=0;Time();

      GPIO=53;Time();  GPIO=21;Time();  GPIO=5;Time();  GPIO=1;Time();  GPIO=0;Time();

      GPIO=1;Time();   GPIO=4;Time();   GPIO=16;Time();   GPIO=32;Time();
      BUTTON
      GPIO=33;Time();  GPIO=36;Time();  GPIO=48;Time();   GPIO=49;Time();
      GPIO=52;Time();  GPIO=53;Time();  GPIO=0;Time();

      GPIO=32;Time();  GPIO=16;Time();  GPIO=4;Time();   GPIO=1;Time();
      GPIO=33;Time();  GPIO=17;Time();  GPIO=5;Time();   GPIO=37;Time();
      GPIO=21;Time();  GPIO=53;Time();  GPIO=0;Time();

       for( M=0; M< 2; M++ ){
       GPIO=17;Time();   GPIO=36;Time();

     }
       PRG1 TEMER1  FOOR { PRG1 TEMER2  GPIO=0;TEMER2  }
       PRG2 TEMER1  FOOR { PRG2 TEMER2  GPIO=0;TEMER2  }
       PRG3 TEMER1  FOOR { PRG3 TEMER2  GPIO=0;TEMER2  }
       PRG4 TEMER1  FOOR { PRG4 TEMER2  GPIO=0;TEMER2  }
     }
  }



شكرااااا للجميع

اعلانات

fawzy73
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2008
المشاركات: 93
نشاط [ fawzy73 ]
قوة السمعة:0
قديم 14-04-2017, 03:19 PM المشاركة 2   
افتراضي


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

اخي العزيز

لتفعيل التيمر 0 داخل الميكروكنترولر pic12f675

1-اكتب الكود التالي داخل الدالة الرئسية
OPTION_REG = 0x81;
TMR0 = 6;
INTCON = 0xA0;

2- كتابة الدالة الخاصة بالمقاطعة وتكون خارج الدالة الرئسية وهي
voide interrupt()
if(tmr0if_bit){
tmr0if_bit = 0;
tmr0 =6;}

هنا اكتب الكود الخاص بك لتنفيذ عند عمل المقاطعة
}
}
هكذا تكون قد تم تفعيل تيمر علي زمن 1 ملي ثانية
ولكن ملاحظة امر comcn = 7 حتي يتم ايقاف عمل المقارنات وليس 6

تقبل تحياتي


التعديل الأخير تم بواسطة : fawzy73 بتاريخ 14-04-2017 الساعة 08:57 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  
إضافة رد

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

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

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


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

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