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

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

الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:151
قديم 18-12-2013, 03:24 PM المشاركة 1   
افتراضي كيف استخدم هذا البرنامج Timer Calculator Twitter FaceBook Google+



السلام عليكم

كيف استخدم هذا البرنامج


كمثال اريد استعمل تايمر زيرو للحصول على ثانية واحدة فى pic16f628a فكيف اضيف الكود الناتج من البرنامج الى المايكرو سى ؟؟

ارجو التوضيح بالمثال مع جزيل الشكر


موقع البرنامج

اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 18-12-2013, 05:17 PM المشاركة 2   
افتراضي


السلام عليكم

كيف استخدم هذا البرنامج


كمثال اريد استعمل تايمر زيرو للحصول على ثانية واحدة فى pic16f628a فكيف اضيف الكود الناتج من البرنامج الى المايكرو سى ؟؟

ارجو التوضيح بالمثال مع جزيل الشكر


موقع البرنامج
السلام عليكم
استاذ سعيد ارجو مراجعه هذا الرابط وبتحديد مشاركه رقم 13
http://www.qariya.com/vb/showthread....6%DE%CA&page=2

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

الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:151
قديم 18-12-2013, 05:59 PM المشاركة 3   
افتراضي


شكرا لك اخى حسن اعرف كيف اضع القيم فى البرنامج ولاكن مشكلتى فى برنامج المايكروسى بعد اضافة الكود من البرنامج الى المايكرو سى كيف اجعل portb.f0 يضىء ويطفى ليد كل ثانية ؟؟ اعرف يجب اضافة متغير يعد الطفحان ولاكن طريقة كتابته غير واضحة لدى

هنا فى البرنامج استخدمت تايمر زيرو و كريستالة 4MHZ مع 10 ملى ثانية والمايكرو هو pic 16f628




وهذا هو الكود


كود:
//Timer0
//Prescaler 1:64; TMR0 Preload = 100; Actual Interrupt Time : 9.984 ms
 
//Place/Copy this part in declaration section
void InitTimer0(){
  OPTION_REG	 = 0x85;
  TMR0		 = 100;
  INTCON	 = 0xA0;
}
 
void Interrupt(){
  if (TMR0IF_bit){ 
    TMR0IF_bit	 = 0;
    TMR0		 = 100;
    //Enter your code here
  }
}

كتبت البرنامج كيف استخدم التايمر زيرو بدل استعمال الامر

كود:
delay_ms(1000);
كيف يكون شكل الكود ؟؟

كود:
 char x=0;
//Timer0
//Prescaler 1:64; TMR0 Preload = 100; Actual Interrupt Time : 9.984 ms

//Place/Copy this part in declaration section
void InitTimer0(){
  OPTION_REG	 = 0x85;
  TMR0		 = 100;
  INTCON	 = 0xA0;
}

void Interrupt(){
  if (TMR0IF_bit){
    TMR0IF_bit	 = 0;
    TMR0		 = 100;
    //Enter your code here
  }
}

void main() 
{
cmcon=7;
porta=0;
portb=0;
trisa=trisb=0;
while(1)
{
 portb=1; delay_ms(1000);
  portb=0; delay_ms(1000);
 



}


}


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 19-12-2013, 02:59 AM المشاركة 4   
افتراضي


شكرا لك اخى حسن اعرف كيف اضع القيم فى البرنامج ولاكن مشكلتى فى برنامج المايكروسى بعد اضافة الكود من البرنامج الى المايكرو سى كيف اجعل portb.f0 يضىء ويطفى ليد كل ثانية ؟؟ اعرف يجب اضافة متغير يعد الطفحان ولاكن طريقة كتابته غير واضحة لدى

هنا فى البرنامج استخدمت تايمر زيرو و كريستالة 4MHZ مع 10 ملى ثانية والمايكرو هو pic 16f628




وهذا هو الكود


كود:
//Timer0
//Prescaler 1:64; TMR0 Preload = 100; Actual Interrupt Time : 9.984 ms
 
//Place/Copy this part in declaration section
void InitTimer0(){
  OPTION_REG	 = 0x85;
  TMR0		 = 100;
  INTCON	 = 0xA0;
}
 
void Interrupt(){
  if (TMR0IF_bit){ 
    TMR0IF_bit	 = 0;
    TMR0		 = 100;
    //Enter your code here
  }
}

كتبت البرنامج كيف استخدم التايمر زيرو بدل استعمال الامر

كود:
delay_ms(1000);
كيف يكون شكل الكود ؟؟

كود:
 char x=0;
//Timer0
//Prescaler 1:64; TMR0 Preload = 100; Actual Interrupt Time : 9.984 ms

//Place/Copy this part in declaration section
void InitTimer0(){
  OPTION_REG	 = 0x85;
  TMR0		 = 100;
  INTCON	 = 0xA0;
}

void Interrupt(){
  if (TMR0IF_bit){
    TMR0IF_bit	 = 0;
    TMR0		 = 100;
    //Enter your code here
  }
}

void main() 
{
cmcon=7;
porta=0;
portb=0;
trisa=trisb=0;
while(1)
{
 portb=1; delay_ms(1000);
  portb=0; delay_ms(1000);
 



}


}
السلام عليكم
تفضل اخي كريم
كود:
char x=0 , flag_bit=0;
//Timer0 //Prescaler 1:64; TMR0 Preload = 100; Actual Interrupt Time : 9.984 ms //Place/Copy this part in declaration section 
void InitTimer0()
{ OPTION_REG	 = 0x85;
 TMR0	 = 100; 
 INTCON	 = 0xA0;
} 

void Interrupt()
{ 
if (TMR0IF_bit)
              { TMR0IF_bit	 = 0; 
                TMR0	 = 100; 
                //Enter your code here
                x++;
                if(x==100)flag_bit=1;
                if(x==200)
                         {
                          flag_bit=2;
                          x=0;
                         }
                } 
} 

void main() 
{ 
 cmcon=7;
 InitTimer0();
 trisa=0;
 trisb=0;
 porta=0; 
 portb=0; 

 while(1) 
        {
         if(flag_bit==1)
                       {
                        portb=1;
                       }
        if(flag_bit==2)
                       {
                        flag_bit=0;
                        portb=0;
                       }
  
      }
 }
ملاحظه اخي عند كتابه trisa=trisb=0 فان معنى ذلك ان قيمه trisa تصبح مساويه ل trisb ومن ثم تصبح 0 ولكن trisb لايساوي 0 لان النتيجه دائما تذهب الى متغير او ريجيستر قبل علامه =
لهذا عليك كتابه trisb=0 trisa=0
البرنامج ولدلك كود كامل ولكن اعطاك داله التهيئه لتايمر سواء كان تايمر0 او تايمر 1او ........ فانك لازم تأخذ هذه داله وتضعها في داله main لكي يتم استدعائها
ارجو ان وضحت لك


الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:151
قديم 19-12-2013, 05:12 AM المشاركة 5   
افتراضي


شكرا لك اخى الفاضل وجزاك الله كل الخير اناكتبت trisb=0 trisa=0 اختصارن للوقت كلامك صحيح كان لى مشكلة مع هذا الامر من قبل

اصبح الصورة واضحة لدى بارك الله فيك

إضافة رد

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

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

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


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

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