.

مود 00 که از تایمر به عنوان یک شمارشگر 13 بیتی استفاده می کند.

 

مود 01 از تایمر به عنوان شمارشگر 16 بیتی استفاده می کند

 

مود 02 به عنوان شمارشگر 8 بیتی با راه اندازی خودکار استفاده می کند

 

مود 03 تایمر را به دو تایمر 8 بیتی تقسیم می کند که به آن حالت تسخیر شده می گویند.

 

.

 FFFFH تايمر16 بيتي مود01 مي تواند از مقدار 0000 تا

 

 تايمر پرچم خود را FFFF  بشمارد پس از رسيدن به مقدار

 

را يك مي كند ومجددا“ از مقدار0000 شروع به شمارش ميكند.(TF)

 

 است تایمر به عنوان AutoReload در مود 2 که همان حالت

 

می شمارد. البته در اين مود ميتوان FF h شمارشگر ازمقدار 00 تا

 

براي تايمر تعيين كرد كه چه مقدار بشمارد.

 

 هستندثبات TCON وTMOD تایمر ها دارای دو ثبات با نامهای


 
برای مقدار اولیه دادن به تایمر مورد استفاده قرار می گیرند TMOD

برای کنترل تایمر مورد استفاده قرار می گیرد TCON و ثبات

همیشه باید قبل از راه اندازی تایمر مقدار دهی شود.شکل

 

صورت زیر است: به TMOD ثبات

 

 

.

یک ثبات 8 بیتی است که به دو قسمت 4 بیتی تقسیم TMOD

می شود نیبل بالا برای تایمر 1 و نیبل پایین برای تایمرمورد

استفاده قرار می گیرد.

 

می توان گفت که یک نوع راه انداز تایمر است Gate بیت

در صورتی که مقدار این بیت را یک قرار دهیم کنترل تایمر از صورت می گیرد. INT1 طریق پالس ورودی به پایه ی

 

نوع كاركرد تايمر را تعيين ميكند كه آياتايمر براي C/T بیت

T1يا T0 شمارش تعداد پالس کریستالخارجی متصل به پایه

.

مورداستفاده قرار گیرد یا برای شمارش تعداد پالس های

کریستال مدار میکرو که آن هم به پایه های 18 و 19 هم مود كاري را تعيين مي كند. M1و M0بیتهای . متصل است

 

TCON ثبات دیگری که در مورد تایمر مورد استفاده قرار می گیرد

 است بیتهای این ثبات در شكل زير مشخص مي باشد.

 

 

  

.

:بسته به مودي كه براي كار در آن تنظيم شده است TFبیت

 

پس از به رسيدن مقدار نهايي قبل از اينكه مجددا“ شروع به

 

شمارش كند این بيت را یک میکند تا نشان دهد مقدار فعلی

 

در دور دوم شمارش است و قبلا یک بار شمارش کامل شده است.

 

این بیت به صورت سخت افزاری یک می شودو ما باید به

 

صورت نرم افزاری قبل از پایان دور دوم شمارش آن را صفر

 کنیم
 

.

 بيت كنترل راه اندازي است.در صورتي كه اين :T R بيت

 

بيت رايك كنيم تايمر شروع به شمارش ميكندو در صورت

 

صفر شدن تايمر متوقف مي شود. بیت بعدی این ثبات برای

 

عملیات وقفه کاربرد دارد.

 

 

 

.

الگوریتم کار با تایمر:

 

 

هر دو سیستم در هر لحظه می توانند هم داده را انتقال دهند و هم گیرنده باشند full در

 

 

پورت سریال:

دو راه برای آدرس دهی پورت سریال موجود است. به وسیله .Dos 21H و وقفه بایوس 14H وقفه
 
بایوس از 4 تابع برای برنامه ریزی پورت سریال :14H استفاده می کند

: پورت سریال را مقدار دهی اولیه می کند و سرعت و 00H بیت ها پایان و توازن را تنظیم می کند.
:يك كاراكتر را به پورت سريال مشخص شده ارسال 01H

ميكند.

 

.

 يك كاراكتر را از پورت سريال مشخص شده ارسال :02H

مي كند.

 وضعيت پورت سريال مشخص شده را مي خواند. :08H

     سه تابع مربوط به تنظیمات 21H Dos براي وقفه

پورت سریال موجود می باشد:

  مي خواند.com1 یک کاراکتر از :03H

 می نویسد. com1 یک کاراکتر از :04H

 یک تابع خروجی عادی است که برای فایل ها و :40H

استفاده می کند به کار می رود handle دستگاههایی که از
 

وقفه ها در 8051


وقفه به حالتی گفته می شود که پروسسور عملیات برنامه فعلی (میزبان) را متوقف کرده و برنامه دیگری ( مهمان) را اجرامی کند پس از اجرای برنامه (مهمان) پروسسور دوباره اجرای برنامه میزبان را از جای که متوقف کرده بود از سر می گیرد. وقفه ها در میکرو کنترلر 8051 به سه دسته وقفه تایمر وقفهی خارجی و وقفه سریال تقسیم می شوند. این سه دسته در کل شامل 5 منبع وقفه هستند.

در 8051 5 منبع وقفه وجود دارد دو منبع وقفه برای تایمر ها ، دومنبع وقفه خارجی ، و یک منبع وقفه سریال.


    

.

اولین کاری که در استفاده از وقفه بایدانجام دهیم فعال کردن وقفه ) مسئول  Interapt Enable)IE می باشد.یک ثبات با نام

کردن وقفه ها میباشد.

 

 

 

:منبع وقفه ی خارجی0 EX0

0 منبع وقفه ی تایمر :ET0

1 منبع وقفه ی خارجی :EX1

1 منبع وقفه تایمر :ET1

منبع وقفه ی سریال :Es

.

(8052) منبع وقفه ی تایمر 2 :ET2

استفاده نشده: --

فعال کردن کلیه وقفه ها :EA
در صورتی که بخواهیم وقفه ای را فعال کنیم باید دو بیت را   .EAکنیم بیت اول بیت متناظر با وقفه و بیت دوم بیت  set

 

تقدم وقفه ها:

   وجود دارد که دو  IP(Interrupt Priority) ثباتی با نام

سطح بالا و پایین تقدم را برای وقفه تعریف می کند. در صورتی که دو وقفه در دو سطح مختلف همزمان روی دهند وقفه سطح بالا تر زودتر انجام می شود.

.

دارد. IE بیتهای مشابه IP ثبات

 

 

 

با یک کردن هر کدام از بیتها وقفه متناظر با آن بیت به سطح بالا می رود و وقفه هایی که بیت متناظر آنها صفر است در سطح پایین اولویت قرار می گیرند.

حالت دیگری که ملزم به در نظر گرفتن آن هستیم احتمال روی دادن همزمان دو وقفه با یک سطح اولویت است.

در چنین مواقعی ترتیب اولویت اجرا بدین گونه تعیین می شود وقفه متناظر با بیت کم ارزشتر زودتر انجام می گیرد.  

.

 

 

 

 

 

 

 

:(ISR) روتین سرویس دهی وقفه
زیر برنامه ای است که می خواهیم در صورتی که وقفه روی   با زیر برنامه های عادی ISRداد این زیر برنامه اجرا شود.فرق پایان می یابداما زیر برنامه های RETI با ISR دراین است که

.

.RET معمولی با

 

بردار وقفه:

هنگامی که یک وقفه روی می دهد آدرس مشخصی بسته به  ذخیره می شود. این آدرس برداروقفه نامPC نوع وقفه در

دارد.

.

هر بردار وقفه 8 بایت است. در بردار وقفه فقط دستورات پرش به زیر برنامه ای را که برای وقفه در انتهای برنامه اصلی نوشته ایم قرار می دهیم.

INT0 ,INT1 وقفه های خارجی به پالس اعمال شده به پایه های

حساس می باشند و چون این دو پایه فعال صفر هستند در لبه پایین روند پالس روال وقفه را اجرا می کنند.

TI ,RI کردن پرچم های OR وقفه سریال با نتیجه حاصل از

فعال میشود.