فصل اول : میکروکنترلر 8051
1-1 دراین بخش اتبدا به اعضای مختلف خانواده میکروکنترلر 8051 و ویژگی های آنها نگاه می کنیم .
به علاوه خواهیم دید که سازندگان 8051 چه کسانی هستندوچه نوع محصولی ارائه می دهند .
تاریخچه مختصری از 8051
درسال 1981 شرکت Intel میکروکنترلربه نام 8051 را معرفی کرد .
این میکروکنترلردارای 128 بایت 4k , RAM بایت ROM دو تایمر ، یک پورت سریال وچهار پورت موازی ( هریک 8 بیت ) بود که همه آنها دریک تراشه تعبیه شده بودند . زمانی به آن سیستم در یک تراشه می گفتند .
8051 یک پروسسور 8 بیت است ، یعنی CPU هر بار می تواند فقط روی 8بیت داده کار کند .
داده های بزرگتر از 8 بیت باید به قطعات 8 بیت بشکنند وسپس بوسیلهCPU پردازش شوند .
8051 کلا دارای چهار پورت I/O با عرض 8 بیت است .
شکل 2-1 را ملاحظه کنید گرچه 8051 می تواندحداکثر 64K حافظه ROM درتراشه داشته باشد ، بسیاری از سازندگان فقط 4K بایت را درتراشه کار گذاشته اند .این مطلب بعدا بطور مفصل بحث شده است .
پس از آنکه Intel بشرط حفظ سازگاری با 8051 اجازه تولید را به دیگر سازندگان داد تراشه مذکور بسیار مورد توجه قرار گرفت .این توافق منجر به تولید انواع 8051 با سرعت های متفاوت مقداری ROM در تراشه بوسیله نیم دو جین سازنده شد .
ما بعضی از آنها را بعدا بررسی خواهیم کرد .
آنچه اهمیت دارداین است که گرچه انواع مختلف 8051 با سرعت ومقدار ROM متفاوت در تراشه موجودند ولی همه آنها با 8051 اصلی از نظر دستورات سازگارند .
این بدان معنی است که اگرشما برنامه ای برای یکی بنویسید ، مستقل از سازنده روی دیگری هم قابل اجرا ست .
میکروکنترلر 8051
8051 عضواصلی خانواده 8051 است Intel آن را MCS-51 می نامد .
جدول 1-1 امکانات اصلی 8051 را نشان می دهد .
دیگر اعضای خانواده 8051
دو عضو دیگر از میکروکنترلهای خانواده 8051 با نام 8052 و 8031 نیز وجود دارند .
میکروکنترلر 8052
8052 عضوی دیگر از خانواده 8051 است این کنترلر همه امکانات 8051 بعلاوه 128 بایت RAM ویک تایمر اضافی را دارد به بیان دیگر ، 8052 دارای 256 بایت RAM و 3تایمر است این کنترلر بجای 8K,4K حافظه ROM را در تراشه داراست .جدول 2-1 ملاحظه شود .
میکروکنترلرها و پردازنده های درونی
همانطور که از جدول 4-1 ملاحظه می شود ، 8051 زیر مجموعه ای از 8052 است بنابراین همه برنامه های نوشته شده برای 8051 قابل اجرا بر روی 8052 نیز هستند ولی عکس آن صحیح نیست .
میکروکنترلر 8053
دیگر عضو خانواده 8051 تراشه 8053 است .این تراشه اغلب بنام 8051 بی ROM خوانده می شود زیرا دارای OK بایت حافظه ROM است .برای استفاده از این تراشه باید یک ROM خارجی به آن اضافه کرد این ROM خارجی حاوی برنامه ای است که باید برداشته شده واجرا شود .این تراشه را با 8051 مقایسه کنید که در آن ROM درونی حاوی برنامه مشابهی برای برداشت و اجرا می تواند باشد ولی به 4K بایت کد محدود است .
ROM متصل به 8031 می تواند تا 64K باید باشد .درروند افزایش ROM خارجی به 8031 دو پورت را از دست می دهید .بنابراین دو پورت I/O برای کاربر باقی می ماند .
برای حل این مشکل ، می توان دو I/Oخارجی به 8031 اضافه کرد .
اتصال 8031 به حافظه وپورت های I/O همچون تراشه 8255 در فصل 14 بحث شده است .همچنین انواع 8031 با سرعت های مختلف بوسیله کمپانی های متفاوت در دسترسند .
فصل اول :میکروکنترلرهای 8051
انواع میکروکنترلر 8051
گرچه 8051 رایج ترین عضو خانواده 8051 است ، ولی شما قادر نخواهید بود شماره قطعه ای بصورت 8051 ملاحظه کنید .
دلیل این است که 8051 با حافظه های متفاوتی چون ROM UV-EPحافظه سریع ، NV-RAM در دسترس است که هر یک شماره قطعه متفاوتی دارد . نوع ROM UV-EP خانواده 8051 تراشه 8751 است نوع ROM سریع بوسیله کمپانی های متعدد از جمله Atmel راهی بازار شده است .
8051 نوع سریع از Atmel است که AT89C51 خوانده می شود .
نوع NV-RAM از 8051 بوسیلهDallas semiconductor بنام DS500 شناخته می شود .همچنین نوع OTP ( یکبار قابل برنامه ریزی ) خانواده 8051 بوسیله سازندگان متعددی تولید شده است اکنون هر یک از تراشه های فوق را بطور خلاصه توصیف و کاربرد آنها را بیان می کنیم .
میکرو کنترلر 8751
تراشه 8751 فقط بایت حافظه ROM UV- EPدرونی است .هنگام استفاده از این تراشه در طراحی و پیاده سازی به دستگاه برنامه نویسی ROM Pو پاک کننده برای پاک کردن ROM UV-EPدردرون 8751 قبل از برنامه نویسی نیاز است .باتوجه به این نکته که ROM درون این تراشه از نوع ROM UV-EPاست ،حدود 20 دقیقه برای پاک کردن آن وقت لازم است تا بتوان بعد از آن عمل برنامه نویسی را انجام داد ، این مسئله موجب شد تا بسیاری از تولید کنندگان انواع سریع و NV-RAM نوع 8751 را که در زیر بحث شده بکار ببرند .همچنین نوع سریع 8751 نیز توسط تعدادی از تولید کنندگان ساخته شده است .
AT89C51 از شرکت Atmel
این تراشه 8051 رایج دارای ROM سریع می باشد ، در طراحی های سریع این نوع حافظه ایده ال است زیرا حافظه سریع می تواند طی چند ثانیه ،درمقایسه 20 دقیقه لازم برای 8751 پاک شود .با این دلیل AT89C51 بجای 8751 بکار برده شده است .تا هنگام پاک کردن تراشه وقتی تلف نشود وبدینوسیله ساخت سیستم سریع گردد هنگام استفاده از AT89C51 برای سخت سیستم های مبتنی بر میکروکنترلر به سوزاننده یا برنامه ریز ROM سریع نیاز داریم ، بااین وجود به پاک کننده ROM نیاز نیست .توجه داشته باشید که در حافظه سریع باید تمام حافظه پاک شود تا بتواند مجددا آن را برنامه نویسی کرد .پاک کردن حافظه سریع با خود سوزاننده صورت میگیرد و با این دلیل پاک کننده جداگانه ای لازم نمی باشد .برای حذف سوزاننده ROM P Atmelروی نوعی از AT89C51 کار می کند که می تواند از طریق پورت سریال COM یک IBM PC برنامه ریزی شود .
توجه : C درشماره قطعه بمعنی CMOS است .
محصولات مختلفی از نظرسرعت و بسته بندی تولید شده است .
جدول 4-1 را ببینید مثلا به AT89C51-12PCتوجه کنید که در آن C قبل از 51 به معنی CMOS است بنابراین توان مصرفی کمی دارد .
12 به معنی P.12MHz برای پلاستیکی بودن بسته C,DIP بمعنی تجاری است که د رمقابل M به معنی نظامی بکار می رود-12PC AT89C51 برای پروژه های دانشجویی مناب است .
DS5000از Dollas Semiconductor
نوع رایج دیگر از 8051 تراشه DS5000از Dollas Semiconductor است .
ROM در DS5000 از نوعNV - RAM است قابلیت نوشتن / خواندن NV-RAM اجازه می دهد تا برنامه در ROM در حالی که روی سیستم نصب است بار شود .
این کار راحتی می توان ازطریق IBM PC انجام داد .
به این نوع برنامه نویسی ، بار کردن برنامه در سیستم DS5000 می گویند .
که انجام آن ا زطریق پورت سریال PC آن را برای ساخت سیستم ها درخانه ایده ال می کند .
مزیت دیگر NV- RAM قابلیت تغییر یک بایت در هر بار است .
این قابلیت با ROM UV- EPو حافظه سریع کار می کند ومی تواند از طریق پورت سریال COMیک IBM PC برنامه ریزی شود .
نوع رایج دیگر از 8051 تراشه DS5000از Dollas Semiconductor است .
ROM در DS5000 از نوعNV - RAM است قابلیت نوشتن / خواندن NV-RAM اجازه می دهد تا برنامه در ROM در حالی که روی سیستم نصب است بار شود .
این کار راحتی می توان ازطریق IBM PC انجام داد .
که انجام آن ا زطریق پورت سریال PC آن را برای ساخت سیستم ها درخانه ایده ال می کند .
این قابلیت با ROM UV- EPو حافظه سریع کار می کند ومی تواند از طریق پورت سریال COMیک IBM PC برنامه ریزی شود .
جدول 5-1 انواع 8051 از Dallas توجه کنید که ساعت زمان واقعی با تایمر تفاوت دارد ساعت زمان واقعی ، زمان شبانه روز ( ساعت ، دقیقه ، ثانیه ،) و تاریخ ( سال ،ماه ، روز) را حتی اگر منبع تغذیه قطع شود تولید می کند .
انواع مختلفی DS5000 از نظر سرعت و بسته بندی وجوددارد که در جدول 8-1 نشان داده شده است .
مثلا DS5000-8-8 دارای 8K NV -RAM با سرعت 8 MHz است .اغلب DS50008-12 یا -8-12 DS5000 برای پروژه های دانشجویی مناسب است .
جدول 6-1 انواع 8051 از Dallas نوع OTPاز 8051 انواع OTP از از8051 منابع مختلف در دسترس قرار دارد .
انواع سریع و NV- RAM معمولا برای توسعه تولید بکار برده می شود .
وقتی که محصولی طراحی شد وبغایت اصلاح گردید ، نوع OTP از 8051 برای تولید انبوه بکار برده می شود زیرا از لحاظ قیمت بسیار ارزانتر است .
خانواده 8051 از Philips محصول مهم دیگری از خانواده 8051 بوسیله شرکت Philips ارائه شده است این شرکت از نظر نوع ، بیشترین تولید میکروکنترلر را دارد .
بسیاری از محصولات آن شامل امکاناتی مثل تبدیل I/O , D-A ,A-D توسعه یافته وهر دونوع OTP و حافظه سریع است .
این فصل پایه های 8051 را توصیف کرده وسپس برنامه نویسی پورتI/O را همراه با مثال هایی ، در 8051 نشان می دهد .
2-1 توصیف پایه های 8051 گرچه اعضاء خانواده 8051 ( مثل DS5000,89C51) دربسته های متفاوتی مثلLCC , QFP ,DIP عرضه شده اند ، همه آنها برای انواع توابع مانند WR, RD , I/O آدرس داده ووقفه تدارک دیده شده اند .
باید متذکر شد که بعضی کمپانی ها نوع 20 پایه 8051 راباکاهش پورت های I/O دررابطه باکاربردها کم تقاضا ، تولید کرده اند با این وجود ، چون عمده0 تولید کنندگان از تراشه های DIP با 40 پایه استفاده می کنند ، مابر آنها تاکید خواهیم کرد .
با بررسی شکل 1-1- دیده می شود که از 40 پایه جمعا 32 پایه چهارپورت P3,P2,P1,P0 کنار گذاشته شده اند .بقیه پایه ها به PSEN, EA, RST , XTAL2 , XTAL1 , GND , Vcc اختصاص یافته اند .
شش پایه ( EA , RST , XTAL2, XTAL1, GND , Vcc ازهشت پایه فوق بوسیله همه اعضاء خانواده 8031,8051 بکار رفته اند .
به بیان دیگر ، بدون توجه به اینکه از خانواده 8051 یا 8031 هستند ، آنها باید برای بکار اندازی سیستم وصل شوند دو پایه دیگر ALE, PSENدراصل در سیستم های مبتنی بر 8031 بکار می روند .
ابتدا وظیفه هرپایه را توصیف می کنیم .پورت ها بطور جداگانه مورد بحث قرار گرفته اند .
Vcc پایه 40 ولتاژ تغذیه را برای تراشه فراهم می کند ولتاژ منبع SV است .
GND پایه 20 زمین است .
XTAL2,XTAL1 8051 دارای یک اسیلاتور ( نوسان ساز ) درون تراشه ای است ولی برا ی راندن آن به یک ساعت کریستال نیاز است .
اغلب یک اسیلاتور کریستال کوارتز به ورودی های XTAL1 ( پایه 19( و XTAL2 ( پایه 18) وصل است .
اسلاتور کریستال کوارتز متصل و XTAL2,XTAL1 به دو خازن 30PF وصل می باشد .
یک طرف هر یک از خازن ها مثل شکل 2-1 ( الف ) به زمین وصل است .
باید توجه کرد که سرعت های مختلفی در خانواده 8051 وجود دارد .
غرض از سرعت حداکثر ، فرکانس متصل به XTALاست .مثلا یک تراشه 12MHz باید به فرکانس 12MHz یا کمتر وصل شود.
بهمین ترتیب یک میکروکنترلر 20MHz نباید به فرکانسی بیش از 20MHz وصل شود .
وقتی که 8051 به اسیلاتور کریستال وصل می شود ومنبع تغذیه روشن می گردد ،می توانیم با استفاده از اسیلو سکپ فرکانس را روی XTAL2 ملاحظه کنیم .
اگر می خواهید از منبع فرکانسی بجز اسیلاتور کریستال ، مثل اسیلاتور TTL استفاده نمایید ، باید آن را به XTAL1وصل کنید ودر این حال 2 XTALطبق شکل 2-1 (ب) رها می شود .
RST پایه 9 پایه RESET( باز نشانی ) است .این پایه یک ورودی فعال بالاست .
بعد از اعمال یک پالس بالا به این پایه ، میکرو کنترلر باز نشانده شده وهمه فعالیت ها را رها می کند اغلب به این حالت ،باز نشانی به هنگام روشن شدن می گویند .
فعال کردن یک باز نشانی به هنگام روشن شدن ، موجب از دست رفتن همه مقادیر در ثبات ها می شود جدول 7-1 لیست غیر کاملی از ثبات های 8051 و مقادیر آن ها را پس از باز نشانی به هنگام روشن شدن نشان می دهد .
جدول 7-1 مقدار RESET بعضی از ثبات های 8051 در ROM واداشته می شود .
این بدان معنی است که ما باید اولین