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

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

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

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 09-27-2011, 05:15 AM
 
طريقة التعامل مع المؤقت / العداد tmr0

طريقة التعامل مع المؤقت / العداد TMR0
المؤقت TMR0 له مجموعة واسعة من التطبيقات العملية .
قليل جدا من البرامج لا تستخدمه بطريقة أو بأخرى .من المريح والسهل جدا استخدامه لكتابة البرامج أو البرامج الفرعية لتوليد نبضات بمدة زمنية محددة أوقياس الوقت أو فى عد النبضات (الأحداث) الخارجية .
وحدة (موديول) المؤقت TMR0 هى مؤقت / عداد ذات 8 خانات 8-bit timer/counter بالخصائص التالية :
  • مؤقت /عداد ذات ثمانى خانات .
  • يعمل معه " المقياس المسبق " أو "معامل القسمة" prescaler ذو ثمانى خانات (بالتقاسم مع مؤقت الحراسة WDT )
  • قابل للبرمجة لااستخدام مصدر نبضات ساعة clock داخلى أو خارجى .
  • يسبب مقاطعة عند حدوث طفحان (تجاوز حده الأقصى ) overflow .
  • قابل للبرمجة لاختيار حافة نبضات الساعة الخارجية .

الشكل التالى يبين مخطط للمؤقت TMR0 بجميع الخانات التى تحدد عمله . هذه الخانات تخزن (تحفظ) فى السجل OPTION_REG .








السجل OPTION_REG .


وصف الخانات :
  • RBPU : خانة تمكين مقاومات السحب لأعلا للمنفذ PORTB .
1 : عدم تمكين مقاومات السحب لأعلى للمنفذ PORTB.
0 : تمكين توصيل أطراف المنفذ PORTB بمقاومات السحب لأعلى الداخلية .

  • INTEDG : خانة "اختيار حافة المقاطعة "
1: المقاطعة عند الحافة الصاعدة على طرف المقاطعة INT pin أى التحول من الحالة المنخفضة إلى الحالة المرتفعة (0-1).
0 : المقاطعة عند الحافة الهابطة على طرف المقاطعة INT pin أى عند التحول من الحالة المرتفعة إلى الحالة المنخفضة (1-0) .
  • T0CS: خانة اختيار ساعة المؤقت TMR0 .
1 : تصل النبضات إلى دخل المؤقت / العداد TMR0 من خلال الطرف RA4 .
0 : يستخدم المؤقت ساعة الدورة الداخلية (Fosc/4) .
  • T0SE : خانة اختيار حافة مصدر المؤقت TMR0 .
1 : تزايد عند الانتقال من الحالة المرتفعة إلى الحالة المنخفضة على طرف المؤقت TMR0 .
0 : تزايد عند الانتقال من الحالة المنخفضة إلى الحالة المرتفعة على طرف المؤقت TMR0 .
  • PSA : خانة تخصيص "المقياس المسبق " Prescaler .
1: تخصيص Prescaler لمؤقت الحراسة WDT .
0 : تخصيص Prescaler للمؤقت / العداد TMR0 .
  • PS2, PS1, PS0 : خانات اختيار معدل Prescaler .
يتم ضبط Prescaler بعمل توليفة من الثلاثة خانات . كما ترى من الجدول التالى نفس توليفة الخانات تعطى معدل Prescaler مختلف لكل من المؤقت / العداد ومؤقت الحراسة على الترتيب .




عند مسح خانة اختيار التخصيص PSA يخصص prescaler للمؤقت / العداد TMR0 كما هو مبين بالشكل التالى :



دعنا نفعل ذلك بالمترجم mikroC :
__________________
angel4angel4angel4angel4angel4
رد مع اقتباس
  #2  
قديم 09-27-2011, 05:16 AM
 
دعنا نفعل ذلك بالمترجم mikroC :






  • فى هذا البرنامج يتم إعداد المؤقت TMR0 كمؤقت ويتم تخصيص prescaler له .
  • إعلان عن متغير نوع unsigned باسم cnt
unsigned cnt; // Define variable cnt


  • روتين المقاطعة : يتعرف علية المترجم من صيغته void interrupt() { ومحتواه يقوم به المبرمج وينص على :
عند حدوث مقاطعة (طفحان فى المؤقت) يتم تزايد المتغير بواحد cnt++; .
ثم يسترجع سجل المؤقت TMR0 قيمته الابتدائية TMR0 = 155; .
إعادة التهيئة بجعل الخانة T0IE (تمكين المقاطعة ) فى الحالة set والخانة T0IF (علم المقاطعة) فى الحالة clear بالصيغة INTCON = 0x20;

البرنامج :
  • البرنامج كالعادة يبدأ بالدالة الرئيسية void main() {
  • الإعدادات :
# تخصيص prescaler بالقيمة(1:32) ( أى القسمة على 32) للموقت TMR0 :
OPTION_REG = 0x04;
# وضع قيمة ابتدائية 155 فى سجل المؤقت TMR0 لكى يقوم بالعد من 155 إلى 255 :
TMR0 = 155;
# تمكين المقاطعة بالمؤقت TMR0 :
INTCON = 0xA0;

فى حالة إعداد المؤقت كعداد يكون البرنامج كما يلى :







باختصار :
لكي نتمكن من استخدام TMR0 بشكل صحيح فمن الضروري :

الخطوة رقم 1 : اختيار النظام select mode :
  • يتم اختيار نظام المؤقت بواسطة الخانة T0CS للسجل OPTION_REGحيث :
T0CS: 0=timer و T0CS: 1=counter
  • عند استخدامه ينبغي تخصيص prescaler للمؤقت / العداد بمسح الخانة PSA للسجل OPTION_REG. ويتم تحديد معدل prescaler باستخدام الخانات PS2 - PS0 للسجل نفسه.
  • عند استخدام المقاطعة، ينبغي تحديد set الخانات GIE وTMR0IE للسجل INTCON.
الخطوة رقم 2 : القياس والعد Measuring and Counting

لقياس الزمن :
  • يتم عمل تصفير reset للسجل TMR0 أو وضع قيمة معروفة به .
  • يتم قياس الزمن المنقضى (بالميكروثانية عند استخدام كريستال 4MHz) بقراءة السجل TMR0
  • تتحول خانة علم المقاطعة للمؤقت TMR0IFبالسجل INTCON تلقائيا إلى حالة set عند كل طفحان overflow يحدث بالسجل TMR0 إذا كان ممكن لحدوث مقاطعة .

ولقياس عدد النبضات :
  • يتم اختيار قطبية النبضات المراد قياسها على الطرف RA4 من الخانة TOSE بالسجل OPTION_REG :
T0SE: 0=positive pulses

T0SE: 1=negative pulses
  • يمكن قياس عدد النبضات من السجل TMR0 . يستخدم كل من prescaler والمقاطعة كما فى حالة نظام المؤقت .
__________________
angel4angel4angel4angel4angel4
رد مع اقتباس
إضافة رد

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


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

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


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
تحذير من موقع لتفسير القرآن الكريم .. ( المنقب القرآني ) !!!!! fares alsunna نور الإسلام - 40 07-26-2008 07:42 PM
حقيقة موقع .. المنقب القرآني .. loooool نور الإسلام - 2 10-16-2007 11:22 PM
الوشم المؤقت ، والدائم ، أنواعهما ، وحكمهما fares alsunna نور الإسلام - 10 09-09-2007 12:22 AM
بعض اسماء ابليس ووظائفهم و العياد بالله alassiya نور الإسلام - 3 03-29-2007 08:38 AM
المنقب الألكتروني عن أي آية وحديث ( تفسير الآيات --ودرجة الأحاديث) القـائـد نور الإسلام - 44 03-26-2007 01:29 AM


الساعة الآن 11:48 PM.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

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