اختصاصی از یارا فایل
دانلود با لینک مستقیم و پرسرعت .
دانلود متن کامل این پایان نامه با فرمت ورد word
گر چه کامپیوترها تنها چند دهه ای است که با ما همراهند، با این حال تأثیر عمیق آنها بر زندگی ما با تأثیر تلفن، اتومبیل و تلویزیون رقابت می کنند … تصور ما از کامپیوتر معمولاً «داده پردازی» است که محاسبات عددی را بطور خستگی ناپذیر انجام میدهد.
ما کامپیوترها را به عنوان جزء مرکزی بسیاری از فرآورده های صنعتی و مصرفی از جمله درسوپرمارکت ها، داخل صندوق های پول و ترازو، در اجاق ها و ماشین های لباسشویی، ساعتهای دارای سیستم خبر دهنده و ترموستات ها، VCR ها و … در تجهیزات صنعتی مانند مته های فشاری و دستگاه های حروفچینی نوری می یابیم. در این مجموعه ها کامپیوترها وظیفه «کنترل» را در ارتباط با «دنیای واقعی»، برای روشن و خاموش کردن وسایل و نظارت بر وضعیت آنها انجام می دهند. میکروکنترلرها (برخلاف ریزکامپیوترها و ریز پرازنده ها) اغلب در چنین کاربردهایی یافت میشوند.
با این که بیش از بیست سال از تولد ریزپردازنده ها نمی گذرد، تصور وسایل الکترونیکی و اسباب بازیهای امرزوی بدون آن کار مشکلی است. در 1971 شرکت اینتل، 8080 را به عنوان اولین ریزپردازنده موفق عرضه کرد.
مدت کوتاهی پس از آن شرکت موتورولا، RCA و سپس تکنولوژی MOS و شرکت زایلوگ انواع مشابهی را به ترتیب به نامهای 6800 و 1801 و 6502 و Z80 عرضه کردند. گر چه این IC ها (مدارهای مجتمع) به خودی خود فایده ای زیادی نداشتند اما به عنوان بخشی از یک کامپیوتر تک بورد یا SBC ، به جزء مرکزی فرآورده های مفیدی برای آموزش طراحی با ریزپردازنده ها تبدیل شدند. از این SBC ها که به سرعت به آزمایشگاه های طراحی در کالج ها و شرکهای الکترونیک راه پیدا کردند میتوان برای نمونه از D2 ساخت موتورولا، KIM-1 ساخت Mos Technology و SCK-85 متعلق به شرکت اینتل نام برد.
«ریزکنترلگر» قطعه ای شبیه به ریز پردازندها ست در 1976 اینتل 8748 را به عنوان اولین قطعه ی خانواده ی ریزکنترلرگرهای MCS-48TM معرفی کرد. 8748 با 17000 ترانزیستور در یک مدار مجتمع شامل یک CPU ، 1 کیلوبایت EPROM ، 64 بایت RAM ،27 پایه ورودی – خروجی (I/O) ویک تایمر 8 بیتی بود.
این IC و دیگر اعضای MCS-48TM که پس از آن آمدند، خیلی زود به یک استاندارد صنعتی در کاربردهای کنترل گرا تبدیل شدند. جایگزین کردن اجزاء الکترومکانیکی در فرآورده هایی مثل ماشینهای لباسشویی و چراغ های راهنمایی از ابتدای کار یک کاربرد مورد توجه برای این میکروکنترلرها بودند و همین طور باقی ماندند. دیگر فرآورده هایی که در آنها میتوان میکروکنترلر را یافت عبارتند از اتومبیلها، تجهیزات صنعتی، وسایل سردرگمی و ابزارهای جانبی کامپیوتر (افرادی که یک PC از IBM دارند کافی است به داخل صفحه کلید نگاه کنند تا مثالی ازیک میکروکنترلر را در یک طراحی با کمترین اجزاء ممکن ببینند).
توان ، ابعاد و پیچیدگی میکروکنترلرها با اعلام ساخت 8051 یعنی اولین عضو خانواده میکروکنترلر MCS-51TM در 1980 توسط اینتل پیشرفت چمشگیری کرد. در مقایسه با 8084 این قطعه شامل بیش از 60000 ترانزیستور، 4K بایت ROM ،128 بایت RAM ، 32 خط I/O، یک درگاه سریال و دو تایمر 16 بیتی است که از لحاظ مدارات داخلی برای یک IC ، بسیار قابل ملاحظه است.
امروزه انواع گوناگونی از این IC وجو ددارند که به طور مجازی این مشخصات را دو برابر کرده اند. شرکت زیمنس که دومین تولید کننده قطعات MCS-51TM است ، SAB 80515 را بعنوان یک 8051 توسعه یافته در یک بسته ی 68 پایه با 6 درگاه (پورت) I/O بیتی، 13 منبع وقفه و یک مبدل آنالوگ به دیجیتال با 8 کانال ورودی عرضه کرده است. وخانواده ی 8051 به عنوان یکی از جامعترین و قدرتمندتر ین میکروکنترلرهای 8 بیتی شناخته شده و جایگاهش را به عنوان یک میکروکنترلر مهم برای سالهای آینده یافته است.
2-1) مقایسه ی ریزپردازنده ها با میکروکنترلرها
فرق یک میکروکنترلر با یک پردازنده چیست؟ با این سوال از سه جنبه میتوان برخورد کرد:
1-2-1) معماری سخت افزار
در حالی که ریزپردازنده یک CPUی تک تراشه ای است، میکروکنترلر در یک تراشه ی واحد شامل یک CPU و بسیاری از مدارات لازم برای یک سیستم میکروکامپیوتری کامل است. اجزای داخل خط چین بخش کاملی از اغلب IC های میکروکنترلر هستند (شکل 2-1). علاوه بر CPU میکروکنترلرها شامل ROM, RAM یک رابطه سریال، یک رابط موازی، تایمر و مدارات زمان بندی وقفه هستند که همگی در یک IC قرار دارند. البته مقدار RAM روی تراشه حتی به میزان آن در یک سیستم میکروکامپیوتری کوچک هم نمی رسد ولی این مساله محدودیتی ایجاد میکند برای کاربردهای میکروکنترلر بسیار متفاوت است.
یک ویژگی مهم میکروکنترلرها، سیستم وقفه موجود در آنهاست. میکروکنترلرها به عنوان ابزارهای کنترلرگرا، اغلب برای پاسخ بی درنگ به وقفه ها – محرک های خارجی- مورد استفاده قرار می گیرند، یعنی باید در پاسخ به یک «اتفاق» سریعا یک فرآیند را معوق گزارده، به فرآیند دیگر بپردازند. باز شدن در یک اجاق مایکروو مثالی است ازیک اتفاق که ممکن است باعث ایجاد یک وقفه در یک سیستم میکروکنترلری شود. البته اغلب ریزپردازنده ها میتوانند سیستم های وقفه ی قدرتمندی را به اجرا بگذارند اما برای این کار معمولاً به اجزای خارجی نیاز دارند. حال آنکه مدارات روی یک تراشه ی یک میکروکنترلر شامل تمام مدارات مورد نیاز برای به کارگیری وقفه ها است.
2-2-1) کاربردها
ریزپردازنده ها اغلب به عنوان CPU در یک سیستم میکروکامپیوتری به کار می روند ولی میکروکنترلرها در طراحی های کوچک با کمترین اجزاء ممکن که فعالیت کنترلرگرا انجام می دهند نیز یافت میشوند. این طراحی ها در گذشته با چند ودجین و یا حتی صدها IC دیجیتال انجام می شد و اکنون یک میکروکنترلر میتواند در کاهش تعداد کل اجزاء کمک کند. آنچه مورد نیاز است شامل یک میکروکنترلر تعداد کمی اجزاء پشتیبان و یک برنامه کنترلی در ROM میباشد. میکروکنترلرها برای «کنترل» ابزارهای I/O در طراحی هایی با کمترین تعداد اجزاء ممکن مناسبند، حال آنکه ریزپردازنده ها مناسب «پردازش» اطلاعات در سیستم های کامپیوتری مناسبند.
3-2-1) ویژگی های مجموعه ی دستور العمل ها
بدلیل تفاوت در کاربردها، مجموعه دستورالعمل های مورد نیاز برای میکروکنترلر تا حدودی با ریزپردازنده ها تفاوت دارد. مجموعه دستور العملهای ریزپردازند ها بر عمل پردازش تمرکز یافته اند و در نتیجه دارای روشهای آدرس دهی قدرتمند به همراه دستور العمل هایی انجام عملیات روی حجم زیاد داده هستند.
دستور العمل ها روی چهاربیت ها، بایت ها، کلمه ها یا حتی کلمات مضاعف عمل می کنند. روش های آدرس دهی با استفاده از فاصله های نسبی و اشاره گرهای آدرس، امکان دسترسی به آرایه های بزرگ داده را فراهم می کنند. حالتهای افزایش یک واحدی اتوماتیک و کاهش یک واحدی اتوماتیک، حرکت گام به گام روی بایت ها، کلمه ها و کلمه های مضاعف را در آرایه ها آسان می کنند. دستور العمل های رمزی نمی توانند در داخل برنامه ی کاربردی اجرا شوند و بسیاری ویژگی های دیگر از این قبیل.
از سوی دیگر میکروکنترلرها ، مجموعه دستور العمل هایی مناسب برای کنترل ورودیها و خروجی ها دارند. ارتباط بسیاری از ورودی ها و خروجی ها تنها نیازمند یک بیت است. برای مثال یک موتور میتواند توسط یک سیم پیچ که توسط یک درگاه خروجی یک بیتی، انرژی دریافت میکند روشن و خاموش شود. میکروکنترلرها دستور العمل هایی برای 1 کردن و 0 کردن بیت های جداگانه دارند و دیگر عملیات روی بیت ها مثل OR ،AND یا EXOR کردن منطقی بیت ها، پرش در صورت 1 یا 0 بودن یک بیت و مانند آنها را نیز انجام می دهند. این ویژگی مفید به ندرت در ریزپردازنده ها یافت میشود زیرا آنها معمولاً برای کار روی بایت ها یا واحدهای بزرگتر داده طراحی میشوند.