بخشی از مقاله

طراحی مینیمم سیستم با میکرو کنترلر 80196

در سال 1981 شركت اينتل ميكروكنترلر 8 بيتي خود را با نام 80196 معرفي كرد كه داراي 128 بايت RAM، 4 كيلو بايت ROM، دو تايمر، يك درگاه سريال و 4 درگاه كه تماماً بر روي يك تراشه بود. 80196 يك ريزپردازنده 8 بيتي است به اين معني كه CPU آن در هر بار مي تواند فقط بر روي 8 بيت داده كار كند و داده هاي بزرگتر بايد به قسمتهاي 8 بيتي شكسته شود.


پس از اينكه اينتل اجازة ساخت و فروش 80196 را با شرط حفظ سازگاري كد با 80196 به سازنده گان ديگر داد، 80196 از محبوبيت زيادي برخوردار شد.
اين نكتة بسيار مهمي است كه با وجود ويژگيهاي مختلف در سرعت و مقدار ROM به كار رفته در انواع 80196، سازگاري كامل با 80196 اصلي و دستورالعملهاي مربوطه هنوز هم وجود دارد. يعني اگر برنامه اي براي يكي از 80196ها نوشته شود مي توان آن را بر روي 80196هاي ديگر اجرا كرد. صرفنظر از سازندة ميكروكنترلر 80196.
ويژگيهاي 80196
ROM 1 Serial Port 4kbytes
RAM 6 Interrupt Sources 28bytes
Timer 2
I/O Pins 32

ميكرو كنترلر80196 عضو اصلي خانوادة 80196 است كه شركت ايتل از آن به عنوان MCS-51 ياد مي كند.
اعضاي ديگر خانوادة 80196، 8052، 8031، 8751 و... مي باشد.
80196
درون 80196

در يكCPU از ثباتها ، Register به عنوان مكاني براي ذخيره سازي موقت اطلاعات مورد استفاده قرار مي گيرد. اكثر ثباتهاي 80196 ، 8 بيتي هستند.
در ثباتهاي 80196 فقط داده 8 بيتي مي تواند قرار داد. در دياگرام زير يك ثبات با 8 بيت خود به ترتيب از با ارزشترين D7 تا كم ارزشترين D0 نشان داده شده است.

D7 D6 D5 D4 D3 D2 D1 D0

تعدادي از ثباتها كه بيشترين كاربرد را دارند عبارتند از:
A (انباشتگر) B ، R0، R1، R2، R3، R4، R5، R6، R7، DPTR (شانگر داده) و PC (Program counter شمارندة برنامه) كه همگي 8 بيتي اند به جزء DPTR و PC .
ثبات PC يا شمارندة برنامه به آدرس دستورالعمل بعدي كه اجرا خواهد شد اشاره مي كند. زماني كه CPU كه عملي را از برنامة موجود در ROM واكشي مي كند شمارندة برنامه افزايش يافته و به دستورالعمل بعدي اشاره مي كند. اين ثبات 16 بيتي است.
به هنگام روشن شدن ميكروكنترلر 80196 همگي از آدرس0000 شروع به كار مي كنند. به عبارت ديگر هنگام روشن شدن PC مقدار 0000 را در خود خواهد داشت.

پايه هاي 80196

در شكل زير 32 پايه از مجموع 40 پايه در 80196 به چهار درگاه P0، P1، P2، P3 اختصاص دارند. (شكل صفحة )
دو پايه PSEN و ALE به طور عمده توسط سيستمهاي مبتني بر 8031 به كار گرفته مي شوند.

XTAL1 و XTAL2
با وجود اينكه 8052 تراشه اي است كه داراي نوسانساز اما نيازمند يك ساعت خارجي براي راه اندازي آن است كه بيشتر از يك كريستال نوسانساز از نوع كوارتز به وروديهاي XTAL1 (پايه 19) و XTAL2 (پايه 18) متصل مي شود.
EA
اعضاي خانوادة 80196 همگي به همراه يك ROM بر روي تراشه براي ذخيره برنامه ها ارائه مي شوند در چنين مواردي بايد پايه EA (پايه اكو) به VCC متصل شود در غير اين صورت پايه به GND وصل مي شود.

پايه هاي درگاه I/O
چهار درگاه P0، P1، P2، P3 هر كدام با استفاده از 8 پايه درگاههاي 8 بيتي ايجاد مي كنند، كه تمتماً به صورت خروجي پيكربندي شده اند كه اگر به صورت ورودي بخواهد مورد استفاده قرار گيرد بايد به وسيلة مقاومتهاي متصل شده به درگاه و با برنامه، تمام بيتهاي درگاه را به 1 تبديل كرد.
MOV A,#0FFH
MOV P0.A
در اين مثال درگاه P0 به ورودي تبديل مي شود.

نقش دوگانه درگاه 0
همانطوري كه در شكل مشاهده مي شود درگاه 0 براي AD0 تا AD7 نيز طراحي شده است كه امكان استفاده از داده و آدرس را به درگاه مي دهد. هنگامي كه 80196 يا 8031 به يك حافظة‌خارجي متصل است درگاه تدارك بيننده آدرس و داده براي آن است. ALE نشان دهنده اين است كه آيا P0 داراي آدرس است يا داده اگر ALE صفر باشد داده و اگر ALE=1 باشد آدرس تدارك ديده مي شود.
درگاه 2 براي A8 تا A15 نيز طراحي شده است. 8031 قابليت دسترسي به 64K بايت حافظة را دارد، از اين رو يك مسير 16 بيتي آدرس دهي خواهد داشت. 8 بيت به وسيلة درگاه 0 و 8 بيت ديگري به وسيلة درگاه 0


دستورالعمل MOV
دستورالعمل MOV داده اي را از يك مكان به مكان ديگر كپي مي كند، كه فرمت آن به صورت زير است

MOV Deest,Source
اين دستور به CPU مي گويد كه عملوند آن را به عملوند مقصد كپي كند. براي مثال در دستورالعمل “MOV A,R3 “ محتويات ثبات R3 به A منتقل مي شود كه پس از اجرا ثبات A محتويات R3 را در بر خواهد داشت. دستور MOV هيچ تأثيري در عملوتد منبع ندارد. انتقال مقدار بزرگتر از ظرفيت ثبات خطا به دنبال خواهد داشت.
نكته: علامت “#” پوند نشانگر مقدار است كه هر كدام از ثباتهاي A و B و R0-R7 مي توانند با مقدار كپي شود. كه اگر علامت “#” قرار داده نشود. مفهوم آن بار شدن از يك مكان حافظه است. براي مثال دستور “MOV A و 17H” به معني انتقال محتويات مكان حافظه 17H به ثبات A است، كه دمي تواند هر مقداري را در خود داشته باشد.

دستورالعمل ADD
”ADD A,Source”
افزودن عملوند انباشتگر (A) است.
در دستور محاسباتي ثبات A حتماُ بايد مقصد تمام عمليات محاسباتي باشد.

ORG
نشان دهندة اين است كه برنامه اي كه مي خواهد شروع شود از چه خانه اي آغاز شود.


DB

DB (DeFile Byte) براي تعريف داده هاي 8 بيتي استفاده مي شود كه در برنامه به اسم مشخص است.
ORG 1000H
MY DATA : DB 1,5,7
MOV A, My Data
MOV A, My Data
در DB اعداد مي توانند به فرمهاي هگزا، اسمال باينري يا اسكي به كار رود.


EQU (Eguate)
اين دستور دهنده براي تعريف يك مقدار ثابت استفاده مي شود به نحوي كه مكاني از حافظه اشغال نمي شود و وابسته به يك مقدار با چسب است.
Count EQV 25
MSV R3,#Count
پس از اجرا ثبات R3 مقدار25 را خواهد داشت مزيت EQV اين است كه اگر مقدار ثابتي در جاهاي مختلفي تكرار شده باشد و برنامه نويس بخواهد تمام آنها را تغيير دهد با استفاده از EQV اين كار انجام مي گيرد.

END
پايان برنامه را نشان مي دهد.
برنامه هاي تأخير
براي اجراي يك دستورالعمل توسط CPU تعداد مشخص چرخه ساعت (Clock Cycles) مورد نياز است كه در خانوادة 80196 با عنوان چرخه هاي ماشين نام برده مي شود. در 80196 طول چرخة ماشين بستگي به فركانس توليد شده توسط كريستال نوسانسازي دارد كه بر روي مدار تراشه قرار دارد. و منبع ساعت براي 80196 مي باشد.
اغلب كريستال نوسانساز 11.0592 MHZ است كه يك چرخة ماشين 1/12 فركانس كريستال را دريافت و سپس آنرا معكوس مي كنند.
مثال: اگر فركانس كريستال 11.0592 MHZ باشد چرخة ماشين 1.085 MS مي باشد زيرا 1/921.6 KHZ 11.0592/12=921.6 KHZ
هر دستور براي تعيين ميزان تأخير تعداد چرخه هاي ماشين آن دستور را در 1.085 ضرب مي كنند.
مثلاً دستور “MOV R5,#3” و يك چرخة ماشين دارد كه زمان اجراي آن \X\ .085 MS مي باشد.
يا “MVL AB” 1.085 MS=4.34 MS ×4
برنامه ريزي تايمر
80196 دو تايمر/ شمارنده دارد، تايمر براي توليد تأخير زماني و شمارنده براي شمارش حوادث اتفاق افتاده كاربرد دارد. تايمرها به وسيلة فليپ فلاپ ساخته مي شوند 80196 دو تايمر دارد تايمر 0 و تايمر 1 كه هر دو 16 بيتي اند.
ثبات تايمر ها به وسيلة دو بايت كم ارزش و پردازش قابل دسترسي است. كم ارزش را براي تايمر 0، TL0 و براي تايمر 1، TL1 و پردازش را براي تايمر 0، TH0 و براي تايمر 1،TH1 مي نامند.
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

TH TL


ثبات TM0D (حالت تايمر)
هر دو تايمر براي تنظيم حالات كاري از ثبات TM0D استفاده مي كنند. كه 8 بيت دارد، كه 4 بيت كم ارزش آن براي تايمر 0 است.
GATE 4T M1 M0 GATE CLT M1 M0

تايمر0 تايمر 1
حالت عمل حالت M0 M1
حالت تايمر 13 بيتي. 8 بيت بالاي تايمر (THX) 0 0 0 با 5 بيت پائيني از 8 بيت پائين تايمر (TLX)

حالت تايمر 16 بيتي. تايمر 16 بيتي كه THX 0 1 1
و TLX به هم پيوسته اند.

بار شدن خودكار 8 بيتي1 0 2

حالت تايمر دو قسمتي1 1 3

حالت 1 و 0
تايمر 16 بيتي است از 0000 تا FFFF
بعد از مقدار دهي TH و TL تايمر با دستور “SETB TR0” يا “SETB TR1” شروع مي شود.
بعد از اينكه تايمر شروع به شمارش كرده و افزايش مي كند تا به مقدار FFFF# برسد. هنگامي كه از FFFF# به 0000 بر مي گردد بيت پرچم (TF) يك مي شود. كه با دستور “CLR TR0” يا “CLR TR1” تايمر متوقف مي شود سپس بايد ثباتهاي TH و TL جهت تكرار عمليات دوباره با مقادير اصلي و TF با 0 مقدار دهي شود.
نتيجه پرچم TF براي اينكه يك مي شود يا نه را مي توان با دستور “JNB TFX, Target” بررسي كرد.
پيدا كردن مقادير TH و TL
فرض XTAL=11.0592 باشد. تأخير زماني را بر 1.085 MS تقسيم مي شود.
65536-N مي شود كه N مقدار دهدهي از تقسيم بالايي است.
حاصل را به مبناي 16 مي بريم YYXX كه TH=YY و TL=XX.
مثال: اگر XTAL=11.0592 MHZ باشد براي تأخير زماني 5 MS مقادير عبارتند از:
5/1.085 ms/MS =4608 پس 65536-4608=EE00H پس TH=EE ، TL=00
حالت0 دقيقاً مشابه حالت1 است با اين تفاوت كه تايمر13 بيتي است كه مي تواند مقادير 0000 تا1FFFH را درTH وTL نگه دارد.
حالت 2
حالت 2، 8 بيتي است پس مقادير بين 00 تا FFH را در TH ذخيره مي كند. بعد از اينكه TH بار دهي شد،80196 يك كپي از آن را درون TL قرار مي دهد. بعد از شروع تايمر TL افزايش پيدا مي كند تا به FFH برسد و از آنجا به 00 برگردد پرچم TF يك مي شود. TL به طور خودكار با مقدار اصلي اوليه كه توسط ثبات TH نگهداري مي شد، مقدار دهي مي شود. در ثبات TMOD دو پايه GATE و C/T نيز مي باشد. C/T اگر صفر باشد حالت تايمر و اگر يك باشد حالت شمارنده است. هنگامي كه پايه GATE يك است تايمر/ شمارنده وقتي فعال مي شود كه INTxيك بوده و پايه كنترل TRx تنظيم شده باشد.

ثبات TCON
TR0 و TR قسمتي از ثبات 8 بيتي TCON(Timer Control) است. كه در زير مشاهده مي شود.


TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0


چهار بيت پرارزش آن براي ذخيره بيتهاي TF و TR از دو تايمر 0 و تايمر 1 مي باشند و چهار بيت كم ارزش آن براي كنترل وقفه مي باشند.

نرم افزار مربوطه

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