بخشی از مقاله


زبان برنامه نويسي اسمبلي 8051

1-5 زبان برنامه نويسي اسمبلي 8051

زبان برنامه نويسي اسمبلي در8051 به فهميدن مثال هاودستورات اسمبلر ونوشتن ديتاها وغيره نياز دارد.
يك بحث مختصردرباره ابزارهاي برنامه نويسي .اسمبلر.ارتباط دهنده هاوغيره
همچنين در آغاز اين مهم است.خواننده شايددر دسترس بودن ابزارهاو گسترش سيستم ها را چك كندوسعي كند تا برنامه هاي مثال را بر روي سطح هاي آن كار كند.بيشتر خصوصيات با هر 8051 توسعه يافته پشتيباني ميكنندوسيستمها شبيه هستند.بحث مختصر راجع به اين خطوط خود به يك فصل نياز دارد.

1-1-5 اسمبلر 8051
اسمبلر يك نرم افزار براي تبديل حافظه يا كدهاي مرجع زبان اسمبلي به كد ماشين است.منبع اسم فايل گسترش يافته براي مثال:"asm " است.احتمال دارد test.asm نام يك فايل مرجع باشد.يك مثال شاخص فايل مرجع در برنامه مثال 1-5 بكار رفته است.
اسمبلرها تمام حروف انگليسي را پشتيباني ميكنند.هر دو حالت پائيني و بالائي و شماره هاي از0 تا 9 و در نوع افزايشي"@-$-:"را نيز پشتيباني ميكند.


اصل و پايان دستورات
كلمه و دستورات كاذب هستند.اينها براي اسمبلر 8051 در دستور دهنده ها قرار دارند.دستور دهنده+براي نشان دادن ادرس شروع برنامه مرجع بكار ميرود.0100 +به اسمبلر ميگويدكه برنامه مرجع در آدرس0100+ برنامه حافظه شروع ميشود.همچنين آدرس ممكن است دهدهي باشد.براي مثال 0250+به ما ميگويد كه اسمبلر برنامه را در آدرس D250 شروع ميكند.به طور مشابه دستور دهندهENDحاكي از پايان فايل برنامه مرجع ميباشد.اين آخرين خط برنامه مرجع است واسمبلر هركدمرجع بعدازENDرا ناديده ميگيرد.بعضي اسمبلرهابه جايORGو ENDاز".ORG"و".END"استفاده ميكنند.
(ببينيد كه اسمبلر شما چه چيزي را پيشنهاد ميكند.)

دستوراتDB(تعيين كردن بايت)EQU(برابر شماردن)
DBدستوري است كه براي تعيينديتا بايت با 8بيت عرض بكار ميرود.ببينيد اين دستورات در مرجع برنامه ظاهر ميشوند.
شمارهي كه به يك متغيير محول مي شود ممكن است دسيمال.باينري.هگز يا اسكي باشد.حرف به دنبال اعداد شبيه اين است.بعنوان مثالD به معني دسيمالD35به معني 35 دسيمال بوده وحرفHبراي هگز بكار ميرود بايد بعد از عددبيايد: H25يعني عدد25 در مبناي هگز.بطور مثال براي مبناي باينري حرف B بكار ميرود. زبان اسمبلي حساس نيست.براي نشان دادن اعداد اسكي از(;)استفاده ميشود. يك يا دو(;)ممكن است بكار رود.هر دوحالت بكار ميرود.بدين طريق اگريك رشته معني بدهددر يك برنامه ميتواند پائين تر انجام بدهد.يك اسمبلر بطور اتومات كد نظير اسكي را به اين اعداد يا كاراكترها تعيين ميكند.

دستور برابر كردن در تعين كردن يك ثبات كاربرد دارد.نشان ديتا با ثبات ارزش پيوسته دارد.همچنين هرجانشان ظاهر بشودثبات نشان را تعويض كرده است.براي مثال ارزشD39 نشان TEMPرا تعيين ميكندودنباله آنرا نشان ميدهد و بنا براين ميتواند به رجيسترBدر هرجائي از برنامه كپي كند.دستورEQUبه شرطي مفيد است كه يك ثبات در بيشتر جاهاي برنامه بكار برود بنابراين برنامه نويس ميتواند ارزش آنرا تغيير داده ومعني وتعريف جديدي را در اين ثبات بگذارد.اين كار در وقت برنامه نويس صرفه جوئي ميكند.تا زمانيكه از زبان اسمبلي استفاده ميكنيد بايد اينكارو بكنيد.نبايد از كلمات كم مصرف يا با نشان منطقي استفاده كنيم.براي مثالADDيك نشان منطقي در راهنماي 8051 است.بنابراينADDنميتواند براي يك نشان بكار رود.به طور مشابهORGياENDنيز نمي توانندبراي يك نشان بكار روند.نام اين نشان ها بايد منحصر باشد.


الگوي برنامه نويسي8051
برنامه 8051 بخش ارزش دهي خواهد داشت بنابراين برنامه اصلي و زيز برنامه ها در برنامه حافظه ديرتر نوشته خواهد شد به برنامه مثال 2-5 كه در زير آمده است توجه كنيد.

زمانيكه اينتراپتها مطرح شوند بيشتر اين موضوع را شرح خواهيم داد.جهت موقعيت نظير در اين اينتراپت ها در ادرس پائين برنامه حافظه قرار دارند.دستورJUMPبراي آدرس هاي شروع زير روال اينتراپت استفاده ميشود.آن زير روال هاوسرويس اينتراپت ها شايد در دستور ديگري ظاهر شوند فرا خواندن در سرويس زير روال اينتراپت ها با دستورRETIانجام ميشود.درحاليكه زير روال هاي اصلي با دستورRET بكار ميروند.

2-5 مديريت سيستم وابزار
بعد از نوشتن برنامه اسمبلي لازم استكه اسمبلي را منتقل كرده.متصل كنيد و بنابراين هيچ خطائي را توليد يا تحليلي را تصحيح نمي كند.اين فرايند سالم يك فايل هگز را توليد ميكند.اين يك برنامه زبان ماشين است.اين فايل هگزداخل قسمت برنامه حافظه در يك برد ميكروكنترلر منتقل ميشود .يكROM.EPROMياEEPROM.نوشتن زبان ماشين بر روي يكEPROMبه يك ابزار كه برنامه نويس EPROM را فرا ميخواند نياز دارد و آنرا پاك كند.براي پاك كردنEPROMبه امواج فرا بنفش نياز داريم ROMدر كارخانه سازنده برنامه نويسي ويشود.در اولين قسمت=مدل51C89 ساخت كارخانهATMELبراي نوشتن و پاك كردن بسيار آسان است.انها به امواج فرابنفش براي پاك كردن نيازي ندارند. حالا براي تست برنامه برنامه به يك برد ميكرو كنترلر نياز داريم.اين برد مديريت برنامه را بر عهده دارد.


يك برنامه مديريت اجازه يك بار نوشتن ميدهد.اشكال زدائي و اجرا كردن برنامه بر روي يك ميكرو كنترلر 8051 واقعي صورت ميگيرد.

اسمبلي يكMCS-51
فايل مرجع با ضميمه(.asm)بر روي بعضي ويرايش كننده ها نوشته ميشود.يك امكان استفاده از"EDIT"يا لغت پروسسور ديگر براي فرهم كردن فايل اسكي ميباشد.شكل1-5 نحوه عملكرد ويرايش كننده ها را نشان ميدهد.

اين فايل مرجع ورودي يك اسمبلر است.اسمبلر يك فايل با پسوند.objتوليد مي كند.بر روي جايگاه متغير.asm اسمبلر يك فايل متغيربا.objتوليد ميكند.اين در شكل 2-5 نشان داده شده است.همچنين يك فايل.lstنيز توليد خواهدشد.اين.lst شامل تمام رمزگشاها.آدرس هاوخطاهاي هنگام اسمبلي ميباشد.

اين فايل اگر نياز داشته باشدشايد بعضي از ويرايشگرها را باز كند.براي اسمبل يك يك برنامه 8051 روي اسمبلرx_8051بايد يكX_8051.EXEرا اجراكنيم.اسمبلر ازنوع لينوكس نيز در دسترس است.براي مثالAS31 موجود ميباشد.


بعد متصل كردن به فايلهاي موضوع نياز دارد.كار يك وصل كننده در شكل3-5 نشان داده شده است.نرم افزار وصل كننده با"link.exe"اجرا ميشود.بعد ازوصل شدن يك فايل هگز توليد ميكند با پسوند اجرائي".hex"در اين جايگاه يك فايل متغير.hexتوليد خواهدشد.بيشتر ممكن است يك فايل.bin براي استفاده سودمنداز.HEX2BIN فراهم كند.بيشتر سيمولاتورهاي8051با پسوند.binموافق هستند.

3-5 نرم افزار سيمولاتور در 8051
در اينجا نرم افزار سيمولاتور براي 8051 فراهم شده است.اين نرم افزاربرنامه سيمولاتوربه بورد 8051 نياز ندارد.اين بر روي محيط يك كامپيوتر شخصي اجرا ميشود.اين به كاربر اجازه ميدهد تا بنويسدواشكال زدائي كندويك برنامه را اجرا كند.نتيجه وحاصل چندين ثبات را مشاهده كنيد.در اينجامقداري اينترفيس هاي استاندارد مثل 7 سگمنت.نمايشگرهاوكليدها وجود دارد.يكبار برنامه برروي سيمولاتور تست ميشود.امكان دارد برروي برد ميكروكنترلرمنتقل شود.SIM31 يك مثال از اين نوع ميباشد.ويرايش لينوكس درسيمولاتور8051 مثلS51امكان پذيراست.اين بسيار ضروري است كه قبل از انتقال برنامه برروي يك سخت افزار واقعي بتوانيم آنرا تست كنيم.


اين كار مقداري وقت و هزينه صرف ميكندوبه همين مقداربراي تست سخت افزار ميباشد.يكبار برنامه صحت سيمولاتور را بررسي ميكند.اين ميتواندبر روي EPROM .EEPROMوغيره منتقل كند.
اين از همه ابزارهاي توسعه كه خواهيم داشت و قراردهاي توسعه بهتر است.

فصل 6

اينتراپت ها .تايمرها.شمارنده ها. و ارتباط سريال درMCS-51

1-6 اينتراپت ها
اينتراپت يك ورودي به پروسسور استكه چگونگي اتفاق افتادن يك واقعه را نشان ميدهد.بر روي جايگاه يك واقعه خروجيحالت پين ميكرو پروسسور را تغيير ميدهد.همچنين اينتراپت هااتفاق يك رويداد در اطراف ماشين مثل تايمر لبريز يا انتقال.پذيرش يك بايت در ميان پورت پورت سريال و غيره توليد ميكند.پروسسوربه يك اينتراپت با حالت جاري ماشين پاسخ ميدهدوشاخه زيربرنامه را اجرا ميكند سرويس زيرروال اينتراپت فراخوانده ميشود.زمانيكه يك اينتراپت اتفاق مي افتد.CPU به جايگاه مشترك بااينتراپت مي پرد.برنامه حافظه وشروع برنامه از اينجا ميباشد.اين جايگاه جهت(vector )ناميده مي شودواينتراپت . جهت اينتراپت ناميده ميشود.بعد از مصرف كردن اينتراپتپروسسور حالت اصلي ماشين را تعمير ميكند وبا برنامه اصلي ادامه ميدهد. سخت افزاراينتراپت يك قسمت مهم از ميكروپروسسوريا ميكرو كنترلر ميباشد.


2-6 اينتراپت ها درMCS-51

MCS-51 پنج جهت(vector ) اينتراپت مرجع را پشتيباني ميكند.اينتراپت خروجي صفرويك .تايمر/شمارنده صفرويك و پورت سريال اينتراپت ها را شامل ميشود.وقتي يكاينتراپت متداول ميشود برنامه شمارنده به يك واحد پشتيبان حافظه هل ميدهد.آدرس جهت در برنامه شمارنده قرار داده ميشود.جهت دادن يك مكان اختيار ميكنند.پرچم مخصوص اينتراپت بامرجع اينتراپت برابر شدند اين با يك سخت افزار پاك ميكند.درMCS-51 اين پرچم ها دربيت هايT1,R1,TF1,TF0,IE1,IE0 قرار دارند.


حالا برنامه شروع رااز روي جايگاه جهت اجرا ميكند.زيرروال اينتراپت سرويس زيرروال(ISS )رافرا ميخواند
ISS بادستورRETI پايان مي يابد.اينتراپت جايگاه جهت در 8051 فضاي هر8 بيت را ميگيرد.بنابراين تكنولوژي ممكن ميسازدتا ISS رااينجا قرار دهيم.در قراردادن دستورRETI اين از 8 بيت بيشترنيست.
در غير اينصورت ودرواقع در همه جايگاه ها يك دستورJUMP در آدرس جهت نوشته ميشود(حداكثر3 بيت) و قسمت هاي باقيماندهISS محل بعضي جاهاي ديگر راتعيين ميكنند.آدرس هاي جهت در جدول1-6 به ترتيب اولويت آورده شده اند.
به اينتراپت خرجي1 نگاه كنيد.


به ظاهر در اغاز برنامه درستقرار ميگيرد.تا زمانيكهCPU با برنامه اصلي مشغول باشداگر انتقال از 1 به0 درپين12 رخ دهد.گنجايش جاري برنامه شمارنده بر روي پشته ذخيره ميشود وبنابراينPC باادرس جهت 0003H قرار ميگيرد.هر دو دستور بعدي در همين آدرس اورده شده واجرا ميشوند.حالا فقط8 بيت براي نوشتنسرويس زيرروال اينتراپت بكار ميروندوهمانطور كه دربالا ديديد.بنابراين يك دستورJUMP معمولي در اين جايگاه جهتH 003 نوشته ميشود.سرويس اينتراپت زيرروال به جزبرنامه حافظه در بعضي جاها با دستور RETI پايان مي يابد.دستورRETI محتواي شمارنده برنامه را ازپشته گرفته وcpu دوباره اجراي برنامه را ازجاييكه برنامه اصلي اينتراپت شده است شروع ميكند.هر رويداد خارجي كه در حالت اينتراپت تغيير ايجاد كند ميتواند سرويس زيرروال اينتراپت را جابجا كند.اينتراپت خارجي شايد بتواندبا حساسيت به لبه يا سطح شكل پيدا كند.اگر اينتراپت بخواهد حساس به سطح باشد بايد در سطح پائين بماند تازمانيكه اينتراپت توليد گردد.


در جايگاه يك اينتراپت تحريك با لبه يك عبور از سطح بالا به پائين برروي پين اينتراپت كافي است.لازم است تادر SFR جايگاه و تنظيمات بيشتر مناسب باشد.فعال كننده اينتراپتIE ناميده ميشود.ثبات يك اينتراپت آغازين براي MCS-51 مي سازد.

1-2-6 قالب بندي اينتراپت8051
ثبات IE به برنامه نويس اجازه مي دهددر صورتي كه نياز داشتاينتراپت را فعال كند.اين ثباتIE يك ثبات آدرس پذير است ودر شكل1-6 نشان داده شده است.بيتEA اگر پاك شده باشداجازه غير فعال كردن تمام اينتراپت هاي سالم را ميدهد.بدين گونه اين اعمال بصورت كنترل كننده هر اينتراپت هستند.اين مهارتمتوسط خواهد بود.فقط با يك بيت فرد ميتوان همه مراجع اينتراپت را كنترل كرد.براي رخ دادن جزء به جزء اينتراپت بيت EA وبيت متناسب آن بايد يك شود.براي مثال در جايگاه يك اينتراپت سريال بيتEA و ES بايد يك شوند.ES پورت سريال اينتراپت مفيد در انتقال سريال است.اگر يك شود اينتراپت هاي سريال
T1 ياR1 را فعال مي كند.بطور مشابهET0,ET1 به ترتيب براي اينتراپت تايمر 1 وتايمر0 هستند.
EX0,EX1 به ترتيب براي بيت فعال كننده اينتراپت خارجي 1 و0 هستند.برنامه مثال 1-6 آغاز اينتراپت خارجي1 را نشان ميدهد.


اين دستور اينتراپت خرجي يك را فعال خواهد كرد.اگر درحال ادامه يك دستورCLREA بياوريم تمام اينتراپت هاي خارجي سالم غير فعال خواهد شد.در آغاز اينتراپت سريال شايد ثبات IE باB 10010000 پرشود.


2-2-6 حق تقدم اينتراپت
بررسي جايگاه به ما ميگويد زمانيكه بيش از يك اينتراپت فعال باشد.كاربر مي تواند سطوح اينتراپت آغاز را با يك كردن يا پاك كردن بيت درSFR وفراخواني ثبات اينتراپت آغاز برنامه ريزي كند.ثباتIP يك بيت آدرس پذير است.اگر بيت فعال شود آن اينتراپت ويژه آغاز با سطح بالا خواهد داشت.

يك اينتراپت آغاز سطح بالا مي تواند يك اينتراپت اغاز سطح پائين را اينتراپت كند ولي برعكس اين ممكن نيست.حال اگر دو سطح متفاوت اينتراپت آغازين بطور همزمان درخواستشوند طبيعتا اينتراپت آغازين با سطح بالا جواب داده خواهد شد.اگر دو دستورسطح بالا همزمان درخواست شوند به اقتضاي ساختار تركيب و با توجه به جدول 1-6 تقدم داده خواهد شد.نوشته اين سطح را فقط براي تشخيص دادن مقداري از سطح حق تقدم درخواست شده بكار ميرود.برنامه مثال 2-6 اين واگذاري اينتراپت حق تقدم به تايمر اينتراپت1 نشان مي دهد.

اولين دستور هر دواينتراپت را فعال مي كند.بطور مثال اينتراپت خراجي 1 وتايمر1 اينتراپت دستور SETB PT1 سطح بالاي تقدم براي تايمر اينتراپت تعيين ميكند. بنابراين اگر هر دو آنها را بطور همزمان نياز داشته باشند.بنابراين تايمر اينتراپت استفاده خواهد شد.به ره حال به ما اجازه ميدهد ببينيم چه اتفاقي مي افتد زمانيكه يك دستور بيشتردر اين برنامه ثبت شود. اين در مثال3-6 نشان داده شده است.
هر دو اينتراپت خارجي1 و تايمر1 اينتراپت مقداري حق تقدم دارند. حال اگر اينتراپت ديگر بصورت همزمان رخ دهند اينتراپت خارجي به تركيبي كه در جداول1-6 و2-6 دستور داده شده اجرا خواهند شد.

3-6 شمارنده ها وتايمرها
روي چيپ زمان شمار/شمارنده امكانات براي سهولت پركردن ميكروكنترلردر زمان واقعي كاربرد دارد. اينها شمارنده پالس اندازه گير فركانس پالس واندازه گيري عرض وسرعت در ثانيه وغيره هستند.براي اينكه يك تايمر وشمارنده عدد كافي داشته باشند.شايد نياز به يك طراحي مطمئن داشته باشيم.همانطور كه در قسمت اول ديده شد.8051 دو شانزده بيت تايمر/شمارنده دارد.قبل از بحث راجع به تايمر/شمارنده 8051 لازم است تفاوت بين يك تايمر و شمارنده را ببينيم.
يك زمان شمار شمارنده سيكل ماشين وبه شرط يك زمان تاخير مرجع يا يك ساعت.يك سيكل ماشين8051 از 12 تحريك تشكيل شده يا سرعت شمارش12/1 فركانس تحريك مي باشد.در12 مگا هرتز ساعت دوره معادل1 ميكرو ثانيه خواهد بود.


حالا به ما اجازه مي دهد تا دستورات شمارنده را ببينيم.شمارنده 8051 پاسخ را كم ميكند تا يك گذاراز يك به صفرو اين بطور مشابه در پين خارجي(T0 ياT1 )خواهد بود.بدين گونه تايمر خروجي يك شمارش يا يك عدد براي رخ دادن يك گذار ازيك به صفر درپين خروجي ظاهر ميكند. براي حالت شمارش8051 دو سيكل ماشين يا24 پريود تحريك ميگيرد واشاره ميكند وبه يك گذاراز پينT0 بهT1 اشاره ميكند
زمانيكه يك تايمر يا يك شمارنده ازFFFFHبهH 0000 سرريز ميكند.اين پرچم وتابع اينتراپت را يك ميكند.16 بيت از تايمر براي ارزش بالايTHx وبراي ارزش پائينTLx را انتخاب ميكنند.بدين گونه TH1 بايت هاي با ارزش بالاي تايمر1 و TL1 بايت هاي با ارزش پائين تايمر يك هستند.


حالت هاي تايمر وشمارنده
چهار حالت تايمر در8051 وجود دارد.يك تايمر يا شمارنده عمل يا حالت را با نوشتن SFR در جاي مقتضي انتخاب ميكنند. ثبات حالت تايمر(TMOD )ناميده ميشود.با در نظر گرفتن اينكهSFR كنترل تايمر/شمارنده را انجام ميدهد ثبات كنترل تايمر(TCON )ناميده ميشود.اين SFR ها در شكل3-6 و4-6 نشان داده شده است.
¬

حالا سؤال اين است كه چطور درست به تايمر/شمارنده به يك تايمر يا شمارندهشكل مي دهد.در شكل4-6 بيتTMOD وتعريف اعمال آن آمده است.

حالت صفر
در حالت صفر تايمر 13 بيت عرض دارد.اين حالت براي تايمر صفر به خوبي تايمر 1 يكسان است.زمانيكه
شمارش سرريز شود اين پرچم اينتراپت را بالا مي برد(TF1 براي تايمر1 و TF0 براي تايمر صفر)براي شروع تايمر صفربيتTR0 درTCON نياز دارد كه داراي ارزش يك شود.اين13 بيت حافظه فقط زير مجموعه كار تايمر در خانواده8048 دارد.
بيت بالايي (TH1)TH0 وبيت پائينتر(TL1)TL0 از 13 بيت بكار ميروند.اين در شكل5-6 نشان داده شده است.

برنامه مثال4-6 در ابتدا تايمر1 در حالت صفر است.تبديلTMOD.7 در TMOD به 1 بايد رعايت شود.
اين يك بيتGATE است.اگر اين به 1 تبديل شودوTR1 يك باشد.بنابراين تايمر 1 با ورودي خروجي ازPIN13 (INT1)كنترل مي شود.اينرا ميتوانيد در شكل7-6 مشاهده كنيد.زمانيكه GATE صفر باشد بنابراين فقط TR1 تايمر را فعال مي كند.


حالت 1
حالت يك شبيه حالت صفر است بجز اينكه داراي عرض 16 بيت است.حالت يك همچنين براي تايمر صفرو تايمريك شبيه است.حداكثر شمارش در اين حالتFFFFH مي باشد.در واقع درتمرين اين طبيعي است كه هميشه از حالت 1 استفاده كنيم.از آنجائيكه 13 بيت عملياتي در حالت صفر متوسط خاص ندارد.ابتداتايمر در حالت 1 ميباشد.برنامه مثال5-6 را نگاه كنيد.


اگر درآغاز تايمر سرريز كند ميتواند اينتراپت توليد كند . رسيدگي كردن به يك قطعه از برنامه(برنامه ريزي مثال6- 6) براي تايمر1 اينتراپت آغاز ميكند. اين هميشه ايستادن قبل از رفتن به برنامه اصلي به آغاز پشته اشاره ميكند زيرا شايد ارزش كم SP07H در اصل مناسب نباشد.
همچنين اين آدرس ثبات R7 مي باشد و اگر بانك ثبات اجرا شود اين مي تواند بعضي محتويات مفيد ثبات را دوباره بنويسد.


بسادگي فقط بيت ET1 در ثبات IE را فعال مي كند و تايمر اينتراپت فعال نخواهد شد.در افزايش لازم استكه بيتEA در IE را فعال كنيم.
اين برنامه تايمر 1 را راه اندازي ميكند وتازمانيكه آن سرريز شود تايمر1 اينتراپت توليد ميكرد.به اين دليل شمارندهبرنامه به جايگاه 001BH مي پرد.

حالت2
اين حالت نيز براي تايمر 0 و1 شبيه است. به تايمر با يك هشت بيت شمارنده TL1 آماده شده است.TL1 براي يك كردن پرچم TF1 سرريز ميشود واينTL1 را با محتويات TH1پر مي كند.نرم افزار ميتواندTH1 را مجددا پر كند.اين حالت تايمر0 يا تايمر1 بدين گونه حالت پرشدن مجدد به صورت اتومات را پشتيباني ميكند.حالت2 مكانيزم اتومات پر شدن مجدد آن در تصوير8-6 نشان داده شده است.
تايمر كنترل منطقي شبيه حالت 0 يا1 مي باشد.


حالا به ما اجازه مي دهد آغاز برنامه براي تايمر صفر در حالت2 را بنويسيمكه در برنامه مثال7-6 نشان داده شده است.

برنامه بايدTMOD را بگيرد و بنابراين ارزش دوباره پرشدن اتوماتيك بايد در بايت بالاي تايمر نوشته شود.درآينده همچنين شمارش آغازين شبيهارزش دوباره پر كردن اصلي خواهد بود.اما اين زياد سخت نيست بعد از اينكه براي سرريزهاي اوليه زيادي اجرا شد.
به هر حال اين خيلي ذاتي است كه بايت بالاي تايمر با ارزش اتوماتيك پرشدن پر شود وگرنه تايمر پس از هر سرريز با00H شروع خواهد كرد.

حالت2 به صورت خيلي عادي براي سرعت علامت در ثانيه استفاده ميشود.براي حالت پورت موازي همه منظوره مي باشد يا
جائي كه به فركانس ثابت برابر نياز دارد.فركانس يا سرعت علامت در ثانيه مي تواند استفاده از ارزش دوباره پرشدن در ثبات
THx را كنترل كند.ماكزيمم تاخير كه در حالت 2 توليد ميكند با اتومات با اتومات بار كردن دوباره باارزش00H برابر خواهد بود.بدين ترتيب در ساعت 12 مگاهرتز ماكزيمم تاخيري كه ايجاد خواهد كرد 256 ميكرو ثانيه است.اگر بتوان يك دستوربر روي قلاب هر يك از پين هاي پورت بنويسيم اگر آنرا به اسيلوسكوپوصل كنيم مي توانيم يك ميدان برابر بر روي آن پين ببينيم. رسيدگي به اين برنامه يك ميدان يكنواخت2 كيلو هرتز بر روي پين P1.0 توليد مي كند. اين در برنامه مثال8-6 نشان داده شده است.بصورت مشابه شمارش با 0.25 ميلي ثانيه مجدد پر خواهدشد.در12 مگاهرتزاين با06H برابر خواهد بود.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید