مقدمه: گرچه کامپیوترهای تنها چند دههای است که با ما همراهند با این حال تأثیر عمیق آنها بر زندگی ما به تأثیر تلفن، اتومبیل و تلویزیون رقابت میکند.
همگی ما حضور آنها را احساس میکنیم چه برنامهنویسان کامپیوتر و چه دریافت کنندگان صورت حسابهای ماهیانه که توسط سیستمهای کامپیوتری بزرگ چاپ شده و توسط پست تحویل داده میشود.
تصور ما از کامپیوتر معمولاً «دادهپردازی» است که محاسبات عددی را بطور خستگی ناپذیری انجام میدهد.
ما با انواع گوناگونی از کامپیوترها برخورد میکنیم که وظایفشان را زیرکانه و بطرزی آرام، کارا و حتی فروتنانه انجام میدهند و حتی حضور انها اغلب احساس نمیشود.
ما کامپیوترها را به عنوان جزء مرکزی بسیاری از فرآوردههای صنعتی و مصرفی از جمله در سوپر مارکتا داخل صندوقهای پول و ترازوها، در خانهها، در اجاقها، ماشینهای لباسشوئی، ساعتهای اداری دارای سیستم جز دهنده و ترموستاتها، در وسایل سرگرمی همچون اسباب بازیها، VCRها، تجهیزات استریو و وسایل صوتی؛ در محل کار در ماشینهای تایپ و فتوکپی و در تجهیزات صنعتی مثل متههای فشاری و دستگاههای حروفچینی نوری مییابیم.
د این مجموعهها کامپیوترها وظیفه کنترل را در ارتباط با دنیای واقعی برای روشن و خاموش کردن وسایل و نظارت بر وضعیت آنها انجام میدهند.
میکروکنترلر ها (بر خلاف میکرو کامپیوترها و ریزپردازندهها) اغلب در چنین کاربردهایی یافت میشوند.
با وجود اینکه بیش از بیست سال از تولد ریزپردازنده نمیگذرد تصور وسایل الکترونیکی و اسباب بازیهای امروزی بدون آن کار مشکل است.
در سال 1971 شرکت اینتل 8080 رابه عنوان اولین ریزپردازنده موفق عرضه کرد.
مدت کوتاهی پس از آن موتورلا، RCA و سپس Mos Technology و Zilog انواع مشابهی را به ترتیب به نامهای 6800، 1801، 6502، 80Z عرضه کردند گرچه این مودارهای مجتمع به خودی خود فایده چندانی نداشتند اما به عنوان بخشی از یک کامپیوتر تک بورد (SBC) به جزء مرکزی فرآوردههای مفیدی برای آموزش طراحی با ریزپردازندهها تبدیل شدند.
از این SBCها که به سرعت به آزمایشگاههای طراحی در کالجها، دانشگاهها و شرکتیهای الکترونیک راه پیدا کردند میتوان برای نمونه از D2 موتورولا KIM-1 ساخت Mos Technology و 85-SDK متعلق به شرکت اینتل نام برد.
میکروکنترلرها قطعهای شبیه به ریزپردازنده است در سال 1976 اینتل 8748 را به عنوان اولین قطعه خانواده میکروکنترلرهای TM 48-MCS معرفی کرد.
8748 با 17000ترانزیستور در یک مدار مجتمع شامل یک CPU، 1کیلو بایتی EPROM، 64بایت RAM، 27 پایه I/O و یک تایمر 8بیتی بود.
این IC و دیگر اعضای TM 48-MCS که پس از آن آمدند خیلی زود به استاندارد صنعتی در کاربردهای کنترل گرا تبدیل شدند.
جایگزین کردن اجزاء الکترو مکانیکی در فرآوردههایی مثل ماشینهای لباسشویی و چراغهای راهنمایی از ابتدای کار یک کاربرد مورد توجه برای این میکرو کنترلرها بودند و همین طور باقی ماندند.
دیگر فرآوردههایی که در آنها میتوان میکروکنترلر را یافت عبارتند از اتومبیلها تجهیزات صنعتی، وسیال سرگرمی و ابزارهای جانبی کامپیوتر.
توان ابعاد و پیچیدگی میکروکنترلرها با اعلام ساخت 8051، یعنی اولین عنصر خانواده میکرو کنترلرای TM51-MCS در سال 1980 توسط اینتل پیشرفت چشمگیری کرد.
در مقایسه با 8048 این قطعه شامل بیش از 60000ترانزیستور، 4k بایت Rom، 128 بایت RAM، 32 خط I/O یک درگاه سریال و دو تایمر 16 بیتی است.
که از لحاظ مدارات داخلی برای یک IC بسیار قابل ملاحظه است.
امروزه انواع گوناگونی از این IC وجود دارد که بصورت مجازی این مشخصات را دو برابر کردهاند.
شرکت زیمنس که دومین تولید کننده قطعات است (TM 51-MCS)، 80515SAB وقفه و یکی مبدل آنالوگ به دیجیتال با 8 کانال ورودی عرضه کرده است.
خانواده 8051 به عنوان یکی از جامع ترین و قدرتمندترین میکروکنترلرهای 8 بیتی شناخته شده و جایگاهش را به عنوان یک میکروکنترلر مهم برای سالهای آینده یافته است.
این بخش با بحثی در مورد نقش و اهمیت میکروکنترلرها در زندگی روزمره و نیاز به میکروکنترلرها و مقایسه آنها با میکرو پروسسورهای همه منظورهای چون پنتیوم و دیگر میکرو پروسسورها آغاز شده است.
میکروکنترلرها در برابر میکرو پروسسورهای همه منظوره تفاوت بین یک میکرو پروسسور و یک میکروکنترلر چیست؟
منظور از یک میکروپروسسور ریز پردازنده میکروی پروسسورهایی از خانواده x86 اینتل مثل 8036,80286,8086 و یا 68040,68030,68020خانوادههائی از این قبیل است این میکروپروسسورها فاقد RAM و پورتهای ROM در درون خود تراشه هستند.
به این دلیل به آنها «میکروپروسسورهای همه منظوره» میگویند.
طراح سیستمی که از میکرو پروسسور همه منظورهای چون پنتیوم، 68040 استفاده میکند، باید در خارج از آن RAm ROM,پورتهای I/O و تایمرها را اضافه نماید تا سیستمی قابل کار ساخت شود.
اگرچه افزایش RAM Rom, پورتهای I/O موجب حجیم شدن و گرانتر شدن سیستمها میگردد، ولی به قابلیت انعطاف آنها افزوده میشود از جمله اینکه طراح میتواند روی مقدار ROM, ROM پورتهای I/O بر حسب نوع کاربرد تصمیمگیری و اعمال نظر نماید.
این توانمندی در میکروکنترلرها امکان پذیر نیست.
یک میکروکنترلر دارای یک CPU به همراه مقدار ثابتی از ROM,RAM پورتهای I/O و تامیر در درون خود میباشد.
به بیان دیگر، پروسسور، ROM,RAM، پورتهای I/O و تایمر همگی در یک تراشه جای داده شدهاند، بنابراین طراح نمیتواند یک حافظه، I/O یا تایمری را بدون گسترش لازم آن از بیرون اضافه کند.
مقدار ثابت RAM,ROM و مقدار پورتهای تثبیت شده در میکروکنترلرها، آنها را برای کاربردهائی که قیمت و محفظه در آنها بحرانی است، ایدهآل کرده است.
مقایسه سیستم میکرو پروسسور و میکرو کنترلر: الف) میکرو پروسسور میکروکنترلر: ب) میکروکنترلر گذرگاه آدرس میکرو کنترل ها و سیستم های تک منظوره: در مقالاتی که میکرو پروسسور ها مطرح میشوند، اغلب عبارت سیستم تک منظوره را ملاحظه میکنیم.
میکرو پروسسورها و میکروکنترلرها بطور گستردهای در تولید سیستمهای تک منظوره بکار میروند.
یک محصول تک منظوره از یک میکروپروسسور (یا میکرو کنترلر) برای انجام فقط و فقط یک کار استفاده میکند.
یک چاپگر نمونهای از یک سیستم تک منظوره است.
زیرا پروسسور داخل آن فقط یک کار را انجام میدهد و آن این است که داده را بدست آورده و آن را چاپ کند.
این کار را با یک PC مبتنی بر پنتیوم (مانند هر PC سازگار با x86 IBM) مقایسه نمایید.
PC میتواند برای هر کاربردی مانند پردازشگرهای کلمات، مراکز چاپ، پایانه، لیستهای بانک، بازیهای ویدئویی، سرویسدهنده شبکه و پایانه اینترنت مورد استفاده قرار گیرد، برای انواع کاربردها میتوان به راحتی برنامه را در PC بار کرده و آن را اجرا کرد.
البته دلیل قابلیت اجرای کارهای متنوع در PC،این است که دارای حافظه RAM و سیستم عاملی است که نرم افزار کاربردی را در RAM بار کرده و اجازه اجرای آن را به PC میدهد.
در یک سیستم تک منظوره، تنها یک نرم افزار کاربردی وجود دارد و معمولاً در ROM سوزانده میشود.
یکPC x86 ممکن است به وسایل تک منظورهای مانند صفحه کلید، چاپگر، مودم، کنترلگر دیسک، کارت صدا، راه انداز CD-Rom، ماوس و غیره متصل باشد.
هر یک از این وسایل جانبی در داخل خود دارای یک میکروکنترلر برای انجام کار خاص میباشند.
مثلاً در داخل هر ماوس یک میکرو کنترلر وجود دارد که وظیفهاش یافتن مکان ماوس و ارسال آنها به PC است.
جدول زیر بعضی از محصولات تک منظوره را نشان میدهد.
منزل خودکار لوازم خانگی کامپیوتر ارتباطات درونی کنترل موتور تلفن کیسه هوا دزدگیر وسایل اندازهگیری منشی تلفن سیستم حفاظتی ماشینهای خیاطی کنترل انتقال ورود بدون کلید اداری فاکس مایکروویو دستگاه فتوکپی چاپگر لیزری چاپگر رنگی احضار از بلندگو انتخاب یک میکروکنترلر چهار نوع میکروکنترلر 8بیت مهم وجود دارد که عبارتند زا: 6811 ازموتورولا 8051- ازاینتل Z8- از زایکوگ PIC 16x از شرکت میکروچیپ تکنولوژی هر یک از میکرو کنترلرهای فوق مجموعه دستورات و مجموعه ثباتهای خاص خود را دارد، بنابراین با یکدیگر سازگار نیستند.
برنامهای که بر روی یک ازآنها نوشته شود، بر روی دیگری قابل اجرا نیست.
میکروکنترلرهای 16 و 32 بیتی هم وجود دارند که به وسیله سازندگان مختلف ساخته شدهاند.
با این تنوع در میکرو کنترلرها، طراح باید کدامیک را انتخاب کند؟
سه روش برای این انتخاب در زیر تشریح شده است: (1) برآورده کردن نیازهای محاسبات کار بطور موثر و مقرون به صرفه.
(2) در دسترس داشتن نرمافزارهای کمکی مانند کامپایلرها، اسمبلرها و عیب یابها (3) منابع گسترده و قابل اعتماد برای میکروکنترلرها اکنون هر یک از موارد فوق را به تفصیل بررسی میکنیم: روش انتخاب میکروکنترلر: 1-اولین و قدیمیترین روش انتخاب میکروکنترلر این است که نیازهای سیستم دقیقاً مشخص و هزینه آن هم مقرون به صرفه باشد.
دیگر موارد قابل بررسی عبارتند از: الف) سرعت.
بالاترین سرعتی که میکروکنترلر پشتیبانی میکند چیست؟
ب) بستهبندی.
آیا بستهبندی از نوع DIP چهل پایه است، از نوع AFP (بسته همسطح) تهیه شده است، و یا در دیگر انواع بستهبندی ارائه شده است؟
بستهبندی به دلیل فضای اشغالی مونتاژ و ساخت نمونه نهایی اهمیت خاصی دارد.
پ) توان مصرفی.
این فاکتور خصوصاً برای محصولاتی که با باطری کار میکنند، اهمیت دارد.
ت) مقدار RAM و ROM در تراشه ث) تعداد پایههای I/O و تایمر در تراشه ج) به چه سادگی به ویرایش بعدی از نظر کارایی و توان مصرفی تبدیل میشود.
چ) قیمت هر عدد.
این فاکتور از نظر قیمت تمام شده میکروکنترلری که در تولید بکار رفته، اهمیت دارد.
مثلاً وقتی که 100000 واحد خریداری گردد، قیمت هر یک میتواند حدود 50 سنت باشد.
(2) روش دوم در انتخاب یک میکروکنترلر این است که به چه سادگی میتوان حول آن امکانات ایجاد کرد.
بررسیهای کلیدی نشان میدهد که در دسترس بودن اسمبلر، عیب یاب، کامپایلر C امولاتور (شبیه ساز) پشتیبانی فنی و متخصصین درون خانهای و بیرونی از نکات قابل توجهند در بسیاری از حالات، تولید کنندگان دست دوم، (تولید کنندگانی که سازنده اولیه نیستند) میتوانند اگر بهتر از سازنده نباشند، در حد آنها سرویس ارائه کنند.
(3) سومین روش در انتخاب میکروکنترلر، در دسترس بودن آن بتعداد لازم در حال حاضر و آینده است.
برای بعضی از طراحان، این یکی حتی مهمتر از موارد 1 و 2 است.
در حال حاضر، در میان پیشروان میکروکنترلرها،خانواده 8051 بیشترین تعداد تولید کننده ثانویه را دارد.
در اینجام منظور از تولیدکننده ثانویه میکروکنترلر، تولید کنندهای به جز تولید کننده اصلی است.
در مورد 8051، که ابتدا به وسیله Intel ساخته شد، چندین کمپانی دیگر در حال حاضر مشغول تولید آن بوده و یا هستند.
از آن جمله: Matra, Simens, AMD, Atmel, Philips/Signetics باید متذکر شد که Motorola و Microchip Technology, Zilog تعداد زیادی شعبات را برای این منظور انتخاب کردهاند تا تولیدات خود را به طور گسترده و به موقع در دسترس قرار دهند زیرا تولیدشان با ثبات، در حد کمال و قابلیت دسترسی، از یک مرکز است.
در سالای اخیر آنها نیز شروع به فروش سلول کتابخانه AISC از میکروکنترلرها کردهاند.
جدول 1-2 بعضی از کمپانیهای تولید کننده اعضای خانواده 8051 Web Site Company www.intel.com/design/mcs51 Intel www.atmel.com Atmel WWW.Semiconductors.philips.com Philips/signetics www.Sci.siemens.com Siemens www.dalsemi.com Dallas Semiconductors تاریخچه مختصری از 8051: در سال 1981 شرکت اینتل، میکروکنترلری به نام 8051 را معرفی کرد.
این میکروکنترلر دارای 128 بایت RAM، 4K بایت ROM، دو تایمر، یک پورت سریال و چهار پورت موازی (هریک 8 بیت) بود که همه آنها در یک تراش تعبیه شده بودند.
زمانی به آن «سیستم در یک تراشه» میگفتند.
8051 یک پروسسور 8 بیت است، یعنی CPU هر بار میتواند فقط روی 8 بیت داده کار کند.
دادههای بزرگتر از 8 بیت باید به قطعات 8 بیت بشکنند وسپس بوسیله CPU پردازش شوند.
8051 کلاً دارای چهار پورت I/O با عرض 8 بیت است.
شکل (1) را ملاحظه کنید.
گرچه 8051 میتواند حداکثر 64K حافظه Rom در تراشه داشته باشد، بسیاری از سازندگان فقط 4K بایت را در تراشه کار گذاشتهاند.
پس از اینکه اینتل به شرط حفظ سازگاری با 8051، اجازه تولید را به دیگر سازندگان داد، تراشه مذکور بسیار مورد توجه قرار گرفت.
این توافق منجر به تولید انواع 8051 با سرعتهای متفاوت و مقداری ROM در تراشه به وسیله نیم دوجین سازنده شد.
آنچه اهمیت دارد این است که گرچه انواع مختلف 8051 با سرعت و مقدار Rom متفاوت در تراشه موجودند ولی همه آنها با 8051 اصلی از نظر دستورات سازگارند.
این بدان معنی است اگر شما برنامهای برای یکی بنویسید مستقل از سازنده روی دیگری هم قابل اجراست.
میکروکنترلر 8051 8051 عضو اصلی خانواده 8051 است.
intel آن را MCS-51 مینامد.
جدول 1-3 امکانات اصلی 8051 را نشان میدهد.
توجه: مقدار Rom در تراشه حجم برنامه را نشان میدهد.
انواع میکروکنترلر8051: گرچه 8051 رایجترین عضو خانواده 8051 است، ولی شما قادر نخواهید بود شماره قطعهای بصورت «8051» ملاحظه کنید.
دلیل این است که 8051 با حافظههای متفاوتی چون uv-EPROM، حافظه سریع، NV-RAM در دسترس است که هر یک شماره قطعه متفاوتی دارد.
نوع UV_EPROM خانواده 8051، تراشه 8751 است نوع Rom سریع بوسیله کمپانیهای متعدد از جمله Atmel راهی بازار شده است.
8051 نوع سریع از Atmel است که AT89C51 خوانده میشود.
نوع NV-RAM از 8051 بوسیله Dall as Semiconductor بنام DS500 شناخته میشود.
همچنین نوع OTP (یکبار قابل برنامهریزی) خانواده OTP بوسیله سازندگان متعددی تولید شده است.
اکنون هر یک از تراشههای فوق را بطور خلاصه توصیف و کاربرد آنها را بیان میکنیم.
میکروکنترلر 8751: تراشه 8751 فقط 4K بایت حافظه UV-EPROM درونی دارد.
هنگام استفاده از این تراشه در طراحی و پیاده سازی به دستگاه برنامهنویسی PROM و پاک کننده برای پاک کردن NV_EPROM در درون 8751 قبل از برنامهنویسی نیاز است.
با توجه به این نکته که Rom درون این تراشه از نوع NV-EPROM است، حدود 20 دقیقه برای پاک کردن آن وقت لازم است تا بتوان بعد از عمل برنامه نویسی را انجام داد.
این مسأله موجب شد تا بسیاری از تولیدکنندگان انواع سریع و NV-RAM نوع 8051 را که در زیر بحث شده، بکار ببرند.
همچنین انواع سریع 8751 نیز توسط تعدادی از تولیدکنندگان ساخته شده است.
AT89C51 از شرکت Atmel: این تراشه 8051 رایج دارای Rom سریع میباشد، در طراحیهای سریع این نوع حافظه ایدهآل است زیرا حافظه سریع میتواند طی چند ثانیه، در مقایسه 20 دقیقه لازم برای 8751، پاک شود.
به این دلیل AT89C51 بجای 8751 بکار برده شده است تا هنگام پارک کردن تراشه وقتی تلف نشود و بدینوسیله ساخت سیستم سریع گردد.
هنگام استفاده از AT89C51 برای ساخت سیستمهای مبتنی بر میکروکنترلر به سوزاننده یا برنامهریز Rom سریع نیاز داریم، با این وجود به پاک کننده Rom نیازی نیست.
توجه داشته باشید که در حافظه سریع باید تمام حافظه پاک شود تا بتوان مجدداً آن را برنامهنویسی کرد.
پاک کردن حافظه سریع با خود سوزاننده صورت میگیرد و به این دلیل پاک کننده جداگانهای لازم نمیباشد برای حذف سوزاننده Atmel,PRom روی نوعی از AT89C51 کار میکند که میتواند از طریق پورت سریال COM یک IBM PC برنامهریزی شود.
انواع 8051 از Atmel: توجه: «C» در شماره قطعه به معنی Cmos است.
محصولات مختلفی از نظر سرعت و بستهبندی تولید شده است.
جدول زیر را ببینید.
مثلاً به AT89C51-12PC توجه کنید که در آن «C» به معنی Cmos است.
بنابراین توان مصرفی کمی دارد.
8051 با سرعتهای مختلف از Atmel: «12» به معنی 12MHZ، «P» برای پلاستیکی بودن بسته DIP و «C» به معنی تجاری است که در مقابل «M» به معنی نظامی بکار میرود AT89C51-12PC برای پروژههای دانشجوئی مناسب است.
DS 5000 از Dallas Semiconductor نوع رایج دیگر از DS5000 تراشه از Dallas Semiconductor است.
Rom در DS5000 از نوع NV-RAM است.
قابلیت نوشتن/خواندن NV-RAM اجازه میدهد تا برنامه در Rom، در حالی که روی سیستم نصب است، باز شود.
این کار راحتی میتوان از طریق IBMPC انجام داد.
به این نوع برنامهنویسی، بارکردن برنامه درسیستم DS5000 میگویند که انجام آن از طریق پورت سریال PC آن را برای ساخت سیستمها در خانه ایدهآل میکند.
مزیت دیگر NV-RAM قابلیت تغییر یک بایت در هر بار است.
این قابلیت با NV-EPROMو حافظه سریع کار میکند و میتواند ازطریق پورت سریال COM یک IBM PC برنامهریزی شود.
انواع 8051 از Dallas: توجه کنید که ساعت زمان واقعی با تایمر تفاوت دارد.
ساعت زمان واقعی، زمان شبانهروز (ساعت، دقیقه، ثانیه) و تاریخ (سال، ماه و روز) را حتی اگز منبع تغذیه قطع شود تولید میکند.
انواع مختلفی از DS5000 از نظر سرعت و بستهبندی وجود دارد که در جدول زیر نشان داده شده است.
مثلاً DS5000-8-8 دارای NV-RAM 8k با سرعت 8MHZ است.
اغلب DS5000-8-12 یا DS5000T-8-12برای پروژههای دانشجوئی مناسب است.
انواع 8051 از Dallas: نوع OTP از 8051: انواع OTP از 8051 از منابع مختلف در دسترس قرار دارد.
انواع سریع و NV-RAM معمولاً برای توسعه تولید بکار برده میشود.
وقتی که محصولی طراحی شد و بغایت اصلاح گردید، نوع OTP از 8051 برای تولید انبوه بکار برده میشود زیرا از لحاظ قیمت بسیار ارزانتر است.
خانواده 8051 از Philips: محصول مهم دیگری از خانواده 8051 به وسیله شرکت philips ارائه شده است این شرکت از نظر نوع، بیشترین تولید میکروکنترلر را دارد.
بسیاری از محصولات آن شامل امکاناتی مثل تبدیل A-D، D-A و I/O توسعه یافته و یا هر دو نوع OTP و حافظه سریع است.
دیگر اعضای خانواده 8051: دو عضو دیگر از میکروکنترلرهای خانواده 8051 با نام 8052 و 8031 نیز وجود دارند.
میکروکنترلر8052: 8052 عضوی دیگر از خانواده 8051 است.
این کنترلر همه امکانات 8051 بعلاوه 128 بایت RAM و یک تایمر اضافی را دارد.
به بیان دیگر، 8052 دارای 256بایت RAM و 3 تایمر است.
این کنترلر بجای 4K، 8K حافظه ROM را در تراشه داراست.
میکروکنترلر8031: دیگر عضو خانواده 8051 تراشه 8031 است.
این تراشه اغلب بنام 8051 بی Rom خوانده میشود زیرا دارای Ok بایت حافظه Rom است.
برای استفاده از این تراشه باید یک Rom خارجی به آن اضافه کرد.
این Rom خارجی حاوی برنامهای است که باید برداشته شده و اجرا شود.
این تراشه را با 8051 مقایسه کنید که در آن Rom درونی حاوی برنامه مشابهی برای برداشت و اجرا میتواند باشد ولی به 4K بایت کد محدود است.
Rom معتدل به 8031 میتواند تا 64k بایت باشد.
در روند افزایش Rom خارجی به 8031 دو پورت را از دست میدهید.
بنابراین دو پورت I/O برای کاربر باقی میماند.
برای حل این مشکل، میتوان دو I/O خارجی به I/O اضافه کرد.
اتصال 8031 به حافظه و پورتهای 8031، همچون تراشه 0) است.
همچنین انواع 8031 با سرعتهای مختلف بوسیله کمپانیهای متفاوت در دسترسند.
بررسی اجمالی پایهها در این قسمت معماری سختافزار 8051 با نگاهی از بیرون به پایههای آن معرفی میشود و در ادامه شرح مختصری از عملکرد هر پایه ارائه میگردد.
همان طور که در شکل صفحه بعد دیده میود 32 پایه از40پایه 8051 به عنوان خروجی درگاه I/O عمل میکنند معهذا 24 خط از این خطوط دو منظوره هستند.
هریکی از این خطوط میتوانند به عنوان I/O یا خط کنترل و یا بخشی از گذرگاه آدرس یا گذرگاه داده بکار روند.
در طراحیهایی که با کمترین مقدار حافظه و دیگر قطعات خارجی انجام میشوند از این درگاهها به عنوان I/O همه منظوره استفاده میکنند.
هر هشت خط یکی درگاه میتواند به صورت یک واحد در ارتباط با وسایل موازی مانند چاپگرها و مبدهای دیجیتال، آنالوگ بکار رود و یا هر خط به تنهایی با وسایل تک بیتی مثل سوئیچ ها، I/Oها، ترانزیستورها،سیم پیچ ها، موتورها و بلندگوها ارتباط برقرار کند.
-درگاه 0 درگاه 0 یک درگاه دو منظوره از پایه 32 تا 39 تراشه 8051 میباشد این درگاه در طراحیهای باکمترین اجزاءی ممکن به عنوان یک درگاه I/O عمومی استفاده میشود در طراحیهای بزرگتر که از حافظه خارجی استفاده میکنند این درگاه یک گذرگاه آدرش و داده مالتی پلکس شده میباشد.
-درگاه 1 درگاه 1 درگاه اختصاصی I/O روز پایههای 1 تا 8 است.
پایههای P1.0 تا P1.7 در صورت نیاز برای ارتباط با وسایل خارجی بکار میروند.
وظیفه دیگری برای پایههای درگاه یک در نظر گرفته نشده است.
بنابراین آنها گهگاه برای ارتباط با وسایل خارجی بکار میروند استثناء در ICهای 8052 و8032 که از P1.0 و P1.1 به عنوان خطوط I/O و یا ورودی تایمرسوم استفاده میشود.
درگاه 2 درگاه 2 (پایههای 21 تا 28 یک درگاه دو منظوره است که به عنوان I/O عمومی و یا بایتهای بالای گذرگاه آدرس در طراحی با حافظه کد خارجی به کار میرود این درگاه همچنین در طراحیهایی که بیش از 256بایت از حافظه وارده خارجی نیاز دارند نیر استفاده میشود.
-درگاه 3 درگاه 3 یک درگاه دو منظوره روی پایههای 10 تا 17 میباشد.
علاوه بر I/O عمومی این پایهها هر یک وظایف دیگری نیز دررابطه با امکانات خاص 8051 دارند.
وظایف خاص پایههای درگاه 3 و درگاه 2 در جدول زیر خلاصه شده است.
Progrom store Ebable PSEN- 8051 چهار سینگال اختصاص یافته برای کنترل گذرگاه دارد.
PSEN یک سینگال خروجی روی پایه 29است که حافظه برنامه خارجی (کد) را فعال میکند این پایه معمولاً به پایه OE یک EPROM وصل میگردد تا خواندن بایتهای برنامه از EPROM امکان پذیر شود.
سیگنال PSEN در طی مرحله خواندن یک دستورالعمل پایین میدهد.
کدهای دو دویی برنامه (کدهای عملیاتی) از EPROM خوانده میشوند در گذرگاه داده منتقل میشوند و برای رمزگشایی در ثبات دستورالعمل 8051 ذخیره میشوند هنگام اجرای برنامه از Rom داخلی (8052/8051) PSEN در حالت غیرفعال (وضعیت بالا) باقی میماند.
- Address latch Enable ALE سیگنال خروجی ALE در پایه 30 برای هر فردی که با ریزپردازندههای اینتل مثل 8085، 8086 یا 8088 کار کرده باشد آشناست.
8051 بطور مشابهی از ALEبرای جداسازی گذرگاه آدرس و داده استفاده میکند هنگامی که درگاه 0 در حالت خاص خود به عنوان گذرگاه داده و بایت پایین گذرگاه آدرس استفاده میشود سیگنال ALE آدرس را در یک ثبات خارجی در طی نیمه نخست سیکل حافظه نگاه میدارد.
پس از آن خطوط درگاه 0 برای ورود و خروج داده در طی نیمه دوم سیکل حافظه یعنی هنگامیکه انتقال داده انجام میشود در دسترس هستند.
سیگنال ALE با فرکانس یک ششم فرکانس نوسانساز روی تراشه نوسان میکند و میتواند به عنوان یک پالس ساعتی همه منظوره در بقیه سیستم بکار رود.
اگر 8051 از یک کریستال 12 مگاهرتز، پالس ساعت دریافت کند، ALE با فرکانس 2مگاهرترز نوسان میکند.
تنها استثناء در طی انجام دستورالعمل MOVX است که یک پالس ALE حذف میشود.
این پایه همچنین برای برنامهریزی پالس ورودی در انواع EPROM را در 8051 مورد استفاده قرار میگیرد.
External Access EA سینگال ورودی EA در پایه 31 معمولاً به سطح منطقه بالا (5+) یا پایین (زمین) وصل میشود اگر این پایه در وضعیت بالا قرارگرفته باشد 8052/8051 برنامه را از Rom داخلی یعنی 4k یا 8k بایت پایین حافظه اجرا میکند هنگامی که پایین باشد Rom داخلی غیر فعال میشود و برنامهها از EPROM خارجی اجرا میشوند همچنین نوع EPROMدار 8051 از خط EA برای تغذیه 21 ولت (Vpp) در برنامهریزی EPROM داخلی استفاده میکنند.
RST (Reset) ورودی RST در پایه 9، آغازگر اصلی 8051 است هنگامی که این سیگنال حداقل برای دو سیکل ماشین در وضعیت بالا بماند.
ثباتهای داخلی 8051 بامقادیر مناسبی برای یک شروع به کار سازمان یافته بار میشوند.
-ورودی نوسان ساز روی تراشه: 8051 دارای یک نوسان ساز روی تراشه است و معمولاً با یک کریستال که به پایههای 18 و 19 وصل میشود به راه میافتد خازنهای پایدار کننده نیز بصورت نشان داده شده مورد نیاز هستند.فرکانس نامی کریستال برای اغلب ICهای خانواده TM51-MCS، 12مگاهرتز است هر چند که 1-BH31 C80 میتواند با فرکانسهایی تا 14 مگاهرتز نیز کار کند.
نوسانساز روی تراشه الزاماً نیازی به یک کریستال ندارد.
همان طور که در شکل نشان داده شده است یک منبع پالس ساعتی TTL میتواند به XTAL1 و XTAL2 وصل شود.
«راه اندازی 8051 با یک نوسان ساز» -اتصالات تغذیه 8051 با یکی تغذیه 5 ولتی کار میکند اتصال Vcc به پایه 40 و Vss (زمین) به پایه 20 وصل میشود.
مجموعه دستورالعملها همانطور که جملههای از کلمات ساخته شدهاند برنامهها هم از دستورالعملها ساخته میشوند.
اگر برنامهها از مجموعه دستورالعملهایی منطق و معتبر برخوردار باشند برنامهای سریع، کارا و حتی زیبا و با سلیقه بدست خواهد آمد آنچه که بطور منحصر به فرد به یک خانواده از کامپیوترها متعلق است مجموعه دستورالعملهای آن یعنی فهرستی از عملیات مجاز مانند جمع، انتقال و پرش میباشد در این قسمت مجموعه دستورالعملهای TM51-MCS به طور فشرده معرفی میشود.
-انواع دستورالعملها دستورالعملهای 8051 به پنچ گروه کاری تقسیم میشوند دستورالعملهای حسابی دستورالعملهای منطقی دستورالعملهای انتقال داده دستورالعملهای متغیر بولی دستورالعملهای انشعاب برنامه نمودار مرجع دستورالعملها راهنما الف) میکرو پروسسور میکروکنترلر: ب) میکروکنترلر گذرگاه آدرس منزلخودکارلوازم خانگیکامپیوترارتباطات درونیکنترل موتورتلفنکیسه هوادزدگیروسایل اندازهگیریمنشی تلفنسیستم حفاظتیماشینهای خیاطیکنترل انتقالورود بدون کلیداداریفاکسمایکروویودستگاه فتوکپیچاپگر لیزریچاپگر رنگیاحضار از بلندگو Web SiteCompanywww.intel.com/design/mcs51Intelwww.atmel.comAtmelWWW.Semiconductors.philips.comPhilips/signeticswww.Sci.siemens.comSiemenswww.dalsemi.comDallas Semiconductors QuantityFeature4K bytesRom128bytesRam2Timer32I/O Pins1Serial port6Interrupt Sources 6 بستهبندیVccوقفهتایمرپایههای I/ORAMROMشماره قطعه405V62321284kAT89C51403V62321284kAT89LV51203V3115641kAT89C1051203V62151282kAT89C2051405V83321288kAT89C52405V83321288kAT89LV52 مورد استفادهبسته بندیپایههاسرعتشمارهقطعهتجاریپلاستیکDIP4012MHZAT89C51-12PCتجاریپلاستیکDIP4016MHZAT89C51-16PCتجاریپلاستیکDIP4020MHZAT89C51-20PC بستهبندیVccوقفههاتایمرهاپایههای I/ORAMROMشماره قطعه405V62321288kDS5000-8405V623212832kDS5000-32405V62321288kDS5000T-8405V623212832kDS5000-8 سرعتNv-Ramشماره قطعه8MHZ8kDS5000-8-812MHZ8kDS5000-8-128MHZ32kDS5000-32-8(with RTC) 8MHZ32kDS5000T-32-812MHZ32kDS5000-32-12(with RTC) 12MHZ8kDS5000T-8-12 803180528051Feature0K8K4KRom(on-chip Program Space in bytes128256128Ram(bytes)232Timers323232I/O Pins111Serial Port686Interrupt Sources عملکرد خاصآدرس بیتینامبیتدریافتی داده برای درگاه سریالB0HAXDP3.0ارسال داده برای درگاه سریالB1HTXDP3.1وقفه خارجی0B2HINT0P3.2وقفه خارجی1B3HINT1P3.3ورودی خارجی برای تمایر/شمارندهB4HT0P3.4ورودی خارجی برای تمایر/شمارندهB5HT1P3.5سیگنال فعال ساز نوشتن در حافظه داده خارجیB6HNRP3.6سیگنال فعال ساز خواندن در حافظه داده خارجیB7HRDP3.7ورودی خارج تایمر/ شمارنده90HT2P3.8تسخیر/ تایمر/شمارنده90HT2EXP3.9 توصیفنمادعملیات حسابیجمع A با SourceA,SourceADDA,#dataADDجمع با رقم نقلیA,#SourceADDCA,#dataADDCتفریق از AA,SourceSuBBبا رقم فرضیA,#dataSuBBافزایشAINCSourceINCکاهشADECSourceDECافزایش OPTRDPTRINCضرب AوBABMULتقسیم Aبر BABDIVتطبیق دهی انبارهADA توصیفنمادعملیات منطقیANDمنطقیA,sourceANLA,#DataANLDirect,AANLDirect, dataANLORمنطقیA,sourceORLA,DataORLDirect,AORLDirect, dataORLXORمنطقیA,SoutceXRLA, dataXRLDirect,AXRLDirect, dataXRLپاک کردنAACLRمتمم کردنAACPLچرخش A به چپARLچرخش A به چپ از طریقARLCچرخش A به راستARRچرخشA به راست از طریقCARRCتعویض دو چهار بیتASWAPتوصیفنمادعملیات انتقال دادهانتقال به soureمقصدA,SourceMOVA, dataMOVDest,AMOVDest,SourceMOVDest, dataMOVDPTR, data16MOVانتقال از حافظه کدA,@A+PCMOVCA,@A+PCMOVCانتقال از حافظه دادهA,@RiMOVXA,@ DPTRMOVX@Ri,AMOVX@DPTR,AMOVXدر شیتهDirectPUSHدر شیتهDirectPOPتعویض بایتهاA,SourceXCHتعویض ترتیب رقمهای پایینA,@RiXCHD توصیفنمادعملیات متغیر بولیپاک کردن بیتCCRLBitCLRSetکردن بیتCSETBBitSETBمتمم کردن بیتCCPLBitCPLANDبیت با CC,bitANLAnd NoTبیت با CC,/bitANLORبیت با CC,bitORLانتقال بیت به بیتC,bitMOVC,/bitMOVپرش در صورت /بودنCRelJCپرش در صورت /نبودنCRelJNCپرش در صورت /بودن بیتBit,relJBپرش در صورت /نبودن بیتBit,relJNBو سپس پاک کردن آنBit, relJBC توصیفنمادانشعاب برنامهفراخوانی زیر روالAddr11ACALLAddr16LCALLبازگشت از زیر روالRETبازگشت از وقفهRET1پرشAddr11AJMPAddr16LJMP@A+DPTRJMPپرش اگر A=0استRelJZپرش اگر A=0نیستRelJNZمقایسه و پرش در صورت مساوی نبودنA,direct, relCJNEA, data, relCJNERn, data,relCJNE@Ri, data, relCJNEکاهش وRn,relDJNZبرش، اگر صفر نباشدDirect,relDjnZانجام ندادن عملیاتNop آدرس دهی ثبات با استفاده از Ro-R7RNآدرس داخلی 8 بیتی (00H-FFH)Directآدرس دهی غیر مستقیم با استفاده از R0 یا R1@Riیکی از نمادهای [@ri,direct, Rn]Sourceیکی از نمادهای [@ri,direct,Rn]Destثبات 8بیتی در دستورالعملdataثابتی 16 بیتیdata16آدرس 8بیتی مستقیمBitافست 8بیتی علامتی دارRelآدرس 11 بیت در صفحه حاوی 2kAddr16آدرس 16 بیتی مستقیمAddr 16