بخشی از مقاله
در سال 1981 شركت اينتل ميكروكنترلر 8 بيتي خود را با نام 8051 معرفي كرد كه داراي 128 بايت RAM، 4 كيلو بايت ROM، دو تايمر، يك درگاه سريال و 4 درگاه كه تماماً بر روي يك تراشه بود. 8051 يك ريزپردازنده 8 بيتي است به اين معني كه CPU آن در هر بار مي تواند فقط بر روي 8 بيت داده كار كند و داده هاي بزرگتر بايد به قسمتهاي 8 بيتي شكسته شود.
پس از اينكه اينتل اجازة ساخت و فروش 8051 را با شرط حفظ سازگاري كد با 8051 به سازنده گان ديگر داد، 8051 از محبوبيت زيادي برخوردار شد.
اين نكتة بسيار مهمي است كه با وجود ويژگيهاي مختلف در سرعت و مقدار ROM به كار رفته در انواع 8051، سازگاري كامل با 8051 اصلي و دستورالعملهاي مربوطه هنوز هم وجود دارد. يعني اگر برنامه اي براي يكي از 8051ها نوشته شود مي توان آن را بر روي 8051هاي ديگر اجرا كرد. صرفنظر از سازندة ميكروكنترلر 8051.
ويژگيهاي 8051
ROM 1 Serial Port 4kbytes
RAM 6 Interrupt Sources 28bytes
Timer 2
I/O Pins 32
ميكرو كنترلر8051 عضو اصلي خانوادة 8051 است كه شركت ايتل از آن به عنوان MCS-51 ياد مي كند.
اعضاي ديگر خانوادة 8051، 8052، 8031، 8751 و... مي باشد.
8051
درون 8051
در يكCPU از ثباتها ، Register به عنوان مكاني براي ذخيره سازي موقت اطلاعات مورد استفاده قرار مي گيرد. اكثر ثباتهاي 8051 ، 8 بيتي هستند.
در ثباتهاي 8051 فقط داده 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 بيتي است.
به هنگام روشن شدن ميكروكنترلر 8051 همگي از آدرس0000 شروع به كار مي كنند. به عبارت ديگر هنگام روشن شدن PC مقدار 0000 را در خود خواهد داشت.
پايه هاي 8051
در شكل زير 32 پايه از مجموع 40 پايه در 8051 به چهار درگاه P0، P1، P2، P3 اختصاص دارند. (شكل صفحة )
دو پايه PSEN و ALE به طور عمده توسط سيستمهاي مبتني بر 8031 به كار گرفته مي شوند.
XTAL1 و XTAL2
با وجود اينكه 8052 تراشه اي است كه داراي نوسانساز اما نيازمند يك ساعت خارجي براي راه اندازي آن است كه بيشتر از يك كريستال نوسانساز از نوع كوارتز به وروديهاي XTAL1 (پايه 19) و XTAL2 (پايه 18) متصل مي شود.
EA
اعضاي خانوادة 8051 همگي به همراه يك ROM بر روي تراشه براي ذخيره برنامه ها ارائه مي شوند در چنين مواردي بايد پايه EA (پايه اكو) به VCC متصل شود در غير اين صورت پايه به GND وصل مي شود.
پايه هاي درگاه I/O
چهار درگاه P0، P1، P2، P3 هر كدام با استفاده از 8 پايه درگاههاي 8 بيتي ايجاد مي كنند، كه تمتماً به صورت خروجي پيكربندي شده اند كه اگر به صورت ورودي بخواهد مورد استفاده قرار گيرد بايد به وسيلة مقاومتهاي متصل شده به درگاه و با برنامه، تمام بيتهاي درگاه را به 1 تبديل كرد.
MOV A,#0FFH
MOV P0.A
در اين مثال درگاه P0 به ورودي تبديل مي شود.
نقش دوگانه درگاه 0
همانطوري كه در شكل مشاهده مي شود درگاه 0 براي AD0 تا AD7 نيز طراحي شده است كه امكان استفاده از داده و آدرس را به درگاه مي دهد. هنگامي كه 8051 يا 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) مورد نياز است كه در خانوادة 8051 با عنوان چرخه هاي ماشين نام برده مي شود. در 8051 طول چرخة ماشين بستگي به فركانس توليد شده توسط كريستال نوسانسازي دارد كه بر روي مدار تراشه قرار دارد. و منبع ساعت براي 8051 مي باشد.
اغلب كريستال نوسانساز 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
برنامه ريزي تايمر
8051 دو تايمر/ شمارنده دارد، تايمر براي توليد تأخير زماني و شمارنده براي شمارش حوادث اتفاق افتاده كاربرد دارد. تايمرها به وسيلة فليپ فلاپ ساخته مي شوند 8051 دو تايمر دارد تايمر 0 و تايمر 1 كه هر دو 16 بيتي اند.