نويسنده :
الهام
شاید بدانید که در کامپیوتر ها و دیگر دستگاه های الکترونیکی بازه های زمانی و زمان توسط تایمر سنجیده می شوند در اینجا برای نمونه به بررسی تایمرهای ATmega 16 خواهیم پرداخت که قبلا آن را کم و بیش از زوایای دیگر بررسی کرده ایم.
میکروکنترلر51 AT89C دارای دو Timer است که می توانند به صورت مستقل از هم، برای سنجش بازه های زمانی مورد استفاده قرار گیرند.
چگونگی عملکرد 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) برای ایجاد تأخیر به میزان مشخص استفاده می شود.
برچسب :
چطور ,
زمان ,
خود ,
بسنجیم؟ ,
نمود.1-16^2فرض ,
توان ,
معنی ,
سپری ,
برای ,
مورد ,
کردن ,
است. ,
گفته ,
سنجش ,
سیکل ,
قرار ,
بازه ,
کنید ,
آنکه ,
شود، ,