بخشی از مقاله

   در سال 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 بيتي اند.

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