زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت آخرین مقالات مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم

معماری خانواده MCS-51 تا حد زیادی با هدف آن از پیش تعیین شده است - ساختمان فشرده - جمع و جور و ارزان دستگاه های دیجیتال تمام کارکردهای یک میکرو کامپیوتر با یک ریزگرد واحد انجام می شود. خانواده MCS-51 طیف وسیعی از ریزگردها را از ساده ترین میکروکنترلرها تا پیچیده ترین آنها شامل می شوند. میکروکنترلرهای خانواده MCS-51 به شما امکان می دهند هر دو کار کنترل را برای دستگاه های مختلف انجام دهید و گره های فردی یک مدار آنالوگ را پیاده سازی کنید. تمام ریزگردهای این خانواده با همان کار می کنند سیستم فرمان MCS-51 ، اکثر آنها در موارد مشابه با انجام می شوند تطابق دقیق (شماره پاها برای بدن). این امکان استفاده از ریزتراشه های شرکت های مختلف را برای دستگاه توسعه یافته - Maxim ، Atmel ، NXP و غیره فراهم می کند. (کاتالوگ..php؟ page \u003d کامپوننت_ لیست و شناسه \u003d 39 "\u003e جستجو را با پارامترها ببینید) بدون تغییر نمودار شماتیک دستگاه و برنامه.

شکل 1. نمودار بلوک کنترلر I8751

نمودار بلوک کنترلر در شکل 1 نشان داده شده است و شامل واحدهای اصلی زیر است: واحد کنترل ، واحد منطق حسابی ، واحد تایمر / پیشخوان ، رابط سریال و واحد قطع ، پیشخوان برنامه ، حافظه داده و حافظه برنامه. ارتباط دو طرفه با استفاده از بزرگراه داده 8 بیتی داخلی انجام می شود.

بیایید نگاهی دقیق تر به هدف هر بلوک بیندازیم. تقریباً تمام نمایندگان خانواده MCS-51 طبق این طرح ساخته شده اند.... ریزگردهای مختلف این خانواده فقط در ثبت های مخصوص (از جمله تعداد درگاه ها) متفاوت است. فرمان برای همه کنترل کننده های خانواده MCS-51 تنظیم شده است شامل 111 دستور اساسی با فرمت 1 ، 2 یا 3 بایت است و در هنگام جابجایی از یک میکروسیرسیری به دیگری تغییر نمی کند. این قابلیت حمل عالی برنامه ها از یک ریزگرد به دیگری را فراهم می کند.

واحد کنترل و هماهنگ سازی

واحد زمان بندی و کنترل به منظور تولید سیگنال های هماهنگ و کنترل طراحی شده است که از هماهنگی عملکرد مشترک واحدهای OEVM در کلیه حالت های مجاز عملکرد آن اطمینان حاصل می کند.

  • - دستگاهی برای تشکیل فواصل زمانی ،
  • - منطق I / O ،
  • - ثبت فرمان ،
  • - ثبت کنترل مصرف برق ،
  • - رمزگشایی فرمان ، منطق کنترل رایانه.

دستگاه شکل گیری شکاف زمان برای شکل گیری و صدور سیگنال های همگام سازی فاز داخلی ، ساعت و چرخه در نظر گرفته شده است. تعداد چرخه دستگاه مدت زمان اجرای دستورالعمل را تعیین می کند. تقریباً تمام دستورات OEVM در یک یا دو چرخه دستگاه اجرا می شوند ، بجز دستورات ضرب و تقسیم ، مدت زمان آن چهار چرخه ماشین است. بیایید فرکانس نوسان ساز اصلی را توسط F g تعیین کنیم سپس مدت زمان چرخه دستگاه برابر با 12 / F g یا 12 دوره سیگنال نوسان ساز اصلی است. منطق ورودی-خروجی برای دریافت و صدور سیگنالهایی طراحی شده است که از طریق پورت های ورودی / خروجی P0-P3 تبادل اطلاعات با دستگاه های خارجی را فراهم می کنند.

ثبت سفارش برای ضبط و ذخیره کد عملیاتی 8 بیتی فرمان در حال اجرا در نظر گرفته شده است. کد عملیات به کمک رمزگشایی فرمان و منطق کنترل کامپیوتر ، برای اجرای دستور به میکروگرام تبدیل می شود.

ثبت کنترل مصرف (PCON) به شما امکان می دهد تا میکروکنترلر را متوقف کنید تا میزان مصرف برق کاهش یابد و میزان نویز میکروکنترلر کاهش یابد. با متوقف کردن اسیلاتور اصلی میکروکنترلر می توان کاهش بیشتر مصرف برق و کاهش نویز را بدست آورد. این می تواند با چرخاندن کمی در ثبت نام کنترل مصرف PCON حاصل شود. برای نوع n-MOS (سری 1816 یا تراشه های خارجی که "c" در وسط آنها وجود ندارد) ، ثبت نام کنترل مصرف PCON تنها یک بیت دارد که میزان سرعت درگاه سریال SMOD را کنترل می کند ، و هیچ بیتی برای کنترل قدرت وجود ندارد.

واحد منطق حسابی (ALU) یک دستگاه موازی هشت بیتی است که عملیات حسابی و منطقی را ارائه می دهد. ALU متشکل از:

  • - ثبات های ثبت شده ، نگه داشتن ثبت های TMP1 و TMP2 ،
  • - ثابت رام ،
  • - افزودنی ،
  • - ثبت نام اضافی (ثبت B) ،
  • - باتری (ACC) ،
  • - ثبت وضعیت برنامه (PSW).

ثبت نام باتری و ثبت نام ها - رجیسترهای هشت بیتی که هنگام انجام عملیات بر روی آنها ، در نظر گرفته شده برای دریافت و ذخیره کردن اپراتورها هستند. این ثبات ها از لحاظ برنامه ای در دسترس نیستند.

ثابت رام تولید یک کد تصحیح برای نمایش داده های دو رقمی اعشاری ، یک کد ماسک برای عملیات بیت و یک کد ثابت.

موازی اضافه کننده هشت بیتی یک مدار ترکیبی با حمل پی در پی ، طراحی شده برای انجام عملیات حسابی علاوه بر این ، تفریق و عملیات منطقی علاوه بر این ، ضرب ، نابرابر و یکسان است.

ثبت ب - یک رجیستر هشت بیتی که در طول عملیات ضرب و تقسیم استفاده می شود. برای دستورالعمل های دیگر ، می توان آن را به عنوان یک ثبت فوق العاده فوق العاده اضافی مشاهده کرد.

باتری - یک رجیستر هشت بیتی که برای دریافت و ذخیره نتیجه به دست آمده هنگام انجام عملیات حسابی- منطقی یا عملیات تغییر جهت طراحی شده است

رابط سریال و واحد قطع (PIP) برای سازماندهی ورودی-خروجی جریان های اطلاعات پی در پی و سازماندهی یک سیستم قطع برنامه در نظر گرفته شده است. این بلوک شامل موارد زیر است:

  1. - بافر PIP ،
  2. - منطق کنترل ،
  3. - ثبت کنترل ،
  4. - بافر فرستنده ،
  5. - بافر گیرنده ،
  6. - فرستنده پورت سریال ،
  7. - ثبت اولویت را قطع کنید ،
  8. - ثبت نام را فعال کنید ،
  9. - منطق پردازش پرچمهای قطع و یک مدار تولید بردار.

شمارنده برنامه به منظور تولید آدرس 16 بیتی فعلی حافظه برنامه داخلی و آدرس 8/16 بیتی حافظه برنامه خارجی طراحی شده است. پیشخوان دستورالعمل شامل یک بافر PC 16 بیتی ، یک رجیستری کامپیوتر و یک مدار افزایشی (افزایش محتوای توسط 1).

حافظه داده (RAM) برای ذخیره موقت اطلاعات مورد استفاده در فرایند اجرای برنامه در نظر گرفته شده است.

پورت های P0 ، P1 ، P2 ، P3 پورت های ورودی و خروجی شبه دو طرفه هستند و برای اطمینان از تبادل اطلاعات بین OECM و دستگاه های خارجی طراحی شده اند و 32 خط ورودی - خروجی را تشکیل می دهند.

دستگاه تایمر مدل های اصلی خانواده دارای دو تایمر / پیشخوان 16 بیتی قابل برنامه ریزی (T / C0 و T / C1) هستند که می توانند هم به عنوان تایمر و هم به عنوان پیشخوان رویدادهای خارجی استفاده شوند.

ثبت وضعیت برنامه (PSW) در نظر گرفته شده برای ذخیره اطلاعات در مورد وضعیت ALU هنگام اجرای برنامه.

حافظه برنامه (EPROM) برای ذخیره برنامه ها در نظر گرفته شده است و یک حافظه فقط خواندنی (ROM) است. ریزگردهای مختلف از رامهای نقاب دار استفاده می کنند ، که توسط اشعه ماوراء بنفش پاک می شوند یا فلاش رام

ثبت اطلاعات نشانگر داده ها (DPTR) در نظر گرفته شده است که یک آدرس 16 بیتی حافظه داده خارجی یا حافظه برنامه را ذخیره کند.

نشانگر Stack (SP) یک رجیستر هشت بیتی است که به منظور سازماندهی یک منطقه خاص از حافظه داده (پشته) طراحی شده است ، که در آن می توانید هر سلول حافظه را بطور موقت ذخیره کنید.



اطلاعات اولیه MCS-51 مختصر اطلاعات. میکروکنترلرهای 8 بیتی مدرن (MC) دارای چنین منابع کنترل در زمان واقعی هستند ، که قبلاً با استفاده از چیدمان های چندشویه گران قیمت به شکل تخته های میکرو رایانه جداگانه بدست آمده بودند ، یعنی:

● از حافظه کافی ، تقسیم بدنی و منطقی آن به حافظه برنامه و حافظه داده (معماری هاروارد) و یک سیستم فرمان متمرکز بر اجرای الگوریتم های کنترل استفاده کنید.

● شامل کلیه دستگاه ها (پردازنده ، ROM ، RAM ، پورت های I / O ، سیستم قطع شدن ، امکانات پردازش اطلاعات بیت و غیره) برای اجرای یک سیستم کنترل ریز پردازنده با حداقل تنظیمات می باشد. در دهه 70 قرن گذشته ، این شرکت اینتل تولید صنعتی یک خانواده از میکروکنترلرهای 8 بیتی MCS-48 ، که توسط تعدادی از ویژگیهای مشترک (عمق بیت ، سیستم فرمان ، مجموعه ای از بلوکهای کارکردی اساسی و غیره) متحد شده است ، توسعه و تسلط یافت. نسخه اصلی این خانواده شامل موارد زیر است:

process پردازنده 8 بیتی.

memory حافظه برنامه داخلی (بایت 1/2 / 4K)؛

memory حافظه داده داخلی (64/128/256 بایت)؛

27 حداکثر 27 خط داخلی و 16 خط I / O خارجی.

● یک پیشخوان تایمر 8 بیتی.

system سیستم قطع یک سطح با دو منبع درخواست. در سال 1980 ، همین شرکت یک خانواده جدید از میکروکنترلرهای 8 بیتی MCS-51 ایجاد کرد ، که با معماری خانواده MCS-48 سازگار است ، اما از قابلیت های بیشتری برخوردار است.

معماری خانواده MCS-51 چنان موفقیت آمیز بود که همچنان یکی از استانداردهای MCU های 8 بیتی است. بنابراین ، MC از این خانواده ، که در سیستم های کنترل نسبتاً ساده رواج یافته است ، به عنوان هدف مطالعه انتخاب شدند.

برای خانواده MCS-51 ، ابزارهای مختلفی برای تهیه برنامه (کامپایلرها ، شبیه سازهای سخت افزاری - نرم افزاری و ...) تهیه شده است و تعداد زیادی کتابخانه فرعی استاندارد وجود دارد. این خانواده شامل تغییرات مختلفی از ریزتراشه ها (نسخه های بلوری) میکروکنترلرها است. در مقاله های این بخش ، نسخه اصلی میکروکنترلرهای خانواده MCS-51 با جزئیات کافی در نظر گرفته شده است (میکروسکوپ 8051 مطابق با آنالوگ داخلی KP1816BE51 است) که از نظر ساختاری و کاربردی و از نظر درک ساده ترین است.

سری های بعدی ریزساخته ها ، ضمن اینکه سازگاری با نسخه اصلی را دارند ، در فن آوری پیشرفته تولید ، پارامترهای برقی ، سخت افزار اضافی و قابلیت های مختلف با آن تفاوت دارند. مقالات زیر به ویژگی های ساختاری و عملکردی اصلاحات بعدی ریزساخته های خانواده MCS-51 اختصاص یافته است.
نمودار بلوک عمومی از MCS-51. MC ، نمودار بلوک عمومی در شکل نشان داده شده است. 7.1.1 شامل موارد زیر است:

processing واحد پردازش مرکزی 8 بیتی (CPU) متشکل از ALUدستگاه های کنترل یو و ژنراتور آدرس ف;

● ماسک ROM با ظرفیت 4K بایت برای ذخیره سازی برنامه ها.

● RAM با ظرفیت 128 بایت برای ذخیره سازی داده ها.

● چهار درگاه قابل برنامه ریزی Р0 - Р3 برای ورودی و خروجی اطلاعات.

● بلوک رابط سریال BPI برای تبادل اطلاعات با دستگاه های خارجی از طریق یک خط دو سیم.

● بلوک تایمر / پیشخوان BT / C برای حفظ حالت زمان واقعی.

● بلوک قطع BP برای سازماندهی وقفه های برنامه های اجرایی. این وجوه تشکیل می شود ساکنبخشی از میکروکنترلر که مستقیماً روی تراشه قرار می گیرد. MC شامل تعداد زیادی از ثبات ها است که به بلوک های کاربردی جداگانه اختصاص داده شده و در نمودار نشان داده نمی شوند.

نمودار همچنین مدارهای کنترل را نشان نمی دهد. تبادل اطلاعات دو طرفه بین بلوک ها از طریق یک 8 بیتی داخلی انجام می شود اتوبوس دادهШД-8.

داخلی 16 بیتی آدرس اتوبوسSHA-16 آدرس تشکیل شده در CPU در ROM (12 بیت آدرس) و در RAM (8 حداقل بیت قابل توجه) نمایش داده می شود.

در هنگام استفاده از حافظه خارجی ، 8 بیت مهم آدرس از پورت P0 و 3 یا 8 بیت مهم در بندر P2 استفاده می شود.

برای گسترش منطقی رابط ، ترکیبی از توابع خط پورت استفاده می شود. به عنوان نمونه ، شکل. 7.1.1 خط نقطه دار خطوط پورت P3 را نشان می دهد جایگزینتوابع انتقال سیگنالهای کنترلی ، که هدف آنها در زیر مورد بحث قرار خواهد گرفت. برای ایجاد یک ژنراتور داخلی ساعت ، یک تشدید کننده کوارتز و دو خازن به پایانه های میکروسکوپ MK متصل می شوند (شکل 7.1.1). به جای ساعت داخلی می توان از اسیلاتور خارجی برای هماهنگ سازی استفاده کرد. تعیین گرافیکی معمولی میکروسکوپ MK در شکل نشان داده شده است. 2 ، تعیین و هدف از نتیجه گیری - در جدول. 7.1.1. بلوک های کاربردی MK و اصل عملکرد آنها را در نظر بگیرید. واحد حسابی- منطقی. واحد حسگري-منطقي براي انجام حسگري (شامل ضرب و تقسيم) و عمليات منطقي بر روي عملگرهاي هشت بيتي و همچنين عمليات تغيير منطقي ، صفر كردن ، تنظيم و غيره طراحي شده است. 7.1.3.

ALU را شامل می شود

● موازی هشت بیتی افزودنیSM از نوع ترکیبی با انتقال پی در پی ، انجام حسابی (جمع و تفریق) و عملیات منطقی (علاوه بر این ، ضرب ، نابرابر و یکسان).

باتری A ، ارائه کارکردهای ثبت اصلی حسابی.

ثبت نامب ، برای اجرای عملیات ضرب و تقسیم یا به عنوان یک رجیستری فوق العاده اضافی که کارکردهای آن توسط کاربر تعریف شده است ، استفاده می شود.

ثبت(به صورت برنامه ای در دسترس نیست) ذخیرهسازی موقتРВХ1 ، РВХ2 ، در نظر گرفته شده برای دریافت و ذخیره کردن اپراتورها برای مدت زمان اجرای عملیات.

رام ثابت هاROMK ، ذخیره کردن یک کد تصحیح برای نمایش داده های باینری-اعشاری ، یک کد ماسک برای عملیات بیت و یک کد ثابت.

ثبت نام کلمه وضعیت برنامهPSW ، که وضعیت ALU را بعد از انجام عمل برطرف می کند. جدول 7.1.2 اطلاعات مربوط به تعیین تکالیف بیت های شخصی ثبت PSW را ارائه می دهد. دستگاه کنترل واحد کنترل پردازنده مرکزی (CU) مورد نظربرای هماهنگی کار مشترک همه گره های MK با استفاده از پالس های همگام تولید شده و سیگنال های کنترل. این شامل (شکل 7.1.4):

واحد هماهنگ سازی و کنترلUSU که پالس های همگام سازی را تنظیم می کند که چرخه های دستگاه و حالت های فردی آنها (S) و مراحل (P) آنها را تنظیم می کند و بسته به حالت عملکرد MC ، مجموعه ای از سیگنال های کنترلی را تولید می کند. یک ، دو یا چهار چرخه ماشین برای اجرای فرمان اختصاص داده شده است.

هر چرخه دستگاه دارای شش ایالتS1 - S6 ، A هر ایالت را شامل می شود دو مرحلهP1 ، P2 ، مدت زمان آن دوره نوسان ژنراتور ساعت T 0SC است.

مدت زمان چرخه دستگاه 12T 0SC است. تمام چرخه های دستگاه یکسان هستند ، از مرحله S1P1 شروع می شود و با فاز S6P2 پایان می یابد.

علاوه بر پالس های همگام سازی ، دستگاه همگام سازی در هر چرخه دستگاه ، دو علامت بارق (گاهی اوقات یک) از بایت پایین آدرس ALE را به صورت پالس مثبت در فازهای S1P2 - S2P1 و S4P2 - S5P1 تولید می کند. نمودار زمان بندی در شکل. 7.1.5 سازماندهی چرخه ماشین را نشان می دهد.

● ثبت دستورات RK ، رمزگشایی فرمانDC و PLM ، اجازه می دهد تا در هر چرخه دستگاه مجموعه ای از عملیات خرد را مطابق با میکروگرم برنامه ای که اجرا می شود تشکیل دهند.

● منطق I / O LVV برای دریافت و صدور سیگنال هایی که MC را با دستگاه های خارجی از طریق درگاه های P0-P3 تبادل اطلاعات فراهم می کند.

PC یک PCON با یک بیت SMOD فعال در موقعیت PCON.7 ثبت کنید تا میزان baud پورت سریال را دو برابر کنید. بقیه بیت ها برای استفاده بعدی محفوظ است.
تولیدکننده آدرس ژنراتور آدرس (FA) یا پیشخوان رایانه شخصی ، مورد نظربرای ایجاد آدرس حافظه برنامه 16 بیتی فعلی و آدرس حافظه داده خارجی 8/16 بیتی. این شامل (شکل 7.1.6):

● 16 بیتی بافرB ، که بین اتوبوس داده 8 بیتی SM و 16 بیتی داخلی (شناسه) مولد آدرس ارتباط برقرار می کند.

scheme طرح افزایش SI برای افزایش ارزش آدرس حافظه برنامه فعلی توسط یک؛

for برای ذخیره آدرس فعلی دستورات PTA از SI ثبت نام کنید.

register ثبت نشانگر داده DPTR , متشکل از دو رجیستر 8 بیتی DPH و DPL. این سرویس برای ذخیره آدرس 16 بیتی حافظه اطلاعات خارجی است و می تواند به عنوان دو RON مستقل در دسترس نرم افزار مورد استفاده قرار گیرد.

● ثبت نام ژنراتور آدرس XPA برای ذخیره آدرس 16 بیتی اجرایی حافظه برنامه یا آدرس 8/16 بیتی حافظه اطلاعات خارجی. این رجیستر همچنین هنگام انتقال دستورات MOVXRm ، A و MOVXDPRT ، A برای انتقال داده از طریق درگاه P0 به دستگاه های خارجی استفاده می شود.

حافظه داده حافظه داده مورد نظربرای دریافت ، ذخیره و صدور اطلاعات مورد استفاده در فرآیند اجرای برنامه. حافظه داخلی (ساکن) (شکل 7.1.7) از حافظه رم با ظرفیت 128 بایت تشکیل شده است ، نشانگر پشتهSP ، ثبت آدرسRAM RA و رمزگشاییDsh Stack Pointer SP یک رجیستر 8 بیتی است که برای دریافت و ذخیره آدرس سلول پشته ای که آخرین بار به آن دسترسی پیدا شده است ، استفاده می شود. پس از تنظیم مجدد ، آدرس 07H در نشانگر پشته تنظیم می شود ، که با ابتدای پشته با آدرس 08H مطابقت دارد. ثبت آدرس PA به همراه رمزگذار Dsh امکان دسترسی به سلول حافظه مورد نیاز شامل یک بایت یا بیت اطلاعات را فراهم می کند.

MK امکان افزایش مقدار حافظه داده تا 64 Kbytes را با اتصال فراهم می کند دستگاههای ذخیره سازی خارجیبه عنوان نمونه ، شکل. 7.1.8 سازماندهی صفحه حافظه اطلاعات خارجی FPD را با ظرفیت 2K بایت با استفاده از دستورالعمل هایی از نوع MOVX نشان می دهد. @ Rm (m \u003d 0؛ 1). در این حالت ، درگاه P0 به عنوان یک آدرس / داده باسپلکس چند منظوره کار می کند ، از سه خط پورت P2 برای آدرس دهی به صفحه ای از رم خارجی استفاده می شود و پنج خط باقی مانده نیز می توانند به عنوان خطوط I / O استفاده شوند.
در شکل 7.1.9 نمودارهای زمان چرخه خواندن و نوشتن را هنگام کار MK با رم خارجی نشان می دهد. نمودارها نشان می دهد:

N PCN - بایت بالای پیشخوان فرمان PC؛

PL DPL ، DPH - بایت های کم و زیاد ثبت نام داده های DPTR ، که به عنوان یک رجیستری برای آدرس دهی غیرمستقیم در دستورالعمل های MOVX @ DPTR ، A و MOVX A ، @ DPTR استفاده می شود.

● P2 SFR - قفل پورت P2؛

● Rm (m \u003d 0، 1) - ثبت هایی که در دستورالعمل های MOVX @ Rm، A و MOVX A،Rm به عنوان ثبت های آدرس غیر مستقیم استفاده می شوند.

● Z - حالت مقاومت بالا؛

● D - دوره ای که در طی آن داده های درگاه P0 به میکروکنترلر وارد می شوند. حافظه برنامه حافظه برنامه برای ذخیره سازی برنامه ها در نظر گرفته شده است ، فضای آدرس اختصاصی خود را دارد (جدا از حافظه داده) و فقط برای خواندن در دسترس است. این شامل یک رمزگذار DSh و ROM است (شکل 7.1.10). یک پیشخوان PC 16 بیتی برای پرداختن به حافظه برنامه استفاده می شود ، بنابراین حداکثر ظرفیت آن 64K بایت است. حافظه برنامه داخلی شامل یک رام 4K بایت و یک رمزگذار 12 بیتی است. حافظه خارجی مطابق نمودار موجود در شکل متصل است. 7.1.11. اگر 0 V روی پین ¯EA MK اعمال شود (همانطور که در شکل 7.1.11 نشان داده شده است) ، حافظه برنامه داخلی غیرفعال است. همه دسترسی های حافظه از آدرس 0000h شروع می شوند. هنگامی که پین \u200b\u200b¯EA به منبع تغذیه متصل شد ، به حافظه برنامه داخلی در آدرس های 0000h - FFFFh و حافظه برنامه خارجی در آدرس های 0FFFh - FFFFh بصورت خودکار دسترسی پیدا می کنید.

برای خواندن حافظه خارجی برنامه های MK ، سیگنال ¯PSEN تولید می شود. هنگام کار با حافظه داخلی ، از سیگنال read استفاده نمی شود. هنگام دسترسی به حافظه برنامه خارجی ، یک آدرس 16 بیتی همیشه شکل می گیرد. کمترین قابل توجه بایت آدرس از طریق درگاه P0 در نیمه اول چرخه دستگاه منتقل می شود و در لبه استرول ALE در رجیستر ثابت می شود.در نیمه دوم چرخه از پورت P0 برای وارد کردن بایت داده از حافظه خارجی به MC استفاده می شود.

مهمترین بایت آدرس از طریق درگاه P2 در کل زمان دسترسی به حافظه منتقل می شود.

نمودار زمان بندی چرخه های خواندن و نوشتن هنگامی که MC با رم خارجی کار می کند در شکل نشان داده شده است. 7.1.12.
نمودارها نشان می دهد:

● PCL OUT - صدور بایت کم پیشخوان فرمان PC؛

● РСН OUT - صدور بایت بالای پیشخوان فرمان PC؛

● DPH - بایت بالای ثبت نام داده های DPTR ، که به عنوان یک ثبت برای آدرس دهی غیرمستقیم در دستورالعمل های MOVX @ DPTR ، A و MOVX A ، @ DPTR استفاده می شود.

● P2 SFR - قفل پورت P2؛

● INS - ورودی بایت دستورالعمل (دستور) از حافظه برنامه؛

● ADDR OUT - صدور بایت کم آدرس حافظه داده خارجی از رجیسترهای Rm (m \u003d 0 ، 1) یا از ثبت DPL (ثبت DPTR کم). پورت های I / O تکلیف بندر پورت های P0 ، P1 ، P2 ، P3 مورد نظربرای تبادل اطلاعات بین MK و دستگاه های خارجی ، و همچنین برای انجام توابع زیر:

te بایت کم آدرس A7 ... A0 از طریق درگاه P0 در حال خروجی است. خروجی از MC و ورودی به بایت MC در هنگام کار با حافظه برنامه خارجی و حافظه اطلاعات خارجی (با تقسیم زمان).

te بایت زیاد آدرس A15 ... A8 هنگام کار با حافظه برنامه خارجی و حافظه داده خارجی ، از طریق پورت P2 (فقط هنگام استفاده از دستورات MOVX A ، @ DPTR و MOVX @ DPTR ، A) از طریق پورت P2 وارد می شود.

lines در صورت وارد بودن 1 در قفل این خط ، می توان از خطوط پورت P3 برای انجام توابع جایگزین استفاده کرد ، در غیر این صورت 0 در خروجی خط ثابت است عملکردهای جایگزین خروجی پورت P3 در جدول آورده شده است. 7.1.3.

ویژگی های شماتیک پورت ها

در شکل 7.1.13 نمودارها را برای یک کانال از هر درگاه MK نشان می دهد ، از جمله:

● برای رفع بیت داده دریافت شده ، چفت کنید.

pl تقویت کننده خروجی آبشار(راننده)؛

● گره پیوند بامرحله خروجی (به جز P2)؛

● زنجیره ای برای انتقال بیت داده از سمت درگاه خروجی ، متشکل از بافر B2 و B3 (برای درگاه P4). چفت یک D-flip flop است که توسط یک سیگنال داخلی "نوشتن به قفل" است. بیت داده از خروجی مستقیم D-flip-flop را می توان در نرم افزار از طریق بافر B1 با سیگنال "Read latch" به خط باس داده داخلی (SD) MC ارسال کرد.

مرحله خروجیپورت P0 یک اینورتر است که ویژگی های آن در این واقعیت آشکار می شود که ترانزیستور بار VT2 تنها هنگام دسترسی به حافظه خارجی (هنگام انتقال آدرس و داده از طریق پورت) باز می شود. در تمام حالت های دیگر ، ترانزیستور بار بسته است. بنابراین ، برای استفاده از P0 (شکل 7.1.13 ، الف) به عنوان پورت خروجی با هدف کلی ، مقاومتهای بار خارجی باید به پایانه های آن وصل شوند. هنگام نوشتن 1 به قفل پورت ، ترانزیستور اینورتر VT1 قفل شده و خروجی خارجی درگاه P0.X به حالت مقاومت بالا منتقل می شود. در این حالت پین پورت P0.X می تواند به عنوان ورودی باشد. اگر از P0 به عنوان یک پورت I / O با هدف کلی استفاده شود ، هر یک از پین های P0.X آن می توانند بطور مستقل از سایرین به عنوان ورودی یا خروجی کار کنند. مراحل خروجیپورت های P1 ، P2 ، P3 (شکل 7.1.13 ، ب ، ج ، د)مطابق مدارهای اینورتر با مقاومت بار داخلی ساخته شده است ، که به عنوان ترانزیستور VT2 استفاده می شود.

برای کاهش زمان تعویض در هنگام انتقال خروجی پورت از حالت 0 به حالت 1 ، یک ترانزیستور اضافی VT3 به \u200b\u200bموازات ترانزیستور بار VT2 معرفی می شود. ترانزیستور VT3 با کمک عناصر موجود در مدار دروازه برای مدت زمان مساوی با دو دوره نوسانات نوسان ساز کریستال اصلی (در طی مراحل S1P1 ، S2P2 چرخه دستگاه) قفل می شود. مراحل خروجیپورت های P0 ، P2 (شکل 7.1.13 ، A ، c) با استفاده از multiplexer MX می توانند به لچ ها یا به اتوبوس های داخلی "آدرس / داده" و "آدرس" متصل شوند. مرحله خروجی درگاه P1 (شکل 7.1.13 ، 6) بطور دائم به لچ متصل می شود.

اگر پین پورت P3 یک خروجی باشد و لچ آن در آن حاوی 1 باشد ، مرحله خروجی آن توسط سیگنال داخلی سخت افزاری "عملکرد خروجی جایگزین" کنترل می شود ، که اجرای عملکرد جایگزین مربوطه را تضمین می کند ، یعنی. یکی از سیگنال های RWR ، ¯RD یا RxD روی پین خارجی تولید می شود. اگر پین پورت به عنوان ورودی استفاده شود ، سپس یک سیگنال جایگزین که به آن می رسد (TxD ، ¯INT0 ، ¯INT1 ، T0 ، T1) به پسوند "عملکرد ورودی جایگزین" منتقل می شود.

حالت نوشتن پورت

هنگامی که دستور نوشتن به درگاه اجرا شد ، مقدار جدید در فاز S6P2 به لچ نوشته می شود و مستقیماً به پین \u200b\u200bخروجی پورت در فاز S1P1 چرخه ماشین بعدی منتقل می شود.

حالت خواندن پورت

دستورات پورت خواندن اطلاعات را مستقیماً از پین های خارجی پین پورت یا از خروجی های لچ بخوانید. در حالت اول ، بیت داده از خروجی پورت از طریق بافر B2 توسط سیگنال "Read Pins" به خط باس داده داخلی (SD) MC ارسال می شود. توجه داشته باشید که هنگام اجرای دستورات مربوطه ، سیگنالهای "نوشتن به لچ" ، "Read latch" ، "Read pin" توسط سخت افزار تولید می شوند.

در حالت دوم ، حالت به اصطلاح "Read-Modify-Writ" اجرا می شود ، که در آن دستور سیگنال وضعیت لچ را می خواند ، در صورت لزوم آن را اصلاح می کند و سپس دوباره به لچ می نویسد. هنگام اجرای دستورات زیر ، حالت "Read-Modify-نوشتن" اجرا می شود: ANL، ORL، XRL، JBC؛ CPL؛ INC؛ DEC؛ DJNC؛ MOV PX ، Y؛ CLR PX.Y؛ SETB PX، Y.

خواندن اطلاعات از خروجی لچ ها خطاها را هنگام تفسیر سطح منطق در پین پورت از بین می برد. ادامه مقاله را در ادامه بخوانید.

اینتل اجداد معماری خانوادگی MCS-51 است ، که نام خود را از اولین نماینده این خانواده - میکروکنترلر 8051 ، که در سال 1980 بر اساس فناوری n-MOS منتشر شد ، گرفت. مجموعه موفق دستگاههای جانبی ، انتخاب انعطاف پذیر حافظه برنامه خارجی یا داخلی و قیمت مناسب باعث موفقیت این میکروکنترلر در بازار شده است. از نظر فناوری ، میکروکنترلر 8051 برای زمان خود محصولی بسیار پیچیده بود - 128 هزار ترانزیستور در کریستال مورد استفاده قرار گرفت که 4 برابر بیشتر از تعداد ترانزیستورها در میکروپردازنده 16 بیتی 8086 بود.این میکروکنترلر تا امروز هسته اصلی خانواده MCS-51 است.

عناصر اصلی معماری اساسی خانواده (معماری میکروکنترلر 8051) عبارتند از:

8-بیتی ALU؛

4 بانک ثبت ، 8 در هر؛

حافظه برنامه داخلی (ساکن) 4 Kbytes ، از نوع ROM یا EPROM (8751).

حافظه داخلی داخلی (ساکن) 128 بایت؛

21 ثبت توابع خاص؛

پردازنده بولی؛

دو تایمر / پیشخوان 16 بیتی.

کنترلر پورت سریال (UART)؛

کنترل کننده قطع با دو سطح اولویت.

چهار درگاه I / O 8 بیتی که دو مورد از آنها به عنوان یک اتوبوس آدرس / داده برای دسترسی به برنامه خارجی و حافظه داده استفاده می شود.

ژنراتور ساعت ساخته شده است.

سپس میکروکنترلر 8052 رها شد ، که با افزایش تعداد برنامه های ساکن و حافظه داده ها ، معرفی شده توسط یک تایمر سوم و بر این اساس ، یک کنترل کننده قطع برق متمایز شد.

گام اساسی بعدی در توسعه MCS-51 انتقال فناوری تولید به CMOS (اصلاح 8xC51) بود. این امر امکان اجرای حالت های Idl (بیکار) و Power Down (کاهش مصرف) را فراهم می کند ، که باعث کاهش شدید مصرف برق کریستال می شود و راه را برای استفاده از میکروکنترلر در برنامه های فرار ، به عنوان مثال ، در دستگاه های باطری مستقل باز می کند.

و آخرین مرحله مهم در تولید MK 8051 توسط اینتل ، انتشار میکروکنترلرهای 8xC51FA / FB / FC و 8xC51RA / RB / RC بود که اغلب به اختصار 8xC51Fx و 8xC51Rx نامیده می شوند. اصلی ترین ویژگی متمایز این گروه از بلورها این است که آنها دارای یک تایمر / پیشخوان اختصاصی (PCA) هستند. علاوه بر این ، میکروکنترلرهای 8xC51Rx علاوه بر این حاوی یک تایمر نگهبان (WDT) هستند. بیایید نگاهی دقیق تر به معماری و عملکرد PCA بیندازیم.

PCA شامل موارد زیر است:

تایمر / پیشخوان 16 بیتی؛

پنج نمونه 16 بیتی و مقایسه ماژول ها ، که هر کدام با یک خط متفاوت از پورت I / O میکروکنترلر همراه هستند.

تایمر / پیشخوان در خدمت هر 5 ماژول و مقایسه ماژول ها است که می تواند برای انجام یکی از توابع زیر برنامه ریزی کند:

نمونه برداری 16 بیتی از مقدار تایمر در لبه مثبت سیگنال خارجی.

نمونه برداری 16 بیتی از مقدار تایمر در لبه منفی سیگنال خارجی.

نمونه برداری 16 بیتی از مقدار تایمر در هر لبه سیگنال خارجی.

تایمر قابل برنامه ریزی 16 بیتی.

دستگاه خروجی پر سرعت 16 بیتی.

PWM 8 بیتی.

همه این توابع در PCA در سطح سخت افزار انجام می شوند و پردازنده مرکزی را بار نمی کنند. این امر می تواند باعث افزایش توان کلی ، بهبود دقت اندازه گیری ها و پردازش سیگنال و کاهش زمان پاسخ میکروکنترلر در برابر رویدادهای خارجی شود ، که این امر به ویژه برای سیستم های زمان واقعی اهمیت دارد. PCA اجرا شده در 8xC51Fx (8xC51Rx) چنین بود

تعیین

حداکثر فرکانس (مگاهرتز)

ROM / EPROM (بایت)

پیشخوان

خوشبختانه معماری این میکروکنترلرها به یک استاندارد صنعتی تبدیل شده است و خود PCA نیز بارها و بارها در اصلاحات مختلف MK 8051 بازتولید شده است.

برخی خصوصیات تعدادی از میکروکنترلرهای MCS-51 تولید شده توسط اینتل در جدول 1.1 نشان داده شده است.

تنگناهای اولیه معماری MCS-51 ALU های باتری 8 بیتی و اجرای دستورالعمل نسبتاً کند (سریعترین دستورالعمل ها به 12 نیاز دارند)

جدول 1.1

ورودی خروجی

ADC ، ورودی های بیت x

حاشیه ،

امکانات

گودال (که در)

گزینه ولتاژ پایین

4 سطح IRQ ، عقربه های ساعت

4 سطح IRQ ، عقربه های ساعت

ولتاژ کم نسخه 8xC51Fx

4 سطح IRQ ، عقربه های ساعت

4 سطح IRQ ، عقربه های ساعت

4 سطح IRQ ، عقربه های ساعت

فرکانس ساعت دوره (فرکانس ساعت MK)). این محدود کردن استفاده از میکروکنترلرهای خانواده در برنامه هایی که نیاز به افزایش کارایی و محاسبات پیچیده دارند (16 و 32 بیتی) دارد. یک مسئله فوری نوسازی اساسی معماری MCS-51 بود. مشکل نوسازی از این واقعیت پیچیده بود که تا اوایل دهه 90 تحولات زیادی در زمینه نرم افزار و سخت افزار خانواده MCS-51 ایجاد شده بود ، در رابطه با آن یکی از اصلی ترین وظایف طراحی معماری جدید اجرای سخت افزار و سازگاری نرم افزار با تحولات مبتنی بر MCS بود. -51

برای حل این مشکل ، گروه مشترکی از متخصصان اینتل و فیلیپس ایجاد شدند ، اما بعداً مسیر این دو شرکت متفاوت شد. در نتیجه ، در سال 1995 دو خانواده متفاوت ظاهر شد: MCS-251/151 از Intel و MCS-51XA از Philips (به بخش 1.2 مراجعه کنید).

ویژگی های اصلی معماری MCS-251:

فضای آدرس خطی 24 بیتی برای آدرس دهی به 16 مگابایت حافظه؛

یک معماری ثبت که امکان دسترسی به ثبات ها را به عنوان بایت ، کلمات و کلمات مضاعف فراهم می کند.

حالت آدرس دهی صفحه برای سرعت بخشیدن به بازیابی دستورالعمل ها از حافظه برنامه خارجی.

صف دستورالعمل؛

مجموعه دستورالعمل های گسترده ، از جمله عملیات حسابی و منطقی 16 بیتی.

فضای آدرس پشته گسترده (حداکثر 64 کیلوبایت)؛

اجرای سریعترین دستور در 2 چرخه ساعت.

مجموعه دستورالعمل MCS-251 از دو مجموعه دستورالعمل تشکیل شده است - مجموعه اول نسخه ای از مجموعه دستورالعمل MCS-51 است ، و مجموعه دوم شامل دستورالعمل های گسترده است که از معماری MCS-251 استفاده می کنند. قبل از استفاده از میکروکنترلر ، باید پیکربندی شود ، یعنی با کمک برنامه نویس ، بیت های پیکربندی را "سوزان" کنید که مشخص می کند کدام یک از مجموعه های دستورالعمل پس از روشن شدن فعال می شود. اگر اولین مجموعه دستورالعمل را نصب کنید ، در این حالت خانواده MCS-251 با سطح کد باینری با MCS-51 سازگار خواهند بود. به این حالت Binary Mode گفته می شود. اگر در ابتدا مجموعه ای از دستورالعمل های گسترده را نصب کنید (Source Source) ، برنامه هایی که برای MCS-51 نوشته شده اند نیاز به جبران مجدد از طریق متقاطع برای MCS-251 دارند. Source Mode به شما امکان می دهد تا از معماری MCS-251 نهایت استفاده را ببرید و به بالاترین کارایی برسید.

برای کاربران متمرکز بر استفاده از میکروکنترلرهای MCS-251 به عنوان یک جایگزین مکانیکی برای MCS-51 ، شرکت Intel میکروکنترلرهای MCS-151 را که از قبل در حالت دودویی برنامه ریزی شده است ، منتشر می کند.

برخی خصوصیات تعدادی از میکروکنترلرهای MCS-251/151 در جدول 1.1 نشان داده شده است.

در حال حاضر ، اینتل با هدف بازار پردازنده Pentium ، تولید کریستال های MCS-51 را متوقف می کند. به طور کلی ، برای یک توسعه دهنده خاص ، این ممکن است مورد توجه قرار نگیرد ، مگر اینکه از میکروکنترلرهای 8xC51GB و 80C152Jx استفاده کند ، که همتای دقیقی در بین محصولات سایر شرکت ها ندارند. در مورد سایر میکروکنترلرهای خانواده MCS-51 ، همه آنها بارها توسط شرکت های دیگر تکثیر شده اند.

در حال حاضر ، شرکت های مختلف اصلاحات و آنالوگ های زیادی را در این خانواده ایجاد می کنند ، هم توسط اینتل و هم سایر تولید کنندگان ، فرکانس ساعت و ظرفیت حافظه ده برابر شده و همچنان در حال افزایش است. مجموعه ماژول های ساخته شده به LSI نیز تکمیل می شود ؛ تعداد زیادی از مدل های مدرن به ADC با سرعت بالا اقامت دارند که حداکثر 12 عدد دارند و اکنون ممکن است رقم های بیشتری نیز وجود داشته باشد. اما در قلب خانواده MCS51 BIS 8051 ، 80C51 ، 8751 ، 87C51 ، 8031 \u200b\u200b، 80C31 از اینتل قرار دارند که اولین نمونه از آنها در سال 1980 منتشر شد.

میکروکنترلرهای خانواده MCS51 با استفاده از فناوری n-MOS با کیفیت بالا (سری 8XXX ، آنالوگ - سری 1816 در روسیه و بلاروس) و فناوری k-MOS (سری 8ХСХХ ، آنالوگ - سری 1830) ساخته شده اند. شخصیت دوم زیر 8 به معنی: 0 - بدون تراشه EPROM ، 7 - 4K EPROM با پاک کردن UV است. نماد سوم: 3 - ROM تبلور می شود ، 5 - اگر EPROM وجود نداشته باشد ، یک رام ماسک روی تراشه قرار خواهد گرفت.

و بنابراین 80S51 - LSI مطابق با تکنولوژی k-MOS با ROM نقاب دار بر روی تراشه ، 8031 \u200b\u200b- LSI n-MOS بدون حافظه برنامه (ROM ، EPROM) روی تراشه ، 8751 - LSI n-MOS با ساکن (واقع در تراشه) EPROM با پاک کردن ماوراء بنفش. ما LSI 8751 را در نظر خواهیم گرفت و در صورت لزوم ، در مورد تفاوت در مدارهای دیگر ، رزروهایی را رزرو می کنیم و به پارامترهایی که برای اولین سریال LSI منتشر شده است ، می پردازیم. در صورت لزوم می توانید اطلاعات بیشتری در مورد کلیه تغییرات مدرن در دفترچه های شرکت و اسناد فنی پیدا کنید.

الف) مشخصات عمومی و تعیین تکلیف

خانواده MCS51 براساس پنج اصلاح MK (دارای خصوصیات اساسی یکسان) ساخته شده اند که تفاوت اصلی بین اجرای برنامه حافظه برنامه و مصرف برق است (جدول 3.1 را ببینید). میکروکنترلر هشت بیتی است ، یعنی دارای دستورالعمل هایی برای پردازش کلمات هشت بیتی است ، دارای معماری هاروارد ، فرکانس ساعت نمونه های اصلی خانواده 12 مگاهرتز است.

جدول 3.1.

ریزگردها

حافظه برنامه داخلی ، بایت

نوع حافظه برنامه

حافظه داده داخلی ، بایت

فرکانس ساعت ، مگاهرتز

میزان مصرف فعلی ، میلی آمپر

MK 8051 و 80C51 حاوی یک ROM قابل برنامه ریزی با حافظه برنامه با ظرفیت 4096 بایت در حین ساخت یک بلور هستند و برای استفاده در تولید انبوه طراحی شده اند. MK 8751 شامل یک EPROM با ظرفیت 4096 بایت با پاک کردن ماوراء بنفش است و در مرحله توسعه سیستم هنگام اشکال زدایی برنامه ها و همچنین هنگام تولید در دسته های کوچک یا هنگام ایجاد سیستم هایی که نیاز به استفاده مجدد دارند ، مناسب است.

تنظیم دوره ای

MK 8031 \u200b\u200bو 80C31 حاوی حافظه برنامه داخلی نیستند. آنها ، مانند اصلاحاتی که قبلاً توضیح داده شده اند ، می توانند حداکثر 64 کیلوبایت از حافظه برنامه خارجی استفاده کنند و می توانند در سیستمهایی که نیاز به حجم بسیار بیشتری دارند (از 4 Kbytes در تراشه) از حافظه برنامه به طور موثر استفاده کنند.

هر MCU خانواده حاوی حافظه دیتای ساکن با ظرفیت 128 بایت با امکان گسترش کل داده های RAM تا 64 Kbytes از طریق استفاده از RAM های خارجی IC است.

    پردازنده هشت بیتی مرکزی؛

    حافظه برنامه 4 KB (فقط 8751 و 87C51)؛

    128 بایت حافظه داده؛

    چهار درگاه I / O قابل برنامه ریزی هشت بیتی.

    دو تایمر / پیشخوان چند حالته 16 بیتی.

    سیستم بردار خودکار با پنج بردار و دو سطح اولویت با نرم افزار کنترل می شود.

    یک رابط سریال شامل یک فرستنده گیرنده دوتایی جهانی که قادر به کار در چهار حالت است.

    ژنراتور ساعت

سیستم فرمان MK شامل 111 دستور اصلی با فرمت 1 ، 2 یا 3 بایت است. میکروکنترلر دارای موارد زیر است:

    32 رجیستر با هدف عمومی RON ، به عنوان چهار بانک از هشت ثبت نام که هر کدام با نام های R0 ... R7 سازماندهی شده اند ، انتخاب یک بانک خاص توسط برنامه با تعیین بیت های مربوطه در ثبت وضعیت وضعیت برنامه PSW تعیین می شود.

    128 پرچم کنترل شده نرم افزاری (پردازشگر بیت ، به تصویر زیر مراجعه کنید)؛

    مجموعه ای از ثبات های خاص که عناصر MK را کنترل می کنند. حالت های عملیاتی زیر میکروکنترلر وجود دارد:

1) تنظیم مجدد عمومی 2) عملکرد عادی. 3) حالت کم مصرف و حالت بیکار بودن. 4) در صورت وجود حالت برنامه نویسی EPROM.

در اینجا ما به دو حالت اول کار خواهیم پرداخت ، توضیحات مفصلی درباره ترکیب و عملکرد MC در کلیه حالت ها در پیوست A1 آورده شده است.

RON و منطقه پردازشگر بیت در فضای آدرس RAM ساکن با آدرس 0 تا 80h قرار دارد.

در قسمت فوقانی آدرسهای حافظه دسترسی تصادفی مقیم ، رجیستری از توابع ویژه (SFR ، ثباتهای ویژه) وجود دارد. هدف آنها در جدول آورده شده است. 3.2

جدول 3.2.

تعیین

نام

باتری

ثبت ب

ثبت وضعیت برنامه

نشانگر پشته

نشانگر داده 2 بایت:

حداقل بایت قابل توجه

بایت بالا

ثبت اولویت را قطع کنید

ثبت نام را فعال کنید

ثبت زمان سنج / شمارنده حالت

ثبت زمان سنج / پیشخوان کنترل

تایمر / پیشخوان 0. بایت بالا

تایمر / پیشخوان 0. بایت پایین

تایمر / پیشخوان 1. بایت بالا

تایمر / پیشخوان 1. بایت کم

کنترل پورت سریال

بافر پورت سریال

مدیریت مصرف

* - ثبت ها ، اعتراف کردن بیتی خطاب به

بیایید به طور خلاصه عملکردهای ثبت های SFR که در جدول 3.2 نشان داده شده است را مرور کنیم.

باتری ACC - ثبت باتری. دستوراتی که برای کار طراحی شده اند

شما با باتری هستید ، مثلاً از "" A "مثنوی استفاده کنید ، MOV و ، P2 ... مثلاً "ACC" برای آدرس دهی باتری بیت جهت استفاده می شود. بنابراین ، نام نمادین بیت پنجم از باتری هنگام استفاده از اسمبلر A5M51 به شرح زیر خواهد بود: ACC. پنج

ثبت نام که در ... در طول عملیات ضرب و تقسیم استفاده می شود. برای سایر دستورالعمل ها ، ثبت B می تواند به عنوان یک ثبت فوق العاده اضافی در نظر گرفته شود.

ثبت نام ثروت برنامه ها PSW حاوی اطلاعاتی در مورد وضعیت برنامه است و بر اساس نتیجه عملیاتی که توسط کاربر انجام می شود ، تا حدی بطور خودکار نصب می شود. تعیین و هدف بیت های ثبت نام به ترتیب در جداول 3.3 و 3.4 آورده شده است.

جدول 3.3.

تعیین

جدول 3.4.

تعیین

تکلیف بیت

دسترسی به بیت

پرچم حمل کنید. تغییرات در حین اجرای یک سری دستورالعمل های حسابی و منطقی.

سخت افزار یا نرم افزار

پرچم حمل اضافی. سخت افزار در طول دستورالعمل های اضافی یا تفریق تنظیم شده است تا نشانگر حمل یا قرض گرفتن در بیت 3 در هنگام تولید کمترین اهمیت از نتایج (D0-D3) باشد.

سخت افزار یا نرم افزار

پرچم 0. پرچم تعریف شده توسط کاربر.

برنامه نویسی

برنامه نویسی

نشانگر کار ثبت نام کار

برنامه نویسی

بانک 0 با آدرس (00H - 07H) بانک 1 با آدرس (08H - 0FH) بانک 2 با آدرس (10H - 17H) بانک 3 با آدرس (18H - 1FH)

پرچم سرریز سخت افزار در حین اجرای دستورالعمل های حسابی تنظیم شده یا پاک شده است تا وضعیت سرریز را نشان دهد

سخت افزار یا نرم افزار

یدکی. دارای یک ماشه خواندن / نوشتن است که می تواند مورد استفاده قرار گیرد

کمی برابری سخت افزار در هر چرخه دستورالعمل پاک یا تنظیم شده است تا تعداد "باتری" یکسان یا عجیب را در حالت "1" نشان دهد.

سخت افزار یا نرم افزار

اشاره گر پشته SP - ثبت 8 بیتی که محتویات آن قبل از نوشتن داده به پشته هنگام اجرای دستورات PUSH و CALL افزوده می شود. در تنظیم مجدد اولیه ، نشانگر پشته بر روی 07H تنظیم می شود و ناحیه پشته در RAM داده از 08H شروع می شود. در صورت لزوم ، با تعریف مجدد نشانگر پشته ، می توانید ناحیه پشته را در هر مکانی در RAM داده های داخلی میکروکنترلرها قرار دهید.

اشاره گر داده ها DPTR متشکل از بایت بالا (DPH) و بایت کم است

(DPL) در هنگام دسترسی به حافظه خارجی یک آدرس 16 بیتی دارد. میتواند مورد استفاده قرار گیرد

به عنوان یک رجیستر 16 بیتی یا به عنوان دو رجیستر 8 بیتی مستقل نوشته می شود.

Port0 - PortZ بیت های جداگانه از ثبات های خاص P0 ، P1 ، P2 ، P3 بیت هستند - "دستگیره" درگاه های P0 ، P1 ، P2 ، P3.

بافر استوار بندر SBUF دو رجیستر جداگانه است: بافر فرستنده و بافر گیرنده. وقتی داده ها برای SBUF نوشته شده است ، وارد بافر فرستنده می شوند و نوشتن یک بایت به SBUF بطور خودکار انتقال آن از طریق پورت سریال را آغاز می کند. وقتی داده ها از SBUF خوانده می شوند ، از بافر گیرنده گرفته می شوند.

ثبت تایمر فرم 16- ثبت نام جفت (TH0، TL0) و (TH1، TL1)

ثبت های شمارش بیت به ترتیب برای تایمر / پیشخوان 0 و تایمر / پیشخوان 1.

ثبت مدیریت. ثبات های IP ، IE ، TMOD ، TCON ، SCON و PCON دارای توابع ویژه ای هستند که حاوی بیت های کنترل و بیت های وضعیت سیستم قطع ، تایمر

متر / پیشخوان و پورت سریال. در مورد جزئیات آنها در زیر توضیح داده شده است.

RxD TxD INT0 INT1 T0 T1 WR

P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

RST BQ2 BQ1 EA

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7

P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7

MK در طول عملیات فراهم می کند:

    حداقل زمان برای اجرای دستورات اضافی 1 میکروگرم است.

    ضرب سخت افزار و تقسیم سخت افزار با حداقل زمان اجرای 4 میکروگرم.

MK امکان تنظیم فرکانس ژنراتور داخلی با استفاده از کوارتز ، زنجیره LC یا یک ژنراتور خارجی را فراهم می کند.

سیستم دستورالعمل توسعه یافته ، آدرس دهی بایت و بیت بیت ، حسابی دوتایی و باینری-اعشاری ، نشانه سرریز و برابری یکسان / عجیب و امکان اجرای پردازنده منطقی را فراهم می کند.

مهمترین و بارزترین ویژگی معماری خانواده MCS51 این است که ALU می تواند علاوه بر انجام عملیات بر روی انواع داده های 8 بیتی ، داده های تک بیتی را نیز دستکاری کند. بیت های جداگانه قابل دسترسی به نرم افزار قابل تنظیم ، پاک سازی یا جایگزینی با مکمل آنها ، می توانند ارسال شوند ، بررسی شوند و

شکل 3.2. نتیجه گیری خارجی

میکروکنترلر

مورد استفاده در محاسبات منطقی. در حالی که پشتیبانی از انواع داده های ساده (با موجود)

گرایش به افزایش طول کلمه) ممکن است در نگاه اول یک قدم عقب به نظر برسد ، این کیفیت باعث می شود خانواده میکروکنترلرهای MCS51 به خصوص برای برنامه هایی که از کنترلر استفاده می کنند مناسب باشد. الگوریتم های دوم ، به روش خاص خود ، وجود متغیرهای بولی ورودی و خروجی را فرض می کنند ، که اجرای آنها با استفاده از ریزپردازنده های استاندارد دشوار است. همه این خصوصیات به طور کلی به خانواده پردازنده بولی MCS51 گفته می شوند. با چنین ALU قدرتمند ، خانواده دستورالعمل MCS51 برای برنامه های کنترلی در زمان واقعی و الگوریتم های فشرده داده نیز مناسب است.

نمودار شماتیک میکروکنترلر در شکل نشان داده شده است. 3.2 در نسخه اصلی آن در یک بسته DIP 40 پین بسته بندی شده است. بیایید هدف از نتیجه گیری را در نظر بگیریم.

بیایید با پین های قدرت شروع کنیم «0 که در" و "پنج که در" او غذای اصلی را دریافت می کند. جریان مصرفی در جدول آورده شده است. 3.1

خروجی "RST" - تنظیم مجدد میکروکنترلر. وقتی سطح بالایی فعال روی این پین اعمال می شود ، حالت عمومی تخلیه و MK اقدامات زیر را انجام می دهد:

پیشخوان فرمان PC و تمام ثبات های عملکرد خاص ، به جز دسته های درگاه P0-P3 ، نشانگر پشته SP و ثبت SBUF را به صفر تنظیم می کند.

    نشانگر پشته بر روی 07H تنظیم شده است.

    همه منابع وقفه ، شمارنده شمارنده و پی در پی را غیرفعال می کند

    bANK 0 RAM را انتخاب می کند ، درگاه های P0-P3 را برای دریافت داده آماده می کند و تعیین می کند

پین های ALE و PME را به عنوان ورودی برای هماهنگ سازی خارجی جدا می کند.

      در ثبات های ویژه PCON ، IP و IE ، بیت های یدکی تصادفی شده و همه بیت های دیگر صفر تنظیم می شوند.

      ثبت SBUF روی مقادیر تصادفی تنظیم شده است.

      دسته-چفت بندرهای P0-P3 را روی "1" تنظیم می کند.

حالات ثبت های میکروکنترلر پس از تنظیم مجدد در جدول 3.5 نشان داده شده است.

جدول 3.5.

اطلاعات

نامعین

0ХХХ0000В برای k-MOS 0XXXXXXXB برای n-MOS

پین RST همچنین یک عملکرد جایگزین نیز دارد. از طریق آن ، انرژی پشتیبان تهیه می شود تا هنگام حذف اصلی ، محتویات رم میکروکنترلر بدون تغییر باشد.

نتیجه گیری BQ1 ، BQ2 برای اتصال یک طنین انداز کوارتز طراحی شده اند که فرکانس ساعت MK را تعیین می کند.

خروجی EA` (ه xternal آ لباس بیرونی نشانی) - در نظر گرفته شده است که هنگامی که سطح کم فعال برای این خروجی اعمال می شود ، حالت خواندن کدهای کنترل از حافظه برنامه خارجی را فعال کنید. پین دارای یک هدف (عملکرد) جایگزین است. با ولتاژ برنامه نویسی EPROM در حالت برنامه نویسی تهیه می شود.

خروجی PME (پ برنامه نویسی م اموری ه قابل خواندن وضوح حافظه برنامه ها) - برای کنترل چرخه خواندن از حافظه برنامه طراحی شده است و به طور خودکار توسط MC در هر چرخه دستگاه فعال می شود.

خروجی آل (آ لباس ل حسرت ه قابل خواندن وضوح خردسال آدرس ها) خروجی قسمت پایین آدرس را در درگاه P0 می پیچد. در هنگام برنامه نویسی EPROM از خروجی نیز استفاده می شود ، در حالی که یک پالس بارق به آن عرضه می شود.

MK شامل چهار گروه از درگاه ها است: P0 ، P1 ، P2 و P3. این 40 پین باقی مانده از میکروکنترلر هستند. این پورت ها می توانند برای اطلاعات بیت / بیت I / O ارائه دهند ، اما جدا از آن ، هرکدام از آنها تخصص خاص خود را دارند. نمودار عملکردی کلی درگاه در شکل نشان داده شده است. 3.3 پورت شامل سوئیچ های خروجی FET متصل به پین \u200b\u200b، سوئیچ عملکرد ، چفت در D-flip-flop و منطق کنترل است. قفل در اتوبوس داخلی MK را می توان یک یا صفر نوشت. این اطلاعات از طریق سوئیچ عملکرد به کلیدهای خروجی و خروجی MK منتقل می شود. در حالت یک ، هر دو ترانزیستور N و N1 خاموش هستند ، اما N2 روشن است. در حالت صفر ، N باز می شود

شیا ، و N2 بسته می شود. در لحظه ای که پورت عملکرد جایگزین را برای آن انجام می دهد ، حالت پین آزاد می شود. میکروکنترلر به طور جداگانه می تواند وضعیت قفل پورت و وضعیت خروجی آن را که توسط یک سیگنال خارجی تنظیم شده است بخواند. برای این کار در اسمبلر MK دستورات خاصی وجود دارد که خطوط مربوطه را فعال می کنند. برای خواندن حالت پین ، باید قفل پورت مربوطه باشد

از قبل ثبت شده باشید

از درون

کنترل لچ

انتخاب عملکرد

Vcc

تعطیلات آخر هفته

واحد. هنگامی که خط "لچ بخوانید" در خروجی سلول "AND" که این خط به آن وصل شده است فعال می شود

mK لا Q را لاستیک می کند

قفل را بنویسید C Q

خواندن قفل

پین پورت

حالت چفت ، که به اتوبوس داخلی MC عرضه می شود ، هنگام فعال شدن فعال می شود

"خواندن خروجی" - وضعیت خروجی خارجی درگاه.

بندر P0 - پورت جهانی دو جهته

ورودی خروجی. فراتر از این بندر

عملکرد سازماندهی اتوبوسهای آدرس خارجی و

شکل. 3.3 نمودار عملکردی درگاه میکروکنترلر

داده ها برای گسترش حافظه برنامه و حافظه داده ها

میکروکنترلر هنگامی که دسترسی به حافظه برنامه خارجی وجود دارد یا دستور دستیابی به حافظه داده های خارجی اجرا شده است ، قسمت پایین آدرس (A0 ... A7) روی پین های پورت تنظیم شده است که در پین ALE به صورت دروازه ای زیاد است. سپس هنگام نوشتن به حافظه داده ، اطلاعات ضبط شده از اتوبوس داخلی MC به پین \u200b\u200bهای درگاه P0 تغذیه می شود. در عملیات خواندن ، برعکس ، اطلاعات مربوط به پین \u200b\u200bبندر به سمت اتوبوس داخلی منتقل می شود. از ویژگی های پورت P0 عدم وجود ترانزیستور N2 است که قدرت خروجی را فراهم می کند. نوشتن روی قفل درگاه واحد به سادگی آن را در حالت امپدانس بالا قرار می دهد ، که برای عملکرد صحیح باس داده لازم است. در صورت نیاز به هرگونه دستگاه خارجی از طریق خروجی ، باید مقاومتهای خارجی را از مدارهای منبع تغذیه گرفته تا خروجی پورت ارائه دهید.

بندر Р1 - پورت جهانی I / O دو جهته بدون توابع جایگزین.

بندر P2 - یک درگاه I / O دو طرفه جهانی ، به عنوان یک تابع جایگزین ، هنگام دسترسی به حافظه خارجی ، صدور قسمت ارشد آدرس (A8 ... A15) را انجام می دهد.

بندر P3 - پورت ورودی و خروجی جهانی دو طرفه ، که هر بیت اجرای توابع مختلف جایگزین را فراهم می کند. در این حالت ، توابع جایگزین فقط در صورت نوشتن واحدها به لنتهای پین پورت اجرا می شوند ، در غیر این صورت اجرای توابع جایگزین مسدود شده است. بیایید آنها را برای هر بیت جداگانه لیست کنیم:

P3.0 RxD (رead e ایکسسه گانه دخورد ، خواندن داده های خارجی) - ورودی فرستنده سریال داخلی.

P3.1 TxD (تیype e ایکسسه گانه دخوردن ، انتقال داده های خارجی) - خروجی فرستنده سریال داخلی.

P3.2 INT0` (INTخراب ، قطع) - ورودی خارجی قطع 0.

P3.3 INT1` - ورودی قطع خارجی 1.

P3.4 C / T0 - ورودی صفر تایمر داخلی / پیشخوان.

P3.5 C / T1 - ورودی اولین تایمر / پیشخوان داخلی.

P3.6 WR` (Write، نوشتن) - کنترل خروجی چرخه نوشتن در حافظه داده.

P3.7 RD` (رead، read) - خروجی کنترل چرخه خواندن از حافظه داده.

پین های بندر P1 ، P2 و P3 قادر به ارائه جریان در حدود 0.2mA در یک واحد و دریافت جریان 3mA در صفر هستند ، پین های بندر P0 قدرت بیشتری دارند و قادر به ارائه جریان در حدود 0.8mA در هر واحد و دریافت جریان 5mA در صفر هستند. اطلاعات مختصر در مورد هدف قرار گیری پین های میکروکنترلر در جدول 3.6 آورده شده است.

جدول 3.6.

تعیین

تکلیف پین

پورت 8 بیتی دو جهته P1. ورودی A0-A7 آدرس هنگام بررسی رام داخلی (EPROM)

وارد خروج شوید

سیگنال تنظیم مجدد عمومی. خروجی قدرت رم پشتیبان از یک منبع خارجی (برای 1816)

پورت 8 بیتی دو جهته P3 با توابع اضافی

وارد خروج شوید

داده های سریال گیرنده - RxD

داده سریال فرستنده - TxD

ورودی قطع خارجی 0- INT0`

ورودی قطع خارجی 1-INT1`

ورودی تایمر / پیشخوان 0: - T0

زمان سنج / ورودی 1 ورودی: - T1

خروجی سیگنال Strobe هنگام نوشتن به حافظه داده های خارجی: - WR`

خروجی سیگنال Strobe هنگام خواندن از حافظه داده های خارجی - RD`

منجر به اتصال یک طنین انداز کوارتز می شود.

ورودی ورودی

نتیجه گیری کلی

پورت دو طرفه 8 بیتی. خروجی A8-A15 را در حالت کار با حافظه خارجی آدرس دهید. در حالت بررسی داخلی ROM ، از پین های P2.0 - P2.6 به عنوان ورودی آدرس A8-A14 استفاده می شود. نتیجه گیری P2.7 - اجازه خواندن ROM.

وارد خروج شوید

وضوح حافظه برنامه

قفل آدرس باعث فعال شدن سیگنال خروجی می شود. هنگام برنامه نویسی سیگنال EPROM: PROG

وارد خروج شوید

مسدود کردن کار با حافظه داخلی. هنگام برنامه نویسی EPROM ، سیگنال UPR داده می شود

وارد خروج شوید

درگاه P0 دو طرفه 8 بیتی. آدرس / باس داده برای کار با حافظه خارجی. خروجی داده D7-D0 در حالت بررسی رام داخلی (EPROM).

وارد خروج شوید

توان خروجی از منبع ولتاژ + 5 ولت

وضعیت وقفه سیستم در پایان هر چرخه ماشین در مرحله S5P2 ، به استثنای دستورات RETI و هر دستور دیگری که به IE و IP های ثبت شده مراجعه می کنند ، رأی می گیرد. از لحظه رفع درخواست وقفه تا سرویس دهی به وقفه ، بسته به مرحله درخواست و تعداد چرخه دستگاهی فرمان که در طی آن درخواست دریافت شده است ، از 38 تا 86 دوره فرکانس fOSC طول می کشد.

هنگامی که وقفه در سخت افزار پیاده سازی شود ، دستورالعمل LCALL addr16 اجرا می شود ، این اطمینان را می دهد که وضعیت فعلی پیشخوان نرم افزار در پشته ذخیره می شود (حفظ کردن آدرس برگشت) ، و انتقال به آدرس شروع کننده addr16 رویه خدمات مربوطه. هر منبع درخواست قطع ، خاص خود را دارد

آدرس شروع (بردار قطع):

قطع خارجی INT0.

تایمر / شمارنده TC0 را قطع کنید.

قطع خارجی INT1.

تایمر / شمارنده TC1 را قطع کنید.

پورت سریال قطع شود.

2.7 آدرس دادن به روشها و سیستم فرماندهی خانواده MCS-51

سیستم فرماندهی خانواده MCS-51 بر سازماندهی ورودی-خروجی داده انعطاف پذیر از طریق پورت های جهانی P0 ... P3 و پردازش اطلاعات اولیه متمرکز است. توجه ویژه ای به عملیات با بیت ها و انتقال کنترل با ارزش آنها می شود. دستورالعملهای انجام چنین عملیاتی ، گروه بزرگی را تشکیل می دهند و همراه با سخت افزار مربوطه ، به اصطلاح "پردازنده بولی" را در معماری MCS-51 تشکیل می دهند.

مجموعه دستورالعمل امکان استفاده از اکثر عملیاتها را با مجموعه کاملی از روشهای آدرس دهی و منابع سخت افزاری در دسترس نرم افزار در اختیار برنامه نویسان قرار می دهد.

2.7.1. روشهای پرداختن

هر دستورالعمل برای انجام پردازنده و روش های دستیابی به عملگرها به پردازنده می گوید. کد فرمان دارای چندین فیلد است که قابلیت های خاصی دارند. مهمترین قسمت های هر دستور کد عملیاتی (CPC) است که عملکرد فرمان و قسمت آدرس را تعیین می کند. قسمتهای قسمت آدرس شامل اطلاعات مربوط به آدرسهای اپراتورها و نتیجه عملیات و در بعضی موارد اطلاعات مربوط به آدرس دستور بعدی می باشد.

اگر آدرس به تعداد سلول حافظه ای که اپراتور در آن قرار دارد یا جایی که در آن نوشته شده اشاره می کند ، به آن آدرس مستقیم می گویند.

روشهای آدرس دهی مجموعه مکانیسمهای دسترسی به اپراتورها است. برخی از آنها ساده هستند ، به یک قالب دستورالعمل کم حجم و دسترسی سریع به عملگر منتهی می شوند ، اما از منابع محدودی برخوردار هستند. دیگران به شما امکان می دهند با تمام منابع موجود در سیستم کار کنید ، اما این دستور به نظر می رسد طولانی باشد

ورودی و اجرای وقت گیر است. مجموعه روشهای آدرس دهی در هر مجموعه دستورالعمل ترکیبی سازش از مکانیسم های شناخته شده آدرس دهی است که توسط طراحان معماری بر اساس مجموعه وظایفی که باید حل شود انتخاب شده است.

در زیر روش های اصلی آدرس دهی مورد استفاده در دستورات خانواده MCS-51 قرار دارد.

آدرس دهی ضمنی... این دستورالعمل شامل دستورالعملهای صریح درمورد آدرس مربوط به اپراتور شرکت کننده در عملیات یا نشانی که نتیجه کار در آن قرار می گیرد نیست ، اما این آدرس دلالت دارد. در فرامین ، باتری به طور ضمنی به عنوان گیرنده نتیجه عملیات مورد خطاب قرار می گیرد. به عنوان مثال ، نتیجه اضافه کردن مطالب باتری (A) و ثبت R1 بانک اطلاعاتی فعلی با دستورالعمل ADD A، R1 برای جمع کننده ضمنی آدرس پذیر نوشته شده است. کل دستور مشخص شده یک بایت را در حافظه اشغال می کند ، در حالی که آدرس تنها باتری (8Eh منطقه SFR) شامل یک بایت است.

آدرس دهی مستقیم... قسمت آدرس فرمان شامل

این آدرس اپرند نیست بلکه خود عملوند است. آدرس دهی مستقیم توسط شخصیت خاص # جلوی شماره نشان داده شده است. به عنوان مثال ، با دستور MOV A ، شماره 15 برابر hexadecimal 15 (بایت دوم فرمان) در جمع کننده بارگیری می شود. در سیستم فرمان ، آدرس دهی مستقیم به عنوان #data تعیین می شود ، جایی که داده ها یک عدد هستند

(داده \u003d 00 ساعت ... FFh).

آدرس دهی مستقیم... قسمت آدرس فرمان نشانگر آدرس مستقیم سلول حافظه دیتا است که در آن عملوند قرار دارد یا در کجا نوشته شده است. به عنوان مثال ، با دستور MOV A ، 15h ، محتویات سلول DSEG با آدرس 15h در باتری جمع می شوند. سلول حافظه بطور مستقیم آدرس دهی می شود ، و باتری نیز ضمنی است. بسته به محل عمل آدرس دهی شده ، آدرس دهی مستقیم به ثبت مستقیم و مطلق تقسیم می شود.

آدرس مستقیم ثبت نام... قسمت آدرس فرمان حاوی آدرس مستقیم ثبت نام بانک ثبت فعلی است. در هر بانک هشت ثبت وجود دارد و یک آدرس سه بیتی رو به جلو برای رسیدگی به آنها لازم است. در mnemonic دستورات ، ثبت آدرس پذیر Rn تعیین می شود ، جایی که n \u003d 0 ... 7. همه قسمت های فرمان در یک بایت جا می گیرند. این آدرس دهی کوتاه است. به عنوان مثال ، MOV R4 ، R1.

آدرس دهی مطلق مستقیماجازه می دهد تا به هر سلول DSEG و منطقه SFR مراجعه کنید. آدرس مستقیم در این حالت یک بایت را اشغال می کند ، و دستور - دو بایت. در سیستم فرمان ، بایت آدرس مستقیم با کلمه مستقیم (مستقیم \u003d 00h… FFh) تعیین می شود. به عنوان مثال ، دستورالعمل MOV 80h ، R2 (یا MOV P0 ، R2) محتویات ثبت R2 بانک داده فعلی را وارد درگاه P0 (محل 80h منطقه SFR) می کند. اگر هر دو عمل آدرس دهی مطلق مستقیم داشته باشند ، دستورالعمل 3 بایت می شود (به عنوان مثال MOV 80h ، 15h).

آدرس دهی غیر مستقیم... قسمت آدرس آدرس سلول حافظه را نشان می دهد که آدرس مستقیم عملوند در آن واقع شده است. در سیستم فرمان ، نماد ویژه @ آدرس دهی غیرمستقیم را نشان می دهد. ویژگی

ثبت های R0 و R1 (Ri، i \u003d 0،1) هر بانک ثبت آدرس مستقیم دارد. به عنوان مثال ، اگر محتویات ثبت R1 از بانک فعلی ثبت ها 15 ساعت باشد ، دستورالعمل MOV A ، @ R1 همان عمل را با دستورالعمل فوق MOV A ، 15h انجام می دهد - محتویات مکان حافظه DSEG 15 ساعت را در باتری بارگذاری می کند. با این وجود ، دستورالعمل MOV A، @ R1 تک بایت است ، اما مهمتر از همه ، امکان تغییر آدرس برنامه ای با تغییر محتوای ثبت R1 است.

آدرس دهی نسبی... با آدرس دهی نسبی ، آدرس مستقیم با اضافه کردن آدرس پایه با قسمت آدرس آدرس فرمان تشکیل می شود. محتوای پیشخوان برنامه به عنوان آدرس پایه استفاده می شود ، و قسمت آدرس آدرس فرمان یک عدد هشت بیتی (نسبی) است. شماره rel توسط فرمان به عنوان یک عدد صحیح امضا شده تعبیر می شود که در مکمل دو نفر نمایش داده می شود. دامنه ارائه آن (-128 ... + 127) است. هنگام تعیین شماره rel ، به خاطر داشته باشید که پیشخوان برنامه به دستور بعدی برای اجرا اشاره می کند. آدرس دهی نسبی به طور گسترده ای در دستورالعمل های انتقال کنترل برای ایجاد ماژول های برنامه قابل جابجایی استفاده می شود. دستورات انتقال كنترل با آدرس دهي نسبي امکان سازماندهي انشعابات نسبت به موقعيت موجود پيشخوان برنامه رايانه را در هر دو جهت با (-128 ... + 127) بيت فراهم مي كنند.

در برنامه های زبان مونتاژ ، از قسمت افست می توان برای مشخص کردن برچسب برای پرش به استفاده کرد. در نتیجه ترجمه ، اسمبلر در صورت تجاوز بیشتر از مقدار افست محاسبه می کند (-128 ... + 127). در غیر اینصورت یک پیام خطا نمایش داده می شود.

آدرس دهی اولیهنمایانگر نوعی آدرس دهی نسبی است. آدرس مستقیم در این حالت با افزودن آدرس مشخص شده در دستور با محتویات ثبات پایه تشکیل می شود که آدرس پایه را ذخیره می کند. عملکرد ثبت اصلی در خانواده MCS-51 ، ثبت اطلاعات اشاره گر DPTR یا پیشخوان برنامه PC است. این نوع آدرس دهی به ویژه هنگام پردازش جداول و آرایه های داده مفید است. در دستورالعمل های MOVC A، @ A + DPTR و MOVC A، @ A + PC ، آدرس 16 بیتی رو به جلو به عنوان جمع مطالب DPTR و A یا PC و A تشکیل می شود.

آدرس دهی صفحه... با صفحه بندی ، حافظه به یک سری از صفحات با طول مساوی تقسیم می شود. این صفحات توسط یک صفحه ثبت جداگانه مورد خطاب قرار می گیرند ، و سلول های حافظه موجود در صفحه توسط آدرس موجود در دستورالعمل قرار می گیرند. آدرس مستقیم با همخوانی (اضافه کردن) آدرس صفحه و آدرس سلول حافظه در داخل صفحه تشکیل می شود. در دستورالعمل MOVX A ، @ Ri ، پورت P2 (آدرس بالا بایت) عملکرد ثبت صفحه را انجام می دهد ، و محتویات ثبت نام Ri (آدرس بایت کم) آدرس را در صفحه قرار می دهد. در این حالت ، حافظه به 256 صفحه از 256 سلول در هر یک از آنها تقسیم می شود.

آدرس دهی پشتهاین در دستورات غیر آدرس پذیر استفاده می شود و ترکیبی از روش های افزایش خودکار و آدرس دهی خودکار کاهش می یابد ، که براساس اصل LIFO (L ast I nput - F irst O utput) کار می کند - "last in - first out". پشته در DSEG قرار دارد و در جهت افزایش آدرس بیشتر می شود. آدرس بالای پشته در نشانگر پشته SP موجود است. وقتی یک بایت روی پشته نوشته می شود ، ابتدا محتوای SP افزایش می یابد ، و سپس نوشتن به این آدرس انجام می شود. هنگام خواندن یک بایت از پشته ، ابتدا در نشانی که توسط SP به آن اشاره شده است ، خوانده می شود و سپس SP را کاهش می دهد. هنگام استفاده از یک پشته ، به خاطر داشته باشید که عمق پشته (حداکثر تعداد سلولهای حافظه اشغال شده توسط پشته) توسط سخت افزار کنترل نمی شود. با افزایش بیش از حد پشته ، سلولهای حافظه که برای آن در نظر گرفته نشده است می توانند با از دست دادن اطلاعات موجود در آنها اشغال شوند. پشته سخت افزاری برای ذخیره آدرس برگشت هنگام سرویس دهی به وقفه استفاده می شود.

2.7.2. مجموعه دستورات خانواده MCS-51

سیستم فرمان در جداول A2.1 ارائه شده است ... A2.6 از ضمیمه 2. جداول حاوی نام فرمان ، نام آن ، کد عملیاتی دودویی ، اثر اجرای فرمان بر روی پرچم های C ، OV ، AC و P ، طول فرمان در بایت ها (B) و زمان اجرای آن در چرخه دستگاه (C) و همچنین محتوای تحول انجام شده توسط دستورالعمل. کاما به عنوان تعیین کننده برای قسمتهای آدرس در دستورات استفاده می شود. برای بهبود خوانایی ، اگر اسمبلر مورد استفاده از آنها پشتیبانی کند ، می توانید فضاها را بعد از کاما اضافه کنید.

کل مجموعه دستورات را می توان به 5 گروه تقسیم کرد: عملیات انتقال داده ، عملیات حسابی ، عملیات منطقی ، عملیات بیت و عملیات انتقال کنترل.

گروه دستورات برای عملیات انتقال داده(جدول A2.1) همکاری

دارای MOV (انتقال داده بین DSEG و RSEG) ، MOVC (بین CSEG و A) ، MOVX (بین XSEG و A) ، دستورات دسترسی به پشته PUSH و POP و دو دستور مبادله XCH و XCHD است. تمام دستورات انتقال داده ، که در آن گیرنده باتری است ، پرچم برابری P محتویات باتری را تنظیم کنید ، و دستورات آدرس مستقیم که در آن ثبت PSW است گیرنده همه پرچم ها را تغییر می دهد. جالب ترین دستورالعمل MOV است که از چهار روش آدرس دهی استفاده می کند: ثبت مستقیم (A، Rn، DPTR) ، مستقیم (مستقیم) ، غیر مستقیم (@ Ri) ، مستقیم (#data ، # data16). عمل دوم دستورالعمل منبع است ، اولین مورد مقصد است. سه روش آدرس دهی (به جز مستقیم) برای نشان دادن مقصد وجود دارد و هر چهار روش برای نشان دادن منبع هستند. دستور مستقیم MOV سه بایت انتقال مستقیم بین هر دو مکان حافظه (DSEG و SFR) از جمله RSEG را فراهم می کند. برای تبادل با RSEG ، قالبهای دو و یک بایت ویژه ارائه شده است:

دستورالعمل ویژه MOV DPTR ، # data16 ، نشانگر 16 بیتی DPTR را با data16 بار می گذارد.

دستورالعمل MOVC به شما امکان می دهد اطلاعات موجود در حافظه برنامه CSEG را نه در فهرست فرمان دستگاه کنترل بلکه در باتری دستگاه عامل بخوانید. این فرمان از دو روش آدرس دهی استفاده می کند: بر اساس DPTR و نسبت به PC. در هر دو مورد ، افست عدد صحیح علامت دار (فهرست) در باتری ذخیره می شود. باتری همچنین به عنوان گیرنده نتیجه عمل می کند. این دستور به شما امکان می دهد تبدیل سریع جدول را انجام دهید.

با دستورالعمل MOVX به حافظه خارجی دسترسی پیدا می کنید. این تبادل توسط بایت بین باتری و XSEG خارجی انجام می شود. سلول XSEG را می توان از دو طریق مورد بررسی قرار داد: به طور غیر مستقیم از طریق نشانگر 16 بیتی DPTR و به صورت غیر مستقیم از طریق نشانگر 8 بیتی Ri ، i \u003d 0،1 صفحه بندی شد. در حالت دوم ، ثبت P2 به عنوان ثبت صفحه عمل می کند.

دستورات PUSH و POP بدون فشار ، انتقال داده را ارائه می دهند

بین DSEG ، RSEG و SFR.

دستورالعمل تبادل XCH تبادل دو طرفه بایت را فراهم می کند ، و دستورالعمل XCHD کمترین میزان قابل توجهی از اپراتورهای بایت را فراهم می کند.

گروه فرمان حساب(جدول A2.2) همکاری

دستورالعمل هایی برای افزودن افزودنی اضافی ، علاوه بر حمل با ADDC ، تفریق با وام SUBB ، افزایش و کاهش توسط یک INC و DEC ، قالب بسته بندی شده علاوه بر این ، ضرب MUL ، و تقسیم DIV را نیز در اختیار دارد. عملیات روی اعداد صحیح بدون علامت انجام می شود. در عملیات جمع و تفریق ، جمع کننده اولین عملگر و گیرنده نتیجه است. ثبت مستقیم ، آدرس مستقیم مطلق ، مستقیم و غیرمستقیم برای تعریف Operand دوم استفاده می شود. عملیات INC و DEC در مورد یک باتری ، یک ثبت مستقیم با آدرس مستقیم یا یک مکان حافظه با آدرس مستقیم یا غیر مستقیم قابل اعمال است. علاوه بر این ، عملکرد INC در مورد محتویات ثبت نام اشاره گر 16 بیتی DPTR اعمال می شود.

عملیات ضرب و تقسیم عدد صحیح علامت دار شامل انباشت کننده و ثبت B. در هنگام ضرب ، مقدار 8 بیتی A با مقدار 8 بیتی B ضرب می شود و نتیجه 16 بیتی برای جفت BA نوشته می شود. در این حالت ، B ثبت نام قسمت بالایی محصول را انجام دهید. پرچم OV اگر محصول از 255 بزرگتر باشد تنظیم می شود. هنگامی که مقدار 8 بیتی A با مقدار 8 بیتی B تقسیم می شود ، مقدار آن به A نوشته می شود ، و باقی مانده برای B. نوشته می شود.

دستور تصحیح اعشاری جمع کننده DA پس از دستور اضافه شده قرار می گیرد. شرایط باید در کد BCD ارائه شود. اصلاح به روش استاندارد انجام می شود.

گروه فرمان منطق(جدول A2.3 ) شامل سه عملیات معمولی است: ANL - منطقی و ، ORL - منطقی یا ، XRL - منطقی یا منحصر به فرد منطقی. منبع اولین اپرند

یا باتری A یا سلول حافظه به طور مستقیم آدرس دهی می کند. اپراتور دوم توسط یکی از چهار روش اصلی آدرس دهی مشخص شده است. این گروه نیز شامل می شود عملیات تکبیش از محتویات باتری: CLR - واضح ، CPL - وارونگی ، و همچنین RL ، RLC ، RR و RRC - عملیات شیفت های چرخه ای و طولانی به سمت راست و چپ. این همچنین شامل عملکرد تبادل نوت بوک در باتری SWAP است که می تواند به عنوان یک تغییر چرخه یک بایت توسط چهار رقم تعبیر شود.

گروه فرمان بیت(جدول A2.6) شامل شرکت

دستورات SETB - تنظیم مقدار کمی به 1 ، CLR - تنظیم مجدد کمی به 0 ، وارونگی CPL - bit ، ANL و ORL - یا منطقی و منطقی یا محتوای محتویات پرچم C و یک بیت مستقیم خطاب ، انتقال MOV - بیت.

که در عملیات بیتی ، پرچم C به عنوان یک جمع کننده بول عمل می کند. این عملگرها شامل محتویات پرچم C یا بیت مستقیم آدرس منطقه BSEG هستند. عملیات ANL و ORL می توانند از محتوای یک بیت خطاب مستقیم (بیت) یا وارونگی محتوا (/ بیت) استفاده کنند.

که در این گروه همچنین شامل دستوراتی برای شاخه شرطی با نسب استنسخه\u200cی 8-bit افست. پرش شرطی را می توان با هر دو بیت (دستور JB) و پاک (دستور JNB) انجام داد. نکته خاص عبارت JBC است که هنگام تنظیم بیت ، انشعاب را اجرا می کند و همزمان بیت را تا 0 پاک می کند.

کنترل گروه فرمان انتقال(جداول A2.4 و A2.5) با-

دارای دستورات پرش بی قید و شرط AJMP ، LJMP ، SJMP ، JMP ، JZP پرش مشروط ، JZZ ، CJNE ، تماس با ACALL ، LCALL ، بازگشت RET ، RETI ، و اصلاح DJNZ با پرش شرطی است. یک دستور NOP خالی نیز گنجانده شده است.

که در آدرس دهی نسبی به طور گسترده در دستورات انتقال کنترل استفاده می شود و به شما امکان می دهد ماژول های برنامه جابجایی ایجاد کنید. آدرس نسبی است8-بایت افست یک بایت امضا شده است که یک بایت پرش (–128… +127) نسبت به موقعیت رایانه فعلی را فراهم می کند. یا از addr16 مستقیم یا آدرس غیر مستقیم @ A + DPTR می توان برای پرش به هر نقطه دیگری در فضای آدرس 64K استفاده کرد. در حالت دوم ، محتوای A به عنوان عدد صحیح بدون علامت تعبیر می شود. addr11 نوع مستقیم آدرس دهی مستقیم در صفحه فعلی 2KB برای سازگاری با خانواده MCS-48 معرفی شد.

همه این انواع آدرس دهی در دستورالعمل پرش استفاده می شود. دستورات تماس فقط از روشهای آدرس دهی addr11 مستقیم و درون صفحه استفاده می کنند. تمام دستورات شرطی فقط از آدرس دهی نسبی استفاده می کنند.

هنگامی که میکروکنترلر درخواست قطع را تشخیص می دهد ، دستورالعمل LCALL addr16 را تولید می کند ، که به طور خودکار اطمینان می دهد که آدرس برگشتی در پشته ذخیره می شود. اطلاعات وضعیت برنامه (محتوای ثبت PSW) به طور خودکار ذخیره نمی شود. که در آن

زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت آخرین مقالات مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم