در سال ۱۹۸۱ شركت اينتل ميكروكنترلر ۸ بيتي خود را با نام ۸۰۵۱ معرفي كرد كه داراي ۱۲۸ بايت RAM، ۴ كيلو بايت ROM، دو تايمر، يك درگاه سريال و ۴ درگاه كه تماماً بر روي يك تراشه بود. ۸۰۵۱ يك ريزپردازنده ۸ بيتي است به اين معني كه CPU آن در هر بار مي تواند فقط بر روي ۸ بيت داده كار كند و داده هاي بزرگتر بايد به قسمتهاي ۸ بيتي شكسته شود.
   پس از اينكه اينتل اجازة ساخت و فروش ۸۰۵۱ را با شرط حفظ سازگاري كد با ۸۰۵۱ به سازنده گان ديگر داد، ۸۰۵۱ از محبوبيت زيادي برخوردار شد.
   اين نكتة بسيار مهمي است كه با وجود ويژگيهاي مختلف در سرعت و مقدار ROM به كار رفته در انواع ۸۰۵۱، سازگاري كامل با ۸۰۵۱ اصلي و دستورالعملهاي مربوطه هنوز هم وجود دارد. يعني اگر برنامه اي براي يكي از ۸۰۵۱ها نوشته شود مي توان آن را بر روي ۸۰۵۱هاي ديگر اجرا كرد. صرفنظر از سازندة ميكروكنترلر ۸۰۵۱٫

 ويژگيهاي ۸۰۵۱    
        ROM                      ۱            Serial Port                            ۴kbytes
RAM                  ۶            Interrupt Sources             ۲۸bytes
Timer                          ۲
I/O Pins                      ۳۲

   ميكرو كنترلر۸۰۵۱  عضو اصلي خانوادة ۸۰۵۱  است كه شركت ايتل از آن به عنوان MCS-51  ياد مي كند.
   اعضاي ديگر خانوادة ۸۰۵۱، ۸۰۵۲، ۸۰۳۱، ۸۷۵۱ و… مي باشد.

۸۰۵۱  

 درون ۸۰۵۱

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

D7    D6    D5    D4    D3    D2    D1    D0

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

پايه هاي ۸۰۵۱

   در شكل زير ۳۲ پايه از مجموع ۴۰ پايه در ۸۰۵۱ به چهار درگاه P0، P1، P2، P3 اختصاص دارند. (شكل صفحة                )
   دو پايه PSEN و ALE به طور عمده توسط سيستمهاي مبتني بر ۸۰۳۱ به كار گرفته   مي شوند.

XTAL1 و XTAL2
   با وجود اينكه ۸۰۵۲ تراشه اي است كه داراي نوسانساز اما نيازمند يك ساعت خارجي براي راه اندازي آن است كه بيشتر از يك كريستال نوسانساز از نوع كوارتز به وروديهاي XTAL1 (پايه ۱۹) و XTAL2 (پايه ۱۸) متصل مي شود.

EA
   اعضاي خانوادة ۸۰۵۱ همگي به همراه يك ROM بر روي تراشه براي ذخيره برنامه ها ارائه مي شوند در چنين مواردي بايد پايه EA (پايه اكو) به VCC متصل شود در غير اين صورت پايه به GND وصل مي شود.

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

نقش دوگانه درگاه ۰
   همانطوري كه در شكل مشاهده مي شود درگاه ۰ براي AD0 تا AD7 نيز طراحي شده است كه امكان استفاده از داده و آدرس را به درگاه مي دهد. هنگامي كه ۸۰۵۱ يا ۸۰۳۱ به يك حافظة‌خارجي متصل است درگاه تدارك بيننده آدرس و داده براي آن است. ALE نشان دهنده اين است كه آيا P0 داراي آدرس است يا داده اگر ALE صفر باشد داده و اگر ALE=1 باشد آدرس تدارك ديده مي شود.
   درگاه ۲ براي A8 تا A15 نيز طراحي شده است. ۸۰۳۱ قابليت دسترسي به ۶۴K بايت حافظة را دارد، از اين رو يك مسير ۱۶ بيتي آدرس دهي خواهد داشت. ۸ بيت به وسيلة درگاه ۰ و ۸ بيت ديگري به وسيلة درگاه ۰

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

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

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

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

DB
 
   DB (DeFile Byte) براي تعريف داده هاي ۸ بيتي استفاده مي شود كه در برنامه به اسم مشخص است.
                ORG  ۱۰۰۰H
MY DATA : DB        ۱,۵,۷
                      MOV     A, My Data
                      MOV     A, My Data
در DB اعداد مي توانند به فرمهاي هگزا، اسمال باينري يا اسكي به كار رود.

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

END
   پايان برنامه را نشان مي دهد.

برنامه هاي تأخير
   براي اجراي يك دستورالعمل توسط CPU تعداد مشخص چرخه ساعت (Clock Cycles) مورد نياز است كه در خانوادة ۸۰۵۱ با عنوان چرخه هاي ماشين نام برده مي شود.                                       در ۸۰۵۱ طول چرخة ماشين بستگي به فركانس توليد شده توسط كريستال نوسانسازي دارد كه بر روي مدار تراشه قرار دارد. و منبع ساعت براي ۸۰۵۱ مي باشد.
   اغلب كريستال نوسانساز ۱۱٫۰۵۹۲ MHZ است كه يك چرخة ماشين ۱/۱۲ فركانس كريستال را دريافت و سپس آنرا معكوس مي كنند.
مثال: اگر فركانس كريستال ۱۱٫۰۵۹۲ MHZ باشد چرخة ماشين ۱٫۰۸۵ MS مي باشد زيرا ۱/۹۲۱٫۶ KHZ                      ۱۱٫۰۵۹۲/۱۲=۹۲۱٫۶ KHZ                                         
   هر دستور براي تعيين ميزان تأخير تعداد چرخه هاي ماشين آن دستور را در ۱٫۰۸۵ ضرب مي كنند.

مثلاً دستور “MOV   R5,#3” و يك چرخة ماشين دارد كه زمان اجراي آن \X\ .085 MS  مي باشد.
يا “MVL AB” ۱٫۰۸۵ MS=4.34 MS ×۴
برنامه ريزي تايمر
   ۸۰۵۱ دو تايمر/ شمارنده دارد، تايمر براي توليد تأخير زماني و شمارنده براي شمارش حوادث اتفاق افتاده كاربرد دارد. تايمرها به وسيلة فليپ فلاپ ساخته مي شوند ۸۰۵۱ دو تايمر دارد تايمر ۰ و تايمر ۱ كه هر دو ۱۶ بيتي اند.