whatsapp call admin

مقاله در مورد میکروکنترلر ۸۰۵۱

word قابل ویرایش
144 صفحه
18700 تومان
187,000 ریال – خرید و دانلود

میکروکنترلر ۸۰۵۱

۱-۱ دراین بخش اتبدا به اعضای مختلف خانواده میکروکنترلر ۸۰۵۱ و ویژگی های آنها نگاه می کنیم . به علاوه خواهیم دید که سازندگان ۸۰۵۱ چه کسانی هستندوچه نوع محصولی ارائه می دهند .
تاریخچه مختصری از ۸۰۵۱

درسال ۱۹۸۱ شرکت Intel میکروکنترلربه نام ۸۰۵۱ را معرفی کرد . این میکروکنترلردارای ۱۲۸ بایت ۴k , RAM بایت ROM دو تایمر ، یک پورت سریال وچهار پورت موازی ( هریک ۸ بیت ) بود که همه آنها دریک تراشه تعبیه شده بودند . زمانی به آن سیستم در یک تراشه می گفتند . ۸۰۵۱ یک پروسسور ۸ بیت است ، یعنی CPU هر بار می تواند فقط روی ۸بیت داده کار کند . داده های

بزرگتر از ۸ بیت باید به قطعات ۸ بیت بشکنند وسپس بوسیلهCPU پردازش شوند . ۸۰۵۱ کلا دارای چهار پورت I/O با عرض ۸ بیت است . شکل ۲-۱ را ملاحظه کنید گرچه ۸۰۵۱ می تواندحداکثر ۶۴K حافظه ROM درتراشه داشته باشد ، بسیاری از سازندگان فقط ۴K بایت را درتراشه کار گذاشته اند .این مطلب بعدا بطور مفصل بحث شده است .
پس از آنکه Intel بشرط حفظ سازگاری با ۸۰۵۱ اجازه تولید را به دیگر سازندگان داد تراشه مذکور بسیار مورد توجه قرار گرفت .این توافق منجر به تولید انواع ۸۰۵۱ با سرعت های متفاوت مقداری ROM در تراشه بوسیله نیم دو جین سازنده شد . ما بعضی از آنها را بعدا بررسی خواهیم کرد . آنچه اهمیت دارداین است که گرچه انواع مختلف ۸۰۵۱ با سرعت ومقدار ROM متفاوت در تراشه موجودند ولی همه آنها با ۸۰۵۱ اصلی از نظر دستورات سازگارند . این بدان معنی است که اگرشما برنامه ای برای یکی بنویسید ، مستقل از سازنده روی دیگری هم قابل اجرا ست .
میکروکنترلر ۸۰۵۱
۸۰۵۱ عضواصلی خانواده ۸۰۵۱ است Intel آن را MCS-51 می نامد . جدول ۱-۱ امکانات اصلی ۸۰۵۱ را نشان می دهد .
جدول ۱-۱ امکانات ۸۰۵۱
Quantity Feature

۴K bytes ROM
128 bytes RAM
2 Timer
32 I/O Pins
1 Serial port

۶ Interrupt sources

توجه : مقدار ROM د رتراشه حجم برنامه را نشان می دهد .
دیگر اعضای خانواده ۸۰۵۱
دو عضو دیگر از میکروکنترلهای خانواده ۸۰۵۱ با نام ۸۰۵۲ و ۸۰۳۱ نیز وجود دارند .
میکروکنترلر ۸۰۵۲
۸۰۵۲ عضوی دیگر از خانواده ۸۰۵۱ است این کنترلر همه امکانات ۸۰۵۱ بعلاوه ۱۲۸ بایت RAM ویک تایمر اضافی را دارد به بیان دیگر ، ۸۰۵۲ دارای ۲۵۶ بایت RAM و ۳تایمر است این کنترلر بجای ۸K,4K حافظه ROM را در تراشه داراست .جدول ۲-۱ ملاحظه شود .
میکروکنترلرها و پردازنده های درونی
همانطور که از جدول ۴-۱ ملاحظه می شود ، ۸۰۵۱ زیر مجموعه ای از ۸۰۵۲ است بنابراین همه برنامه های نوشته شده برای ۸۰۵۱ قابل اجرا بر روی ۸۰۵۲ نیز هستند ولی عکس آن صحیح نیست .
میکروکنترلر ۸۰۵۳
دیگر عضو خانواده ۸۰۵۱ تراشه ۸۰۵۳ است .این تراشه اغلب بنام ۸۰۵۱ بی ROM خوانده می شود زیرا دارای OK بایت حافظه ROM است .برای استفاده از این تراشه باید یک ROM خارجی به آن اضافه کرد این ROM خارجی حاوی برنامه ای است که باید برداشته شده واجرا شود .این تراشه را با ۸۰۵۱ مقایسه کنید که در آن ROM درونی حاوی برنامه مشابهی برای برداشت و اجرا می تواند باشد ولی به ۴K بایت کد محدود است .
ROM متصل به ۸۰۳۱ می تواند تا ۶۴K باید باشد .درروند افزایش ROM خارجی به ۸۰۳۱

دو پورت را از دست می دهید .بنابراین دو پورت I/O برای کاربر باقی می ماند . برای حل این مشکل ، می توان دو I/Oخارجی به ۸۰۳۱ اضافه کرد . اتصال ۸۰۳۱ به حافظه وپورت های I/O همچون تراشه ۸۲۵۵ در فصل ۱۴ بحث شده است .همچنین انواع ۸۰۳۱ با سرعت های مختلف بوسیله کمپانی های متفاوت در دسترسند .

۸۰۳۱ ۸۰۵۲ ۸۰۵۱ Feature
OK 8K 4K ROMon –chip- program space in bytes) )

۱۲۸ ۲۵۶ ۱۲۸ RAM ( bytes)
2 3 2 Timers
32 32 32 I/O
1 1 1 Serial port
6 8 6 Interrupt sources

جدول ۲-۱ مقایسه اعضای خانواده ۸۰۵۱
فصل اول :میکروکنترلرهای ۸۰۵۱
انواع میکروکنترلر ۸۰۵۱
گرچه ۸۰۵۱ رایج ترین عضو خانواده ۸۰۵۱ است ، ولی شما قادر نخواهید بود شماره قطعه ای بصورت ۸۰۵۱ ملاحظه کنید . دلیل این است که ۸۰۵۱ با حافظه های متفاوتی چون ROM UV-EPحافظه سریع ، NV-RAM در دسترس است که هر یک شماره قطعه متفاوتی دارد . نوع ROM UV-EP خانواده ۸۰۵۱ تراشه ۸۷۵۱ است نوع ROM سریع بوسیله کمپانی های متعدد از جمله Atmel راهی بازار شده است . ۸۰۵۱ نوع سریع از Atmel است که AT89C51 خوانده می شود . نوع NV-RAM از ۸۰۵۱ بوسیلهDallas semiconductor بنام DS500 شناخته می شود .همچنین نوع OTP ( یکبار قابل برنامه ریزی ) خانواده ۸۰۵۱ بوسیله سازندگان متعددی تولید شده است اکنون هر یک از تراشه های فوق را بطور خلاصه توصیف و کاربرد آنها را بیان می کنیم .
میکرو کنترلر ۸۷۵۱
تراشه ۸۷۵۱ فقط بایت حافظه ROM UV- EPدرونی است .هنگام استفاده از این تراشه در طراحی و پیاده سازی به دستگاه برنامه نویسی ROM Pو پاک کننده برای پاک کردن ROM UV-EPدردرون ۸۷۵۱ قبل از برنامه نویسی نیاز است .باتوجه به این نکته که ROM درون این تراشه از نوع ROM UV-EPاست ،حدود ۲۰ دقیقه برای پاک کردن آن وقت لازم است تا بتوان بعد از آن عمل برنامه نویسی را انجام داد ، این مسئله موجب شد تا بسیاری از تولید کنندگان انواع سریع و NV-RAM نوع ۸۷۵۱ را که در زیر بحث شده بکار ببرند .همچنین نوع سریع ۸۷۵۱ نیز توسط تعدادی از تولید کنندگان ساخته شده است .

AT89C51 از شرکت Atmel
این تراشه ۸۰۵۱ رایج دارای ROM سریع می باشد ، در طراحی های سریع این نوع حافظه ایده ال است زیرا حافظه سریع می تواند طی چند ثانیه ،درمقایسه ۲۰ دقیقه لازم برای ۸۷۵۱ پاک شود .با این دلیل AT89C51 بجای ۸۷۵۱ بکار برده شده است .تا هنگام پاک کردن تراشه وقتی تلف نشود وبدینوسیله ساخت سیستم سریع گردد هنگام استفاده از AT89C51 برای سخت سیستم های مبتنی بر میکروکنترلر به سوزاننده یا برنامه ریز ROM سریع نیاز داریم ، بااین وجود به پاک کننده ROM نیاز نیست .توجه داشته باشید که در حافظه سریع باید تمام حافظه پاک شود تا بتوان

د مجددا آن را برنامه نویسی کرد .پاک کردن حافظه سریع با خود سوزاننده صورت میگیرد و با این دلیل پاک کننده جداگانه ای لازم نمی باشد .برای حذف سوزاننده ROM P Atmelروی نوعی از AT89C51 کار می کند که می تواند از طریق پورت سریال COM یک IBM PC برنامه ریزی شود .

جدول ۳-۱ انواع ۸۰۵۱ از Amtel
بسته بندی Vcc وقفه تایمر پایه هایI/O RAM ROM شماره قطعه
۴۰ ۵V 6 2 32 128 4K AT89C51
40 3V 6 2 32 128 4K AT89LV51
20 3V 3 1 15 64 1K AT89C1051
20 3V 6 2 15 128 2K AT89C2051
40 5V 8 3 32 128 8K AT89C52
40 3V 8 3 32 128 8K AT89LV52

توجه : C درشماره قطعه بمعنی CMOS است .
محصولات مختلفی از نظرسرعت و بسته بندی تولید شده است . جدول ۴-۱ را ببینید مثلا به AT89C51-12PCتوجه کنید که در آن C قبل از ۵۱ به معنی CMOS است بنابراین توان مصرفی کمی دارد .
جدول ۴-۱ ۸۰۵۱ با سرعت های مختلف از Amell
مورد استفاده بسته بندی پایه ها سرعت شماره قطعه
تجاری پلاستیک DIP 40 12MHz At89c51-12PC
تجاری پلاستیکDIP 40 16MHz AT89C51- 16PC
تجاری پلاستیکDIP 40 20MHz AT89C51-20PC

۱۲ به معنی P.12MHz برای پلاستیکی بودن بسته C,DIP بمعنی تجاری است که د رمقابل M به معنی نظامی بکار می رود-۱۲PC AT89C51 برای پروژه های دانشجویی مناب است .

DS5000از Dollas Semiconductor
نوع رایج دیگر از ۸۰۵۱ تراشه DS5000از Dollas Semiconductor است . ROM در DS5000 از نوعNV – RAM است قابلیت نوشتن / خواندن NV-RAM اجازه می دهد تا برنامه در ROM در حالی که روی سیستم نصب است بار شود . این کار راحتی می توان ازطریق IBM PC انجام داد . به این نوع برنامه نویسی ، بار کردن برنامه در سیستم DS5000 می گویند . که انجام آن ا زطریق پورت سریال PC آن را برای ساخت سیستم ها درخانه ایده ال می کند . مزیت دیگر NV-

RAM قابلیت تغییر یک بایت در هر بار است . این قابلیت با ROM UV- EPو حافظه سریع کار می کند ومی تواند از طریق پورت سریال COMیک IBM PC برنامه ریزی شود .
جدول ۵-۱ انواع ۸۰۵۱ از Dallas
بسته بندی Vcc وقفه ها تایمر ها پایه هایI/O RAM ROM شماره قطعه
۴۰ ۵V 6 2 32 128 8K Ds5000-8
40 5V 6 2 32 128 32K Ds5000-32
40 5V 6 2 32 128 8K DS5000T-8
40 5V 6 2 32 128 32K Ds5000t-8

 

توجه کنید که ساعت زمان واقعی با تایمر تفاوت دارد ساعت زمان واقعی ، زمان شبانه روز ( ساعت ، دقیقه ، ثانیه ،) و تاریخ ( سال ،ماه ، روز) را حتی اگر منبع تغذیه قطع شود تولید می کند .
انواع مختلفی DS5000 از نظر سرعت و بسته بندی وجوددارد که در جدول ۸-۱ نشان داده شده است . مثلا DS5000-8-8 دارای ۸K NV -RAM با سرعت ۸ MHz است .اغلب DS50008-12 یا -۸-۱۲ DS5000 برای پروژه های دانشجویی مناسب است .
جدول ۶-۱ انواع ۸۰۵۱ از Dallas
سرعت NV- RAM شماره قطعه
۸ MHz 8K DS5000-8-8
12 MHz 8K DS5000-8-12
8 MHz 32K DS5000-32-8
8 MHz (With RTC) 32K DS5000T-32-8
12 MHz 32K DS5000-32-12
12 MHz (With RTC) 8K DS5000T-8-12

نوع OTPاز ۸۰۵۱
انواع OTP از از۸۰۵۱ منابع مختلف در دسترس قرار دارد . انواع سریع و NV- RAM معمولا برای توسعه تولید بکار برده می شود . وقتی که محصولی طراحی شد وبغایت اصلاح گردید ، نوع OTP از ۸۰۵۱ برای تولید انبوه بکار برده می شود زیرا از لحاظ قیمت بسیار ارزانتر است .
خانواده ۸۰۵۱ از Philips
محصول مهم دیگری از خانواده ۸۰۵۱ بوسیله شرکت Philips ارائه شده است این شرکت از نظر نوع ، بیشترین تولید میکروکنترلر را دارد . بسیاری از محصولات آن شامل امکاناتی مثل تبدیل I/O , D-A ,A-D توسعه یافته وهر دونوع OTP و حافظه سریع است .

این فصل پایه های ۸۰۵۱ را توصیف کرده وسپس برنامه نویسی پورتI/O را همراه با مثال هایی ، در ۸۰۵۱ نشان می دهد .
۲-۱ توصیف پایه های ۸۰۵۱
گرچه اعضاء خانواده ۸۰۵۱ ( مثل DS5000,89C51) دربسته های متفاوتی مثلLCC , QFP ,DIP عرضه شده اند ، همه آنها برای انواع توابع مانند WR, RD , I/O آدرس داده ووقف

ه تدارک دیده شده اند . باید متذکر شد که بعضی کمپانی ها نوع ۲۰ پایه ۸۰۵۱ راباکاهش پورت های I/O دررابطه باکاربردها کم تقاضا ، تولید کرده اند با این وجود ، چون عمده۰ تولید کنندگان از تراشه های DIP با ۴۰ پایه استفاده می کنند ، مابر آنها تاکید خواهیم کرد .
با بررسی شکل ۱-۱- دیده می شود که از ۴۰ پایه جمعا ۳۲ پایه چهارپورت P3,P2,P1,P0 کنار گذاشته شده اند .بقیه پایه ها به PSEN, EA, RST , XTAL2 , XTAL1 , GND , Vcc اختصاص یافته اند .
شش پایه ( EA , RST , XTAL2, XTAL1, GND , Vcc ازهشت پایه فوق بوسیله همه اعضاء خانواده ۸۰۳۱,۸۰۵۱ بکار رفته اند . به بیان دیگر ، بدون توجه به اینکه از خانواده ۸۰۵۱ یا ۸۰۳۱ هستند ، آنها باید برای بکار اندازی سیستم وصل شوند دو پایه دیگر ALE, PSENدراصل در سیستم های مبتنی بر ۸۰۳۱ بکار می روند . ابتدا وظیفه هرپایه را توصیف می کنیم .پورت ها بطور جداگانه مورد بحث قرار گرفته اند .

Vcc
پایه ۴۰ ولتاژ تغذیه را برای تراشه فراهم می کند ولتاژ منبع SV است .
GND
پایه ۲۰ زمین است .
XTAL2,XTAL1
8051 دارای یک اسیلاتور ( نوسان ساز ) درون تراشه ای است ولی برا ی راندن آن به یک ساعت کریستال نیاز است . اغلب یک اسیلاتور کریستال کوارتز به ورودی های XTAL1 ( پایه ۱۹( و XTAL2 ( پایه ۱۸) وصل است . اسلاتور کریستال کوارتز متصل و XTAL2,XTAL1 به دو خازن ۳۰PF وصل می باشد . یک طرف هر یک از خازن ها مثل شکل ۲-۱ ( الف ) به زمین وصل است .
باید توجه کرد که سرعت های مختلفی در خانواده ۸۰۵۱ وجود دارد . غرض ا

ز سرعت حداکثر ، فرکانس متصل به XTALاست .مثلا یک تراشه ۱۲MHz باید به فرکانس ۱۲MHz یا کمتر وصل شود. بهمین ترتیب یک میکروکنترلر ۲۰MHz نباید به فرکانسی بیش از ۲۰MHz وصل شود . وقتی که ۸۰۵۱ به اسیلاتور کریستال وصل می شود ومنبع تغذیه روشن می گردد ،می توانیم با استفاده از اسیلو سکپ فرکانس را روی XTAL2 ملاحظه کنیم .
اگر می خواهید از منبع فرکانسی بجز اسیلاتور کریستال ، مثل اسیلاتور TTL استفاده نمایید ، باید آن را به XTAL1وصل کنید ودر این حال ۲ XTALطبق شکل ۲-۱ (ب) رها می شود .
RST
پایه ۹ پایه RESET( باز نشانی ) است .این پایه یک ورودی فعال بالاست . بعد از

اعمال یک پالس بالا به این پایه ، میکرو کنترلر باز نشانده شده وهمه فعالیت ها را رها می کند اغلب به این حالت ،باز نشانی به هنگام روشن شدن می گویند . فعال کردن یک باز نشانی به هنگام روشن شدن ، موجب از دست رفتن همه مقادیر در ثبات ها می شود جدول ۷-۱ لیست غیر کاملی از ثبات های ۸۰۵۱ و مقادیر آن ها را پس از باز نشانی به هنگام روشن شدن نشان می دهد .
جدول ۷-۱ مقدار RESET بعضی از ثبات های ۸۰۵۱
مقدار باز نشان ثبات
۰۰۰۰ P
0000 ACC
0000 B
0000 PSW
0007 SP
0000 DPTR

در ROM واداشته می شود . این بدان معنی است که ما باید اولین خط که مبدا را درمکان ۰ از ROM قرار می دهیم زیر آنجا مکانی است که CPU در آن بیدار می شود وانتظار دارد تا اولین دستور را بیابد .
به منظور کاراتر کردن ورودیRESET باید دارای حداقل دوره ۲ سیکل ماشینی باشد . به بیان دیگر ، پالس باید برای حداقل ۲ سیکل ماشین قبل از پائین رفتن ، در سطح بالا بماند .
در ۸۰۵۱ بک سیکل ماشین با ۱۲ پریود اسیلاتور تعریف می شود .
EA

اعضاء خانواده ۸۰۵۱ مانند ۸۷۵۱ ۸۹C51 یا DS5000 همگی با ROM درتراشه برای ذخیره برنامه ارائه می شوند.در این حالت ، پایه EA به Vcc وصل گردد . برای خانواده ۸۰۳۲,۸۰۳۱ که درآنها ROM وجود ندارد ، کد در ROM بیرونی ذخیره می شود وسپس بوسیله ۸۰۳۱/۳۲ بداخل کشیده خواهد شد . بنابراین برای ۸۰۳۱ پایهEA باید به GND متصل گردد تا ذخیره شدن کد درخارج تراشه مشخص شود . EA که به معنی دستیابی بیرونی است ، پایه شماره ۳۱ دربسته DIPمیباشد . این یک پایه ورودی است و باید به Vcc یا GND وصل گردد .به بیان

دیگر ، نمی توان آن را آزاد رها کرد .
درفصل ۱۴ خواهیم دید که ۸۰۳۱ این پایه را به همراه PSEN برای دستیابی به برنامه های ذخیره شده در حافظه ROM واقع در خارج ۸۰۳۱ بکار می برد . در ۸۰۵۱ با ROM درتراشه مانند ۸۹C51,8751 یا DS5000 EAبه Vcc وصل شده که ما آن را در بخش بعد خواهیم دید .
پایه هایی که تاکنون بحث شدند بدون توجه به نوع خانواده ، باید متصل شوند دو پایه بعد عمدتا در سیستم های مبتنی بر خانواده ۸۰۳۱ بکار می روند .
PSEN
این یک پایه خروجی است PSEN به معنی فعال کردن برنامه ذخیره است .دریک سیستم مبتنی بر ۸۰۳۱ که در آن ROM بیرونی کد برنامه را نگه دارد ، این پایه متصل به پایه OE از ROM است فصل ۱۴را ملاحظه کنید .
ALE
ALE ( فعال ساز لچ آدرس ) یک پایه خروجی فعال بالاست . وقتی که ۸۰۳۱ به یک حافظه بیرونی وصل می شود ، پورت ۰ هر دو مقدار داده و آدرس را تهیه می کند به بیان دیگر ، ۸۰۳۱ آدرس و داده را از طریق پورت ۰ مولتی پلکس می نماید تا بدین ترتیب در مصرف پایه ها صرفه جویی شود پایه ALE برای دی مولتی پلکس کردن آدرس و داده بکار می رود ودر آن پایه G از ترا شه۷۴LS373 به ALE وصل می گردد .این مطلب در فصل ۱۴ تشریح شده است .
پایه های پورت I/O وعملکرد آن ها
چهار پورت P3,P2,P1,P0 هر کدام ۸ پایه را بکار می برند تا پورت ها را ۸ بیتی سازند . همه پورت ها پس از RESET بصورت خروجی در می آیند و آماده استفاده به عنوان خروجی هستند .برای استفاده از هر یک از این پورت ها به عنوان ورودی ، باید آنها را برنامه ریزی کرد این عمل در طول این بخش توضیح داده خواهد شد .
ابتدا هر پورت را تشریح می کنیم .
پورت ۰
پورت ۰ جمعا ۸ پایه ( ۳۲-۳۹) را اشغال می کند . می توان از آن به عنوان ورودی یاخروجی استفاده کرد . برای استفاده از پایه های پورت ۰ به عنوان ورودی وخروجی ، هر پایه باید از بیرون به یک مقاومت بالا کش وصل شود .دلیل این است که پورت P0 برخلاف پورت های P3,P2,P1 یک درین باز است دراین باز جمله ای است که برای تراشه های MOS بکار برده می شود وشبیه کلکتور باز در تراشه های TTL است . در هر سیستم هنگام استفاده از۸۹C51 , 8751 یا DS5000 معمولا P0 را به مقاومت های بالاکش وصل می کنیم .
باین ترتیب از مزیت پورت ۰ برای هر دو نوع ارتباط ورودی و خروجی استفاده می شورت خروجی آرایش می یابد .
پورت ۰ به عنوان ورودی
با مقاومت های متصل به پورت ۰ برای اینکه آن را به ورودی تبدیل کنیم ، پورت باید با نوشتن تمام ۱ برنامه ریزی شود .در کد زیر پورت ۰ ابتدا با نوشتن ۱ ها بصورت ورودی آرایش می یابد و سپس داده از آن پورت دریافت وبه P1 ارسال گردد .
MOV A#OFFH .A= FF hex
MOV P0.A .Make p0 an input port
By writing all ls to it
BACK : MOV A. P0 get data from p0
MOV P1 a send it to port 1
SJMP BACK keep doing it
نقش دوگانه پورت ۰
همانطور که در شکل ۱-۱- دیده شد ، پورت ۰ بصورت AD0-AD7 نشان داده شده و با این معنی است که قابل استفاده به عنوان ورودی و خروجی است وقتی که ۸۰۵۱/۳۱ به یک حافظه بیرونی متصل می شود .پورت ۰ هردو مقدار آدرس وداده را فراهم می کند ۸۰۵۱ داده و آدرس را از طریق پورت ۰ مولتی پلکسی می نماید تا در پایه ها صرفه جویی شود ALEداده یا آدرس بدون اطلاعات درP0 را مشخص می نماید ، وقتی ALE=0 باشد D0-D7 داده را فراهم می کند ،ولی اگرALE=1 باشد ، آدرس A0-A7 در دسترس است . بنابراین ALE به کمک لچ ۷۴

ls373 آدرس و داده را دی مولتی پلکس می نماید .
پورت ۱
پورت ۱ جمعا ۸ پایه ( پایه های ۱ تا ۸) رااشغال می کندمی توان از آن به عنوان ورودی یاخروجی استفاده کرد . برخلاف پورت ۰ این پورت نیازی به مقاومت های بالاکش ندارد زیرا دارای مقاومت بالاکش درونی است .
پورت ۱ به عنوان ورودی
برای اینکه ۱ ورودی شود ، بایددرهمه بیت های آن تمام ۱ نوشت .

پورت ۲
پورت ۲ جمعا ۸ پایه ( از پایه ۲۱ تا ۲۹ ) را اشغال کرده است می توان آن را به عنوان ورودی یا خروجی برنامه ریزی کرد . همچون p2,p1 هم به مقاومت های بالاکش نیازی ندارند زیرا دارای مقاومت های بالاکش درونی اند بعد از بازنشانی ، پورت ۲ بصورت پورت خروجی در می آید .

پورت ۲ به عنوان ورودی
برای ورودی ساختن پورت ۲ باید در آن تمام ۱ نوشته شود .

نقش دوگانه پورت ۲
درسیستم های مبتنی بر p2,DS5000,89C51, 8751 به عنوان یکI/O ساده بکار رفته است با این وجود در سیستم های مبتنی بر ۸۰۳۱ پورت ۲ باید همراه با P0 مورد استفاده قرا رمی گیرد تا آدرسی ۱۶ بیتی را برای حافظه بیرونی فراهم سازد .پورت ۲ به عنوان A8-A15 نیز به درنظر گرفته می شود . با این ترتیب این پورت نقشی دوگانه دارد . چون ۸۰۳۱ قادراست تا ۶۴K بایت از حافظه بیرونی را آدرس دهی کند ، مسیری برای ۶ بیت آدرس نیاز دارد . درحالی که P0 هشت بیت پائین ربته را از طریق A0-A7 تهیه می کند ، فراهم نمودن آدرس های A8-A15 بعهده P2 است .به بیان دیگر ، وقتی ۸۰۳۱ به حافظه بیرونی وصل است ،P2 برای ۸ بیت بالاتر آدرس ۱۶ بیتی بکار رفته است .ونمی تواند برای I/Oبکار رود .
از بحث فوق ،نتیجه می گیریم که در سیستم های مبتنی بر۸۹C51 یا DS5000 سه پورت P2,P1,P0 را برای عملیات I/O در اختیار داریم .این مقدار ورودی – خروجی برای بسیاری از میکروکنترلرها کفایت می کند همانطور که در زیر خواهیم دید پورت ۳ برای وقفه ها ودیگر سیگنال ها کنا رگذاشته شده است.
پورت ۳

پورت ۳ هم ۸ پایه ، از پایه ۱۰ الی ۱۷ را اشغال می کند .می توان آن را به عنوان ورودی وخروجی بکار برد .P3 همچون P2,P1 نیازی به مقاومت های بالاکش را ندارد .گرچه پورت ۳ پس از باز نشانی بصورت پورت خروجی درمی آید ، ولی این ، یک طریق معمولی در استفاده از آن نیست .پورت دارای توانمندی اضافی دیگری در تهیه بعضی از سیگنال های مهم خارجی

مثل وقفه هاست .
این اطلاعات به هر دو تراشه ۸۰۳۱,۸۰۵۱ اختصاص دارد .
پایه P3.1,P3.0 برای تبادل سیگنال اطلاعات TxD , RxD بکار می رود .
بیت P3.3, P3.2 برای وقفه های خارجی کنار گذاشته شده اند .بیت P3.5, P3.4 برای تایمرهای ۱,۰ درنظر گرفته شده اند نهایتا P3.7, P3.6 برای تهیه سیگنال های RD,WR از حافظه خارجی د ر سیستم های مبتنی ۸۰۳۱ کنار گذاشته شده اند .
در سیستم های مبتنی بر ۸۹C51,8751 یا DS5000 پایه های P3.7,P3.6, برای I/O بکار رفته اند و بقیه پایه ها در پورت ۳ برای نقش دیگرشان در نظر گرفته شده اند .

برنامه ریزی I/O دستکاری بیتی
در این بخش ما دستورات I/O را در ۸۰۵۱ مورد بررسی بیشتر قرار می دهیم .همچنین به دستکاری I/O بیتی توجه خاصی خواهد شد . زیرا این از امکانات بالقوه ومورد توجه ۸۰۵۱ است بحث مفصلی از پورت های I/O در ۸۰۵۱ در پیوست ۲- ( پ ) آمده است .
روش های مختلف دستیابی به تمام ۸ بیت
در کد زیر ، همچون مثال های قبلی ، I/O همه هشت بیت پورت ۱ دستیابی می شود .
BACK: MOV A.# 55H
MOV P1. A
ACALL DELAY
MOV A.# 0AAH
MOV P1. A
ACALL DELAY

SJMP BACKعی برنامه فوق را قبلا دیده ایم اکنون می توانیم کد فوق را بصورت کاراتر نوشته و با دستیابی مستقیم پورت از مراجعه به انباره خودداری نمائیم .
این نکته در زیر نشان داده شده است .
BACK: MOV P1.# 55H
ACALL DELAY
MOV P1.# 0AAH
ACALL DELAY
SJMP BACK
می توانیم کد فوق را باتکنیکی بنام خواندن –اصلاح – نوشتن بنوعی دیگر بنویسیم این روش در زیر آمده است

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید
word قابل ویرایش - قیمت 18700 تومان در 144 صفحه
187,000 ریال – خرید و دانلود
سایر مقالات موجود در این موضوع
دیدگاه خود را مطرح فرمایید . وظیفه ماست که به سوالات شما پاسخ دهیم

پاسخ دیدگاه شما ایمیل خواهد شد