برنامج مولد نبضات بتردد 1KHz باستخدام المقاطعة بالمؤقت Timer0
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS - C
صفحة 1 من اصل 1
برنامج مولد نبضات بتردد 1KHz باستخدام المقاطعة بالمؤقت Timer0
برنامج مولد نبضات بتردد 1KHz باستخدام المقاطعة بالمؤقت Timer0
البرنامج :
فى هذا البرنامج :
• نبضات الساعة الخارجية المستخدمة ترددها 4 ميجاهرتز ، إذا تردد الساعة الداخلية يكون واحد ميجا هرتز أى نبضة كل واحد ميكروثانية .
• تمر هذه النبضات على قاسم التردد السابق للمؤقت بمعامل قسمة على “2” فيكون خرجه نبضات بتردد 500 كيلوهرتز أى نبضة كل 2 ميكروثانية .
• تصل هذه النبضات إلى دخل المؤقت timer0 حيث تم وضع قيمة ابتدائية قدرها “26” ليصل إلى التجاوز overflow بعد (256 – 26 = 230 ) أى يحدث تجاوز بعد زمن قدره (2 * 230 = 460 us) والتى تصل عمليا إلى 500 ملى ثانية توصيل و500 ملى ثانية فصل ويكون الومن الدورى واحد ملى ثانية وبالتالى فإن تردد النبضات الناتجة يكون 1000 هرتز (مقلوب الزمن الدورى بالثوانى) أى واحد كيلوهرتز .
البرنامج :
- الكود:
#INCLUDE <16F877A.h>
#use delay(clock=4000000)
#int_TIMER0
void TIMER0_isr(void) {
output_toggle(PIN_B0);
set_timer0 (26); } //Set initial value
void main() {
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2); //Timer0 setup : internal & divided by 2
set_timer0 (26); //Set initial value
enable_interrupts(INT_TIMER0); //Enable local timer0 interrupt
enable_interrupts(global); //Enable global interrupts
while (1); //endless loop
}
فى هذا البرنامج :
• نبضات الساعة الخارجية المستخدمة ترددها 4 ميجاهرتز ، إذا تردد الساعة الداخلية يكون واحد ميجا هرتز أى نبضة كل واحد ميكروثانية .
• تمر هذه النبضات على قاسم التردد السابق للمؤقت بمعامل قسمة على “2” فيكون خرجه نبضات بتردد 500 كيلوهرتز أى نبضة كل 2 ميكروثانية .
• تصل هذه النبضات إلى دخل المؤقت timer0 حيث تم وضع قيمة ابتدائية قدرها “26” ليصل إلى التجاوز overflow بعد (256 – 26 = 230 ) أى يحدث تجاوز بعد زمن قدره (2 * 230 = 460 us) والتى تصل عمليا إلى 500 ملى ثانية توصيل و500 ملى ثانية فصل ويكون الومن الدورى واحد ملى ثانية وبالتالى فإن تردد النبضات الناتجة يكون 1000 هرتز (مقلوب الزمن الدورى بالثوانى) أى واحد كيلوهرتز .
مواضيع مماثلة
» برنامج مولد نبضات نبضة كل واحد ثانية :
» تطبيق على المقاطعة الخارجية : برنامج أضواء متحركة بنماذج متعددة :
» تدريب : برنامج بسيط لعداد تصاعدى تنازلى باستخدام وحدة العرض LCD :
» تدريب : برنامج إنشاء ساعة بسيطة قابلة للإعداد (الضبط) باستخدام وحدة العرض LCD :
» حمل كتيب شرح برنامج رسم الدوائر الكهربية إيزيس ISIS ضمن برنامج بروتيس PROTEUS :
» تطبيق على المقاطعة الخارجية : برنامج أضواء متحركة بنماذج متعددة :
» تدريب : برنامج بسيط لعداد تصاعدى تنازلى باستخدام وحدة العرض LCD :
» تدريب : برنامج إنشاء ساعة بسيطة قابلة للإعداد (الضبط) باستخدام وحدة العرض LCD :
» حمل كتيب شرح برنامج رسم الدوائر الكهربية إيزيس ISIS ضمن برنامج بروتيس PROTEUS :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS - C
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى