جالب و دانستنی چطور زمان خود را بسنجیم؟

  • شروع کننده موضوع ❤ASAL_M❤
  • بازدیدها 519
  • پاسخ ها 0
  • تاریخ شروع

❤ASAL_M❤

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/08/02
ارسالی ها
5,042
امتیاز واکنش
53,626
امتیاز
1,121
محل سکونت
کهکشان راه شیری ، سیاره ی Exo
چگونگی عملکرد Timer ها
برای اینکه سنجش زمان برای میکروکنترلر میسر باشد باید معیاری از زمان در اختیار سخت افزار قرار بگیرد. این کار به وسیله سیگنال Clock انجام می شود. سیگنال Clock یک موج پریودیک با فرکانش مشخص است. فرکانس Clock برای یک 8051 حداکثر می تواند24 MHz باشد امّا مقدار معمول آن 12 MHz است. فرکانس این سیگنال، پیش از آنکه به Timerها اعمال شود، به ١٢ تقسیم می شود. یعنی فرکانس سیگنال Clock اعمال شده به Timerها 1MHz خواهد بود. (از این پس فرکانس Clock اعمال شده به Timer را 1MHz در نظر می گیریم ، بنابراین هر پر* یود Clock که به آن « سیکل ماشین » نیز گفته می شود، ١ میکروثانیه خواهد بود)
هر Timer در واقع یک شمارنده (Counter) است که تعداد پریودهای سیگنال Clock را (بعد از تقسیم فرکانس بر ١٢) می شمارد. اگر فرکانس Clock اعمال شده به Timer را 1MHz فرض کنیم هر 1 میکرو ثانیه، محتوای این شمارنده یک واحد افزایش می یابد . می توان با ضرب کردن محتوای این شمارنده در پر* یود Clock مدت زمان سپری شده را محاسبه نمود.
هر یک از Timer های ٨٠۵١ ، ١۶بیتی هستند . یعنی مقداری کهTimerمی شمارد در دو بایت (16) نگهداری می شود بنابراین بزرگترین عددی که یکTimer می تواند ذخیره کند، 1-16^2 یعنی ۶۵۵٣۵است . اگر رجیستر Timer حاوی این عدد باشد، با اعمال پالس بعدی Clock چه اتفاقی خواهد افتاد؟ مقدار بعدی رجیستر ٠ است. در واقع رجیستر Overflow یا سرریز می شود و بیت دیگری به جز١۶ بیت شمارنده (Flag) به نشان Overflow، یک می شود. (از این اتفاق Overflow و یک شدن بیتFlag) برای ایجاد تأخیر به میزان مشخص استفاده می شود.
65.jpg

فرض کنید قصد داریم تأخیری به اندازه ١٠٠ میکروثانیه ایجاد کنیم. در این صورت ، عدد100_65535 را در رجیست Timer قرار می دهیم . بعد از ١٠٠ پر* یود Clock محتوای رجیستر به حداکثر خود می رسد و Overflow می شود و همزمان با آن بیت نشان دهنده سرریز نیز یک می شود . در واقع یک شدن بیت Overflow به معنی سپری شدن زمان مورد نظر است.
همانطور که گفته شد میكروکنترلر AT89C 51 دارای دو Timer است . این دو Timer با اعداد 0 و 1 نشان داده می شوند . همچنین رجیسترهای هر کدام از این دو Timer با همین دو رقم از هم تمیز داده می شوند . از این پس، برای حفظ کلیت مطالب، به جای 1یا ٠ از x استفاده می کنیم، زیرا این دو Timer (در حوزه کاری ما) کاملاً مشابهند
حال با دقت بیشتری سخت افزار Timer را بررسی می کنیم . رجیستر ١۶ بیتی Timer در واقع از دو رجیستر ٨ بیتی به نامهای TLX و THX تشكیل می شود. THX ،(Timer High byte) 8بیت بالا وTLX ٨ بیت پایین هستند. شكل بالا رجیستر ,
(Timer (Timer Low byteرا نشان می دهد.
 

برخی موضوعات مشابه

بالا