شاید بدانید که در کامپیوتر ها و دیگر دستگاه های الکترونیکی بازه های زمانی و زمان توسط تایمر سنجیده می شوند در اینجا برای نمونه به بررسی تایمرهای ATmega 16  خواهیم پرداخت که قبلا آن را کم و بیش از زوایای دیگر بررسی کرده ایم.

میکروکنترلر51 AT89C دارای دو Timer است که می توانند به صورت مستقل از هم، برای سنجش بازه های زمانی مورد استفاده قرار گیرند.

تایمر و میکرو کنترلر  micro controller , atmega16 , timer

چگونگی عملکرد Timer ها

برای اینکه سنجش زمان برای میکروکنترلر میسر باشد باید معیاری از زمان در اختیار سخت افزار قرار بگیرد. این کار به وسیله سیگنال Clock انجام می شود. سیگنال Clock یک موج پریودیک با فرکانش مشخص است. فرکانس Clock برای یک 8051 حداکثر می تواند24 MHz باشد امّا مقدار معمول آن 12 MHz است. فرکانس این سیگنال، پیش از آنکه به Timerها اعمال شود، به 12 تقسیم می شود. یعنی فرکانس سیگنال Clock اعمال شده به Timerها 1MHz خواهد بود. (از این پس فرکانس Clock اعمال شده به Timer را 1MHz در نظر می گیریم ، بنابراین هر پریود Clock که به آن « سیکل ماشین » نیز گفته می شود، 1 میکروثانیه خواهد بود)

هر Timer در واقع یک شمارنده (Counter) است که تعداد پریودهای سیگنال Clock را (بعد از تقسیم فرکانس بر 12) می شمارد. اگر فرکانس Clock  اعمال شده به Timer را 1MHz فرض کنیم هر 1 میکرو ثانیه، محتوای این شمارنده یک واحد افزایش می یابد . می توان با ضرب کردن محتوای این شمارنده در پریود Clock مدت زمان سپری شده را محاسبه نمود.

هر یک از Timer های  80?1 ، 1?بیتی هستند . یعنی مقداری کهTimerمی شمارد در دو بایت (16) نگهداری می شود بنابراین بزرگترین عددی که یکTimer می تواند ذخیره کند، 1-16^2 یعنی ???3?است . اگر رجیستر Timer حاوی این عدد باشد، با اعمال پالس بعدی Clock چه اتفاقی خواهد افتاد؟ مقدار بعدی رجیستر 0 است. در واقع رجیستر Overflow یا سرریز می شود و بیت دیگری به جز1? بیت شمارنده (Flag) به نشان Overflow، یک می شود. (از این اتفاق Overflow و یک شدن بیتFlag) برای ایجاد تأخیر به میزان مشخص استفاده می شود.

تایمر و میکرو کنترلر  micro controller , atmega16 , timer

فرض کنید قصد داریم تأخیری به اندازه 100 میکروثانیه ایجاد کنیم. در این صورت ، عدد100_65535 را در رجیست Timer قرار می دهیم . بعد از 100 پریود Clock محتوای رجیستر به حداکثر خود می رسد و Overflow می شود و همزمان با آن بیت نشان دهنده سرریز نیز یک می شود . در واقع یک شدن بیت Overflow به معنی سپری شدن زمان مورد نظر است.

همانطور که گفته شد میکروکنترلر AT89C 51 دارای دو Timer است . این دو Timer با اعداد 0 و 1 نشان داده می شوند . همچنین رجیسترهای هر کدام از این دو Timer با همین دو  رقم از هم تمیز داده می شوند . از این پس، برای حفظ کلیت مطالب، به جای 1یا 0 از x  استفاده می کنیم، زیرا این دو Timer (در حوزه کاری ما) کاملاً مشابهند

حال با دقت بیشتری سخت افزار Timer را بررسی می کنیم . رجیستر 1? بیتی Timer در واقع از دو رجیستر 8 بیتی به نامهای TLX و THX تشکیل می شود. THX ،(Timer High byte) 8بیت بالا وTLX 8 بیت پایین هستند. شکل بالا رجیستر  ,

 (Timer (Timer Low byteرا نشان می دهد.

 

برگرفته از سایت های میکروکنترلر ها ، ای.وی.آر




برچسب ها : دانش و فن آوری  ,