این میکرو کنترلر از زبان اسمبلی و C پشتیبانی می کند که زبان برنامه نویسی اصلی آن اسمبلی است که نوشتن با این زبان برنامه نویسی نسبت به زبان های برنامه نویسی دیگر هم مشکل تر و هم طولانی تر است. در کل این میکروکنترلر امروزه دیگر توان رقابت با AVR و PIC را دارا نیست و رقابت اصلی بین این دو میکروکنترلر است.
آشنایی با سخت افزارمیکرو کنترلر 8051:
آیسی8051 ، یک آیسی 8 بیتی است و CPU آن می تواند فقط بر روی 8 بیتْ دادهْ عملیات انجام دهد.
مشخصات کلی این آیسی به شرح زیر میباشد:
- میزانROM :4K بایت.
- میزانRAM :128 بایت.
- دارای دو تایمر.
- دارای دو وقفه خارجی.
- رابط سریال.
- انجام عملیات ضرب و تقسیم در زمان4 میکرو ثانیه.
- چهار پورتI/O با عرض 8 بیت.
انواع میکروکنترلر 8051:
از این کارخانه چندین نوع مختلف میکروکنترلر8051 وجود دارد که مشخصات کلی همۀ آنها یکسان بوده و تنها تفاوتهای جزئی بین آنها وجود دارد.
میکروکنترلر 80C51:
این آیسی قابلیت یک بار برنامهنویسی را داراست به گونهای که بعد از یکبار پروگرمگذاری نمیتوان آنرا مجددا پاک کرده و از آن استفاده نمود. جهت پروگرمگذاری این آیسی، نیاز به ساخت و یا خرید دستگاه پروگرمر میباشد.
این آیسی از لحاظ تمرین با 8051 مقرون به صرفه نمیباشد.
میکروکنترلر 89C51:
این آیسی برخلاف آیسی80C51 که قابلیت یک بار برنامهنویسی را دارا است، میتواند برای چندین بار (در حدود1000 بار) برنامهنویسی شده و در هر بار استفاده، بعد از پاک نمودن، مجددا آن را پروگرمگذاری کرد. این آیسی نیز همانند آیسی80C51 نیاز به دستگاه پروگرمر دارد.
باید توجه داشت که در هنگام فعالیت این آیسی در مدار، نمیتوان آنرا پروگرمگذاری کرد، بنابراین جهت پروگرمگذاریِ این آیسی میبایست ابتدا آنرا از مدار خارج ساخته و سپس برنامه جدید را در آن ذخیره کرد.
میکروکنترلر 89S51:
این آیسی از لحاظ ساختار داخلی، شکل پایهها و همچنین تمام قابلیتها همانند دو آیسی ذکر شده است، اما این آیسی دارای مزیتهایی نسبت به دو آیسی بالا میباشد که وجود این مزیتها موجب برتری نسبی آن در تمرین و استفاده از8051 میگردد.
مزیتهای این آیسی عبارتند از:
- این آیسی همانند آیسی89C51 قابلیت چندین بار برنامهنویسی را داراست.
- این آیسی نیازی به دستگاه پروگرمر (Programer) ندارد و برای پروگرمگذاری آن میتوان آنرا مستقیما به کامپیوتر متصل نموده و توسط کامپیوتر عمل پروگرمگذاری را انجام داد (روش انجام اینکار در ادامه توضیح داده خواهد شد)
- میتوان این آیسی را هنگامی که در مدار مشغول به کار است پروگرم نمود، در نتیجه برای عمل پروگرمگذاری نیازی به خارج نمودن آیسی از مدار نمیباشد.
بررسی پایههای میکروکنترلر 8051:
میکروکنترلر8051 دارای40 پایه میباشد که32 پایه از آن به عنوان خطوط ورودی و خروجی (I/O) در نظر گرفته میشود. از این 32 پایه نیز 24 پایه به صورت دو منظوره عمل خواهند نمود.
VCC (پایه شماره 40):
این پایه به ولتاژ مثبت 5 ولت وصل شده و به عنوان تغذیه آیسی محسوب میگردد.
VSS (پایه شماره 20):
این پایه به ولتاژ پایین (GND) متصل شده و به عنوان تغذیه آیسی محسوب میگردد.
پورت 0:
پایههای32 تا 39 میکروکنترلر 8051 تشکیل این پورت را میدهند (P0^7 , …. , P0^1 , P0^0).
پورت صفر به صورت یک پورت دو منظوره عمل میکند، به این معنی که در یک حالت به صورت یک پورت عادی و به عنوان مکانی برای ورود
و خروج داده (خطI/O) و در حالتی دیگر به عنوان یک گذرگاه داده و آدرس به صورت مالتیپلکس شده برای ارتباط با حافظه خارجی مورد استفاده قرار میگیرد که این مطلب در فصل مربوطه توضیح داده خواهد شد.
این پورت فاقد مقاومت پولاپ میباشد لذا هنگامی که قصد داریم از این پورت به عنوان یک درگاه I/O استفاده کنیم، میبایست برای معتبر شدن دیتا تکتک پایههای این پورت را توسط مقاومت پولاپ به VCC متصل کنیم.
پورت 1:
پایههای 1 تا 8 به عنوان یک درگاه ورودی/ خروجی داده (I/O) تشکیل این پورت را میدهند (P1^7 , ……. , P1^1 , P1^0).
این پورت به عنوان یک پورت تک منظوره بوده و عمل دومی برای آن در نظر گرفته نشده است، همچنین به علت وجود مقاومت پولاپ در این پورت هنگام استفاده از آن نیازی به مقاومت بالابرنده نمیباشد.
پورت 2:
پایههای21 تا 28 به عنوان یک درگاه دو منظوره تشکیل این پورت را میدهند (P2^7 , …. , P2^0).
این پورت در یک حالت به عنوان یک درگاه ورودی و خروجی داده (I/O) و در حالتی دیگر به عنوان بایتِ بالای آدرس هنگام استفاده از حافظه خارجی به کار میرود که این مطلب در بخش مربوطه توضیح داده خواهد شد. این پورت نیز دارای مقاومت پولاپ میباشد.
پورت 3 :
پورت 3 نیز پورتی دو منظوره بوده و پایههای 10 تا 17 تشکیل این پورت را میدهند (P3^7 …. , P3^0).
این پورت به عنوان یک درگاه I/O همراه با مقاومت پولاپ عمل میکند و عملکرد دوم پایههای این پورت نیز به تدریج توضیح داده خواهد شد.
پایه RST (پایه شماره 9):
این پایه به عنوان پایه ریست میکرو محسوب میگردد. در هنگام کار عادی میکرو این پایه باید در سطح منطقی پایین قرار گیرد اما به منظور ریست نمودن میکرو میبایست این پایه را به سطح منطقی بالا (High) برده و مجددا به سطح منطقی پایین (Low) تغییر حالت دهیم (برای ریست شدن میکرو حداقل دو سیکل ماشین باید این پایه در سطح منطقی بالا قرارگیرد).
عمل ریست کردن معمولا به دو روش دستی و یا خودکار صورت میگیرد که در دو شکل زیر طریقه استفاده از هر دو روش نمایش داده شده است.
" ریست هنگام روشن شدن "
" ریست به صورت دستی "
XTAL1 , XTAL2 (پایههای 18 و 19):
معمولا بین این دو پایه یک کریستال قرار گرفته و فرکانس لازم برای کار میکرو را فراهم میسازد. دو خازن30pf نیز به عنوان خازنهای پایدار کننده -مانند طرح زیر- مورد نیاز میباشد.
میتوان به جای بکارگیری کریستال برای تولید فرکانس کاری میکرو از یک منبع پالس خارجی استفاده نمود که این مطلب در بحث مربوطه توضیح داده خواهد شد.
پایه PSCN (پایه شماره 29):
در حالت کار عادی و اجرای برنامه از ROM داخلی میکرو، این پایه به صورت غیر فعال باقی مانده و به جایی اتصال نمییابد.
پایه ALE (پایه 30):
سیگنال ALE با فرکانسی معادل یک ششم فرکانس کریستال بر روی این پایه نوسان میکند، بطور مثال در حالتی که ما از کریستال 12M استفاده میکنیم فرکانس خروجی این پایه برابر2 مگاهرتز (6÷12) میشود که از این فرکانس میتوان به عنوان یک منبع پالس، در کاربردهای دیگر طراحی استفاده برد.
همچنین از فرکانس این پایه نیز در ارتباط با حافظه خارجی استفاده میشود که در بخش مربوطه توضیح داده خواهد شد.
با تست و مشاهده فرکانسی معادل با 6/1 فرکانس کریستال بر روی این پایه میتوان به سلامت میکرو پیبرد به گونهای که عدم وجود این فرکانس بر روی این پایه نشانه خرابی آی سی است (البته عدم اتصال صحیح تغذیه و یا کریستال موجب دیده نشدن این فرکانس میشود).
پایه EA (پایه شماره 31):
این پایه در حالت کار عادی به سطح منطقی بالا (VCC) متصل میشود. هنگامی که این پایه به سطح منطقی بالا متصل است برنامه از ROM داخلی (4k) اجرا گشته و در هنگامی که این پایه در سطح منطقی پایین قرار گیرد ROM داخلی غیر فعال شده و برنامه از EPROM خارجی اجرا میگردد.
به منظور راهاندازی میکروکنترلر8051 و قراردادن آن در حالت کار عادی، اتصالات آن را میبایست به صورت شکل زیر قرار دهیم، همچنین به منظور اجتناب از تغییرات ولتاژ بر روی میکرو، بهتر است از یک رگلاتور 7805 استفاده شود.