عيون العرب - ملتقى العالم العربي

العودة   عيون العرب - ملتقى العالم العربي > عيــون الأقسام العلمية > تحميل كتب مجانية, مراجع للتحميل

تحميل كتب مجانية, مراجع للتحميل كتب مجانية, كتب عربية للتحميل, كتب ألكترونية, كتب اجنبية, كتب تعليمية, مراجع عربية,كتب للتحميل, كتب للقراءة.

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #31  
قديم 09-22-2011, 06:52 PM
 
فى البداية سوف ننشأ زمن تأخير بقيمة واحد ثانية تقريبا باستخدام موديول المؤقت Timer 0 كمؤقت . الميكروكونترولر يعمل على تردد ساعة المذبذب Fosc = 4MHz لذلك يكون الزمن الدورى للتعليمة هو 1 μs . لتوليد فترة تأخير زمنى قدرها ثانية يجب أن يعد المؤقت مليون 1000000 دورة تعليمة . فإذا استخدمنا معامل القسمة prescaler بالقيمة 256 فإن العدد المطلوب يقل من مليون إلى
1000000/256 = 3906 . والآن إذا حملنا السجل TMR0 بالقيمة المسبقة 39 فإن طفحانه سوف يحدث بعد 256-39 = 217 counts وهكذا تكون عدد مرات الطفحان المطلوبة 3906/217 = 18 . بهذه الإعدادات فإنه بعد 18 مرة طفحان للسجل TMR0 (وفى كل مرة يتم تحميله مسبقا بالقيمة 39 ) ينقضى فترة زمنية قدرها واحد ثانية تقريبا .
البرنامج يوظف هذا التأخير فى عمل وميض لليد .

التعليق على البرنامج :

1- مقدمة (رأس) البرنامج :
/*PIC16F628
1 sec timer using TIMER0
Oscillator @ 4MHz, MCLR Enabled, PWRT Enabled, WDT OFF
*/
2- تعريف الطرف RB0 (المتصل به الليد) باسم يسهل تتبع وفهم البرنامج وهو LED . هذا الطرف هو الخانة صفر من سجل وظائف خاصة وهو المنفذ PORTB لذلك نستخدم التعبير
sbit LED at RB0_bit; " تذكر هذا التعريف" . والإعلان عن متغير العداد .

// Define LED connection

sbit LED at RB0_bit;
unsigned short Num;
3- دالة أو روتين خدمة المقاطعة والتى يتم استدعائها وتنفيذها عند حدوث المقاطعة وتحتوى على :

// Interrupt service routine

void interrupt() {
# عند حدوث المقاطعة يتم تزايد المتغير بواحد Num ++;

Num ++; // Interrupt causes Num to be incremented by 1
# اختبار أو التحقق من شرط if : هل المتغير يساوى 18 ؟ فى البداية بالطبع لا . ولا يحدث شىء ويخرج من جملة if ليجد التحميل المسبق لسجل المؤقت TMR0 بالقيمة المسبقة 39 ويليها تصفير خانة علم المقاطعة للتجهيز لمقاطعة جديدة . وعند كل طفحان تحدث المقاطعة ويتكرر ما سبق حتى يتحقق الشرط Num == 18 أى بعد 18 مرة طفحان أى بعد مرور ثانية . عندئذ يتم تنفيذ جسم شرط if وهو عكس حالة الليد بالتعليمة LED = ~LED; بعد ذلك يتم تحميل السجل TMR0 بالقيمة المسبقة 39 وتصفير خانة علم المقاطعة بالمؤقت صفر ويتكرر العمل .
if(Num == 18) {
LED = ~LED; // Toggle LED every sec
Num = 0;
}
TMR0 = 39; // TMR0 returns to its initial value
INTCON.T0IF = 0; // Bit T0IF is cleared so that the interrupt could reoccur
}
4- بداية الدالة الرئيسية حيث يتم الإعدادات

void main() {
  • إعداد وتهيئة الميكروكونترولر :
# فصل موديول المقارن CCP لاستخدام جميع الأطراف كمداخل / مخارج رقمية .
# إعداد جميع أطراف المنفذ PORTB كمخارج .
# إعداد جميع أطراف المنفذ PORTA كمخارج فيما عدا الطرف RA5 فيعد كمدخل MCLR .

CMCON = 0x07 ; // Disbale comparators
TRISB = 0b00000000; // PORTB All Outputs
TRISA = 0b00100000; // PORTA All Outputs, Except RA5=MCLR
· الحالة الابتدائية : الليد مطفأ وعداد المؤقت بصفر
LED = 0;
Num = 0;
· إعدادات موديول المؤقت Timer 0 والسجل TMR0 :
# فى سجل الخيارات OPTION_REG يتم تخصيص معامل القسمة لموديول المؤقت Timer 0 واختيار معامل القسمة له بالقيمة 256 .
OPTION_REG = 0x07; // Prescaler (1:256) is assigned to the timer TMR0
# تحميل السجل TMR0 بقيمة مسبقة قدرها 39 ليقوم بالعد بدءا منها وحتى 255 حيث يحدث الطفحان والمقاطعة .
TMR0 = 39; // Timer T0 counts from 39 to 255
# فى سجل التحكم فى المقاطعة INTCON : تمكين المقاطعة بسجل المؤقت TMR0 عند طفحانه والتمكين العام للمقاطعات
INTCON = 0xA0; // Enable interrupt TMR0 and Global Interrupts
· الدخول فى حلقى غير منتهية تحتوى على البرنامج المطلوب تنفيذه بينما يعمل المؤقت فى الخلفية من وراء الكواليس .
do {

// You main programs goes here

} while(1); // infinite loop
}
نظام عمل موديول المؤقت Timer 0 كعداد :
__________________
angel4angel4angel4angel4angel4
رد مع اقتباس
  #32  
قديم 09-22-2011, 06:53 PM
 
نظام عمل موديول المؤقت Timer 0 كعداد :
سوف يستخدم موديول المؤقت Tier 0 كعداد لعد نبضات الساعة الخارجية والتى تصل عن طريق الطرف RA4/T0CKI . نبضات الساعة الخارجية سوف يتم اشتقاقها من منبع التيار المتردد . منبع التيار المتردد المستخدم جيبى ذو جهد وتردد 120V, 60 Hz ( بالطبع يمكن تغيير الجهد والتردد إلى 220V , 50 Hz ) .
سوف يتم أولا تخفيض الجهد إلى إشارة بجهد وتردد 9 V, 60 Hz ياستخدام محول أو أدابتر تيار متردد . وقبل توصيل هذه الإشارة إلى الطرف T0CKI يجب تقويمها (توحيدها) وقطع (قص – تحديد) قيمة جهد الذروة عند +5V . الدائرة التالية تحول الجهد 9 V, 60 Hz AC voltage إلى موجة مربعة تقريبا بجهد +5V مناسبة كمدخل للعداد من الطرف T0CKI .




يتم توصيل الموجة المربعة إلى الطرف RA4/T0CKI للميكروكونترولر PIC16F628 . يبدأ السجل TMR0 من الصفر ويعد النبضات الواصلة فى فترة زمنية قدرها واحد ثانية . يتم عرض النتيجة على شاشة وحدة عرض LCD .عدد النبضات فى الثانية هو تردد الإشارة الواصلة وهو 60 Hz .


الدائرة الكهربية :
__________________
angel4angel4angel4angel4angel4
رد مع اقتباس
  #33  
قديم 09-22-2011, 06:53 PM
 
الدائرة الكهربية :


البرنامج :
__________________
angel4angel4angel4angel4angel4
رد مع اقتباس
  #34  
قديم 09-22-2011, 07:01 PM
 
كود:
/* 
Timer0 as a counter 
Oscillator @ 4MHz, MCLR Enabled, PWRT Enabled, WDT OFF 
*/ 
// LCD module connections 
sbit LCD_RS at RB0_bit; 
sbit LCD_EN at RB1_bit; 
sbit LCD_D4 at RB4_bit; 
sbit LCD_D5 at RB5_bit; 
sbit LCD_D6 at RB6_bit; 
sbit LCD_D7 at RB7_bit; 
sbit LCD_RS_Direction at TRISB0_bit; 
sbit LCD_EN_Direction at TRISB1_bit; 
sbit LCD_D4_Direction at TRISB4_bit; 
sbit LCD_D5_Direction at TRISB5_bit; 
sbit LCD_D6_Direction at TRISB6_bit; 
sbit LCD_D7_Direction at TRISB7_bit; 
// End LCD module connections 
// Define Messages 
char message1[] = "Frequency=   Hz"; 
char *freq = "00"; 
void Display_Freq(unsigned int freq2write) { 
 freq[0] = (freq2write/10)%10 + 48;    // Extract tens digit 
 freq[1] =  freq2write%10     + 48;    // Extract ones digit 
 // Display Frequency on LCD 
 Lcd_Out(1, 11, freq); 
} 
void main() { 
CMCON = 0x07 ; // Disbale comparators 
TRISB = 0b00000000; // PORTB All Outputs 
TRISA = 0b000110000; // INPUTS :  RA4= T0CKI,  RA5=MCLR 
  
  
 OPTION_REG = 0b00101000; // Prescaler (1:1), TOCS =1 for counter mode 
 Lcd_Init();                 // Initialize LCD 
 Lcd_Cmd(_LCD_CLEAR);        // CLEAR display 
 Lcd_Cmd(_LCD_CURSOR_OFF);   // Cursor off 
 Lcd_Out(1,1,message1);      // Write message1 in 1st row 
 do { 
  TMR0=0; 
  Delay_ms(1000);  // Delay 1 Sec 
  Display_Freq(TMR0); 
 } while(1);  // Infinite loop 
}
__________________
angel4angel4angel4angel4angel4
رد مع اقتباس
  #35  
قديم 09-22-2011, 07:06 PM
 
النتائج





__________________
angel4angel4angel4angel4angel4
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
دورات تدريبية في فن التفاوض الفعال و تعقد في الاردن سوريا لبنان تركيا مصر المغرب تونس ماليزيا دبي و دورات تدريبية في ادارة الجوده الشامله دورات في اانظمة الجوده ودورات تدريبية في التخطيط الاستراتيجي و دورات تدريبية في العلاقات العامه و السكرتارية معهدالمجدللتدريب أرشيف المواضيع الغير مكتمله او المكرره او المنقوله و المخالفه 0 12-04-2010 10:38 AM
دورات تدريبية فيالذكاء الفطري وتطبيقاتة و تعقد في الاردن سوريا لبنان تركيا مصر المغرب تونس ماليزيا دبي و دورات تدريبية في ادارة الجوده الشامله دورات في اانظمة الجوده ودورات تدريبية في التخطيط الاستراتيجي و دورات تدريبية في العلاقات العامه و السكرتاري معهدالمجدللتدريب أرشيف المواضيع الغير مكتمله او المكرره او المنقوله و المخالفه 0 11-29-2010 03:19 PM
دورات تدريبية في الشراء الالكتروني و تعقد في الاردن سوريا لبنان تركيا مصر المغرب تونس ماليزيا دبي و دورات تدريبية في ادارة الجوده الشامله دورات في اانظمة الجوده ودورات تدريبية في التخطيط الاستراتيجي و دورات تدريبية في العلاقات العامه و السكرتاري معهدالمجدللتدريب أرشيف المواضيع الغير مكتمله او المكرره او المنقوله و المخالفه 0 11-29-2010 03:15 PM
دورات تدريبية في القيادة الادارية الشاملة تعقد في الاردن سوريا لبنان تركيا مصر المغرب تونس ماليزيا دبي و دورات تدريبية في ادارة الجوده الشامله دورات في اانظمة الجوده ودورات تدريبية في التخطيط الاستراتيجي و دورات تدريبية في العلاقات العامه و السكرتاري معهدالمجدللتدريب أرشيف المواضيع الغير مكتمله او المكرره او المنقوله و المخالفه 0 11-29-2010 03:12 PM


الساعة الآن 03:36 AM.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Content Relevant URLs by vBSEO
شات الشلة
Powered by: vBulletin Copyright ©2000 - 2006, Jelsoft Enterprises Ltd.
جميع الحقوق محفوظة لعيون العرب
2003 - 2011