برنامه نویسی پورت های MK به زبان C 51. میکروکنترلرهای MCS–51: مدل برنامه، ساختار، دستورات. حالت خواندن پورت

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

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

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

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

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

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

● تا 27 خط ورودی/خروجی داخلی و 16 خط ورودی خارجی.

● یک تایمر شمارنده 8 بیتی.

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

معماری خانواده MCS-51 آنقدر موفق بود که هنوز هم یکی از استانداردهای MKهای 8 بیتی است. بنابراین، موضوع مطالعه میکروکنترلرهای این خانواده است که به طور گسترده در سیستم های کنترل نسبتا ساده استفاده می شود.

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

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

● 8 بیتی CPU CPU متشکل از ALU، دستگاه های کنترلی UUو مولد آدرس اف;

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

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

● چهار پورت قابل برنامه ریزی P0–P3 برای ورودی– خروجی اطلاعات;

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

● بلوک تایمر/ شمارنده BT/C برای حفظ حالت بلادرنگ.

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

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

توسط 16 بیت داخلی اتوبوس آدرسША-16 آدرس تولید شده در CPU به ROM (12 بیت آدرس) و به RAM (8 بیت مرتبه پایین) خروجی می شود.

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

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

ALU شامل

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

باتری A،ارائه توابع رجیستر حسابی اصلی؛

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

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

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

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

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

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

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

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

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

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

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

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

● مدار افزایش SI برای افزایش مقدار آدرس فعلی حافظه برنامهدر هر واحد؛

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

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

● ثبت مولد آدرس XRF برای ذخیره آدرس اجرایی 16 بیتی حافظه برنامه یا آدرس 8/16 بیتی حافظه داده خارجی. این ثبات همچنین برای انتقال داده ها از طریق پورت P0 به استفاده می شود دستگاه های خارجیهنگام اجرای دستورات MOVX @Rm، A و MOVX @DPRT، A.

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

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

● RSN - بایت بالای شمارنده فرمان کامپیوتر.

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

● P2 SFR - لچ پورت P2.

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

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

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

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

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

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

● PCL OUT - خروجی بایت کم شمارنده برنامه PC.

● RSN OUT - خروجی بایت بالای شمارنده فرمان PC.

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

● P2 SFR - لچ پورت P2.

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

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

● بایت کم آدرس A7…A0 از طریق پورت P0 خروجی می شود. یک بایت داده از MK خروجی می شود و در هنگام کار با حافظه برنامه خارجی و حافظه خارجی داده به MK وارد می شود.

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

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

ویژگی های مدار پورت ها

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

● چفت برای رفع بیت داده دریافتی.

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

● گره ارتباط بامرحله خروجی (به جز P2)؛

● مداری برای انتقال یک بیت داده از سمت خروجی پورت، متشکل از بافرهای B2 و B3 (برای پورت P4). لچ یک فلیپ فلاپ D است که توسط سیگنال داخلی "Write to Latch" کلاک می شود. بیت داده از خروجی مستقیم فلیپ فلاپ D را می توان به صورت برنامه ریزی شده از طریق بافر B1 با استفاده از سیگنال "Read Latch" به خط گذرگاه داده داخلی (ID) MK خواند.

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

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

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

حالت ضبط پورت

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

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

دستورات خواندن پورت اطلاعات را مستقیماً از پین های خارجی یک پورت یا از خروجی های لچ می خوانند. در حالت اول، بیت داده از پین پورت به صورت برنامه‌ریزی از طریق بافر B2 با استفاده از سیگنال «خواندن پین» به خط گذرگاه داده داخلی (SD) MK خوانده می‌شود. توجه داشته باشید که سیگنال های "Write to latch"، "Read latch"، "Read pins" در سخت افزار هنگام اجرای دستورات مربوطه تولید می شوند.

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

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

معماری خانواده MCS-51 تا حد زیادی با هدف آن - ساخت و ساز تعیین می شود فشرده - جمع و جورو ارزان دستگاه های دیجیتال. تمام عملکردهای میکروکامپیوتر با استفاده از یک ریز مدار پیاده سازی می شوند. خانواده MCS-51 شامل طیف وسیعی از ریزمدارها از ساده ترین میکروکنترلرها تا میکروکنترلرهای کاملاً پیچیده است. میکروکنترلرهای خانواده MCS-51 به شما این امکان را می دهند که هم وظایف کنترلی را برای دستگاه های مختلف انجام دهید و هم اجزای جداگانه را پیاده سازی کنید. مدار آنالوگ. همه ریز مدارهای این خانواده کار می کنند با همین سیستم فرماندهی، اکثر آنها در موارد یکسان با انجام می شوند پین اوت مطابق(شماره گذاری پاها برای بدن). این به شما امکان می دهد از ریزمدارهای سازنده های مختلف (مانند اینتل، دالاس، اتمل، فیلیپس و غیره) برای دستگاه توسعه یافته استفاده کنید. بدون دوباره کاری نمودار شماتیکدستگاه ها و برنامه ها.

شکل 1. بلوک دیاگرام کنترلر K1830BE751

بلوک دیاگرام کنترلر در شکل 1 ارائه شده است و از واحدهای عملکردی اصلی زیر تشکیل شده است: واحد کنترل، واحد حسابی-منطقی، واحد تایمر/شمارگر، رابط سریال و واحد وقفه، شمارنده برنامه، حافظه داده و حافظه برنامه. ارتباط دو طرفه با استفاده از یک گذرگاه داده 8 بیتی داخلی انجام می شود. بیایید نگاهی دقیق تر به هدف هر بلوک بیندازیم. تقریباً تمام اعضای خانواده MCS-51 بر اساس این طرح ساخته شده اند. ریزمدارهای مختلف این خانواده فقط در رجیسترهای ویژه (از جمله تعداد پورت ها) متفاوت هستند. سیستم فرمان همه کنترلرهاخانواده MCS-51 شامل 111 است دستورات اساسیبا فرمت 1، 2 یا 3 بایت و هنگام جابجایی از یک تراشه به چیپ دیگر تغییر نمی کند. این امر قابلیت حمل عالی برنامه را از یک تراشه به تراشه دیگر تضمین می کند.

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

واحد زمان‌بندی و کنترل برای تولید سیگنال‌های همگام‌سازی و کنترل طراحی شده است که هماهنگی عملکرد مشترک واحدهای رایانه مرکزی را در تمام حالت‌های مجاز عملکرد آن تضمین می‌کند. واحد کنترل شامل:

  • دستگاهی برای تشکیل فواصل زمانی،
  • منطق ورودی-خروجی،
  • ثبت فرمان
  • ثبت مدیریت انرژی،
  • رمزگشای فرمان، منطق کنترل کامپیوتر.

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

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

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

همراه با مقاله "معماری میکروکنترلرهای MCS-51" بخوانید:


http://site/MCS51/tablms.php


http://site/MCS51/SysInstr.php


http://site/MCS51/port.php

در حال حاضر شرکت های مختلف تغییرات و آنالوگ های زیادی از این خانواده را تولید می کنند، چه توسط اینتل و چه توسط سایر سازندگان، سرعت ساعت و ظرفیت حافظه ده برابر شده و همچنان در حال افزایش است. مجموعه ماژول‌های تعبیه‌شده در LSI نیز در حال گسترش است؛ تعداد زیادی از مدل‌های مدرن دارای یک ADC پرسرعت داخلی با حداکثر 12 هستند و اکنون ممکن است بیت‌های بیشتری وجود داشته باشد. اما خانواده MCS51 بر پایه Intel LSI 8051, 80С51, 8751, 87С51, 8031, 80С31 است که اولین نمونه های آن در سال 1980 منتشر شد.

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

بنابراین 80С51 یک LSI مبتنی بر فناوری k-MOS با ROM ماسک روی تراشه است، 8031 ​​یک LSI n-MOS بدون حافظه برنامه (ROM، RPOM) روی یک تراشه است، 8751 یک LSI n-MOS با یک مقیم (واقع بر روی تراشه) RPOM با پاک کردن فرابنفش. ما 8751 LSI را بیشتر در نظر خواهیم گرفت، و در صورت لزوم، در مورد تفاوت بین مدارهای دیگر، با ذکر پارامترهایی که برای اولین LSI های سریال منتشر شده اند، رزرو می کنیم. در صورت لزوم، می توانید اطلاعات اضافی در مورد تمام تغییرات مدرن در فهرست راهنمای شرکت و اسناد فنی بیابید.

الف. مشخصات کلی و تخصیص پین

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

جدول 3.1.

مدارهای میکرو

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

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

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

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

مصرف جریان، mA

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

تنظیم دوره ای

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

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

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

    حافظه برنامه 4 کیلوبایت (فقط 8751 و 87C51)؛

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

    چهار پورت ورودی/خروجی قابل برنامه ریزی هشت بیتی؛

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

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

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

    مولد ساعت

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

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

    128 پرچم کنترل شده توسط نرم افزار (پردازنده بیت، زیر را ببینید).

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

1). بازنشانی عمومی 2) عملکرد عادی. 3) حالت مصرف انرژی کم و حالت بیکار. 4). حالت برنامه نویسی برای RPOM مقیم، در صورت وجود.

در اینجا ما بر روی دو حالت عملیاتی اول تمرکز خواهیم کرد؛ شرح مفصلی از ترکیب و عملکرد MK در همه حالت ها در پیوست P1 ارائه شده است.

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

در ناحیه بالای آدرس‌های RAM مسکونی، ثبات‌های عملکرد ویژه (SFR، ثبت‌های عملکرد ویژه) وجود دارد. هدف آنها در جدول آورده شده است. 3.2.

جدول 3.2.

تعیین

نام

باتری

ثبت نام ب

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

نشانگر پشته

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

بایت کم

بایت بالا

ثبت اولویت وقفه

وقفه فعال کردن ثبت نام

ثبت تایمر/حالت شمارنده

ثبت تایمر/کنترل شمارنده

تایمر/ شمارنده 0. بایت بالا

تایمر/ شمارنده 0. بایت کم

تایمر/ شمارنده 1. بایت بالا

تایمر/ شمارنده 1. بایت کم

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

بافر سریال

مدیریت مصرف

* - ثبت، اجازه می دهد به صورت بیتی خطاب به

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

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

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

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

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

جدول 3.3.

تعیین

جدول 3.4.

تعیین

تخصیص بیت

دسترسی بیتی

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

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

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

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

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

به صورت برنامه ای

به صورت برنامه ای

فهرست کار ثبت بانک

به صورت برنامه ای

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

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

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

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

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

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

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

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

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

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

Port0 - PortZ. بیت های جداگانه رجیسترهای توابع ویژه P0، P1، P2، RZ بیت های "چفت" پورت های P0، P1، P2، RZ هستند.

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

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

شمارش بیت به ترتیب برای تایمر / شمارنده 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 BQ 1 E.A.

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

هنگام عملکرد، MC ارائه می دهد:

    حداقل زمان اجرای دستورات جمع 1 میکرو ثانیه است.

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

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

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

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

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

میکروکنترلر

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

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

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

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

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

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

    نشانگر پشته مقدار برابر با 07H را می گیرد.

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

    RAM BANK 0 را انتخاب می کند، پورت های P0-RZ را برای دریافت داده ها و تعیین آماده می کند

پین های ALE و PME را به عنوان ورودی برای کلاکینگ خارجی به اشتراک می گذارد.

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

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

      لچ های پورت P0-PZ را روی "1" تنظیم می کند.

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

جدول 3.5.

اطلاعات

نا معلوم

0ХХХ0000 ولت برای k-MOS 0XXXXXXB برای n-MOS

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

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

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

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

نتیجه ALE (آ لباس L طول E قادر اجازه جوان آدرس ها) خروجی قسمت پایین آدرس را از طریق پورت P0 بارق می کند. خروجی همچنین هنگام برنامه ریزی RPOM استفاده می شود، در حالی که یک پالس بارق برای فرآیند برنامه نویسی به آن ارائه می شود.

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

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

از قبل ضبط شود

از داخلی

قفل کنترل

سوئیچ عملکرد

Vcc

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

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

لاستیک های او MK D Q

برای چفت کردن C Q بنویسید

قفل را بخوانید

پین پورت

حالت قفل هنگام فعال شدن به گذرگاه داخلی MC منتقل می شود

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

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

I/O فراتر از این بندر

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

برنج. 3.3. نمودار عملکردی پورت میکروکنترلر

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

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

بندر P1 - پورت ورودی/خروجی دو طرفه جهانی بدون عملکردهای جایگزین.

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

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

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

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

P3.2 INT0` (INT erupt, interrupt) – ورودی وقفه خارجی 0.

P3.3 INT1` – ورودی وقفه خارجی 1.

P3.4 С/T0 – ورودی تایمر/ شمارنده داخلی صفر.

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

P3.6 WR` (دبلیو rite, write) – خروجی برای کنترل چرخه نوشتن در حافظه داده.

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

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

جدول 3.6.

تعیین

هدف خروجی

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

خروجی را وارد کنید

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

پورت P3 دو طرفه 8 بیتی با ویژگی های اضافی

خروجی را وارد کنید

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

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

ورودی وقفه خارجی 0-INT0`

ورودی وقفه خارجی 1-INT1`

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

ورودی تایمر/ شمارنده 1: - T1

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

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

سرنخ برای اتصال تشدید کننده کوارتز.

خروجی ورودی

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

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

خروجی را وارد کنید

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

تثبیت آدرس سیگنال خروجی را فعال می کند. هنگام برنامه ریزی سیگنال RPOM: PROG

خروجی را وارد کنید

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

خروجی را وارد کنید

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

خروجی را وارد کنید

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

طرح سخنرانی

1. معرفی

2. دستورات حسابی و منطقی

3. دستورات انتقال داده

4. عملیات بولی

5. دستورالعمل های پرش

1. معرفی

سیستم فرمان MCS-51از مجموعه ای از دستورالعمل ها پشتیبانی می کند که برای اجرای الگوریتم های کنترل محرک 8 بیتی طراحی شده است. استفاده از روش های سریع برای آدرس دهی رم داخلی و انجام عملیات بیت بر روی ساختارهای داده کوچک امکان پذیر است. یک سیستم گسترده برای آدرس دهی متغیرهای تک بیتی به عنوان یک نوع داده مستقل وجود دارد که امکان استفاده از بیت های جداگانه را در دستورات منطقی و کنترلی جبر بولی فراهم می کند.

حالت های آدرس دهی : مجموعه دستورات MCS-51از حالت های آدرس دهی زیر پشتیبانی می کند. آدرس دهی مستقیم: عملوند با آدرس 8 بیتی در دستورالعمل تعیین می شود. آدرس دهی مستقیم فقط برای نیمه پایین حافظه داخلی داده و رجیسترها استفاده می شود SFR. آدرس دهی غیر مستقیم: این دستورالعمل به یک ثبات حاوی آدرس عملوند آدرس می دهد. این نوعآدرس دهی برای رم خارجی و داخلی استفاده می شود. از ثبات ها می توان برای تعیین آدرس های 8 بیتی استفاده کرد R0و R1بانک ثبت نام یا نشانگر پشته انتخاب شده است SP. برای آدرس دهی 16 بیتی، فقط از ثبات اشاره گر داده استفاده می شود DPTR.

دستورالعمل ثبت نام : ثبت می کند R0-R7بانک ثبت فعلی را می توان از طریق دستورالعمل های خاصی که حاوی یک فیلد 3 بیتی است که شماره ثبت را در خود دستورالعمل نشان می دهد، آدرس دهی کرد. در این حالت، فیلد آدرس مربوطه در دستور وجود ندارد. عملیات با استفاده از رجیسترهای ویژه: برخی از دستورالعمل ها از ثبات های فردی استفاده می کنند (به عنوان مثال، عملیات انباشته، DPTR، و غیره.). در این حالت آدرس عملوند به هیچ وجه در دستور مشخص نشده است. توسط کد عملیات از پیش تعیین شده است.

ثابت های فوری : ثابت را می توان مستقیماً در دستور بعد از کد عملیاتی قرار داد.

آدرس دهی شاخص : آدرس دهی فهرست فقط برای دسترسی به حافظه برنامه و فقط در حالت خواندن قابل استفاده است. در این حالت جداول موجود در حافظه برنامه مشاهده می شود. رجیستر 16 بیتی ( DPTRیا برنامه شمارنده) آدرس پایه جدول مورد نظر را نشان می دهد و انباشته کننده نقطه ورود به آن را نشان می دهد.

مجموعه دستوراتدارای 42 دستور یادداشت برای تعیین 33 عملکرد این سیستم. سینتکس اکثر دستورات زبان اسمبلی شامل یک تابع حافظه نویسی است که با عملوندهایی که روش های آدرس دهی و انواع داده ها را نشان می دهد، تشکیل شده است. انواع مختلفداده‌ها یا حالت‌های آدرس‌دهی توسط عملوندهای مجموعه تعیین می‌شوند، نه با تغییرات در حافظه.

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

جدول. نمادها و نمادهای مورد استفاده در سیستم فرمان

نامگذاری، نماد

هدف

باتری

ثبت نام بانک ثبت فعلی انتخاب شده

شماره رجیستر بارگذاری شده که در دستور مشخص شده است

مستقیم

آدرس سلول داده داخلی 8 بیتی با آدرس دهی مستقیم، که می تواند یک سلول RAM داده داخلی (0-127) یا یک ثبت تابع ویژه SFR (128-255) باشد.

سلول RAM داده داخلی 8 بیتی غیرمستقیم آدرس دهی می شود

8 بیتی مستقیمداده های موجود در کد عملیات (OPC)

داده H

مهم ترین بیت ها (15-8) از داده های 16 بیتی فوری

dataL

حداقل بیت های مهم (7-0) از داده های 16 بیتی فوری

آدرس مقصد 11 بیتی

adrL

کمترین مقدار قابل توجه آدرس مقصد

بایت افست امضا شده 8 بیتی

بیت قابل آدرس دهی مستقیم که آدرس آن حاوی COP واقع در RAM داده داخلی یا ثبت تابع خاص SFR است

a15، a14...a0

بیت های آدرس مقصد

محتویات عنصر X

محتویات در آدرس ذخیره شده در عنصر X

بیت M عنصر X


+

*
و
یا
XOR
/ایکس

عملیات:
علاوه بر این
منها کردن
ضرب
تقسیمات
ضرب منطقی (عملیات AND)
جمع منطقی (عملیات OR)
اضافه کردن مدول 2 (انحصاری OR)
وارونگی عنصر X

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

2. دستورات حسابی و منطقی

چگونه ص مثال دستور حساب، عملیات جمع را می توان با یکی از دستورات زیر انجام داد.

اضافه کردنآ,7 اف 16 – عدد 7 را به محتویات ثبت الف اضافه کنید F 16 و نتیجه را در ثبات A ذخیره کنید.

اضافه کردنآ,@ آر0 – به محتویات ثبت الف شماره ای که آدرس آن را اضافه می کند (@ – تجاری در ) در یک ثبات ذخیره می شودآر 0 (آدرس غیر مستقیم)، و نتیجه را در ثبات A ذخیره کنید.

A,R7 را اضافه کنید- محتویات ثبت A را به محتویات ثبت اضافه کنیدآر 7 و نتیجه را در ثبات A ذخیره کنید.

A,#127 را اضافه کنید– به محتویات ثبت A عددی اضافه کنید که آدرس سلول ذخیره آن 127 است ( # – نماد عدد)، و نتیجه را در رجیستری ذخیره کنید تی- ری A.

تمام دستورات حسابی به استثنای دستورالعمل در یک چرخه ماشین اجرا می شوند INC DPTR(افست نشانگر داده DPTRبه بایت بعدی)، نیاز به دو چرخه ماشین، و همچنین عملیات ضرب و تقسیم انجام شده در 4 چرخه ماشین. هر بایت در حافظه داخلی داده را می توان بدون استفاده از باتری افزایش و کاهش داد.

دستورالعمل ها MUL ABضرب (ضرب) داده های موجود در انباشته را با داده های ثبت B انجام می دهد و حاصلضرب را در ثبات های A (نیمه پایین) و B (نیمه بالا) قرار می دهد.

دستورالعمل ها DIV ABمحتویات انباشته را بر مقدار ثبت B تقسیم می کند (تقسیم می کند) و بقیه را در B و ضریب را در انباشته می گذارد.

دستورالعمل ها DA Aبرای عملیات حسابی اعشاری باینری (عملیات حسابی روی اعداد نمایش داده شده در کد اعشاری باینری) در نظر گرفته شده است. عدد باینری را به تبدیل نمی کند BCD، اما فقط هنگام جمع کردن دو عدد اعشاری باینری نتیجه صحیح را ارائه می دهد.

مثال دستور منطقی: یک عملیات AND منطقی را می توان با یکی از دستورات زیر انجام داد:

ANLآ,7 اف 16 - ضرب منطقی محتویات ثبت A در عدد 7 F 16 و نتیجه در ثبات A ذخیره می شود.

ANLآ,@ آر1 - ضرب منطقی محتویات ثبت A در عددی که آدرس آن در رجیستر ذخیره شده استآر 1 (آدرس غیر مستقیم) و نتیجه را در ثبات A ذخیره کنید.

ANL A, R6- ضرب منطقی محتویات ثبت A در محتویات ثبتآر 6، و نتیجه را در ثبات A ذخیره کنید.

ANL A,#53 - ضرب منطقی محتویات ثبات A در عددی که آدرس سلول ذخیره سازی آن 53 16 است و نتیجه در ثبات A ذخیره می شود.

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

عملیات شیفت چرخشی RL A، RLC A و غیره محتویات آکومولاتور را یک بیت به سمت راست یا چپ حرکت می دهند. در مورد شیفت چرخه ای به چپ، بیت کم اهمیت به مهم ترین موقعیت منتقل می شود. در مورد جابجایی چرخه ای سمت راست، برعکس اتفاق می افتد.

عمل SWAP Aتترادهای کم و زیاد در باتری را مبادله می کند.

3. دستورات انتقال داده

تیم MOV dest,srcبه شما امکان می دهد داده ها را بین سلول های RAM داخلی یا مناطق ثبت عملکرد خاص منتقل کنید SFRبدون استفاده از باتری در این حالت، کار با نیمه بالایی رم داخلی فقط در حالت آدرس دهی غیر مستقیم و دسترسی به رجیسترها قابل انجام است. SFR- فقط در حالت آدرس دهی مستقیم.

در همه ریز مدارها MCS-51پشته مستقیماً در حافظه داده ساکن قرار می گیرد و به سمت بالا رشد می کند. دستورالعمل ها فشار دادنابتدا مقدار را در ثبات نشانگر پشته افزایش می دهد SP، و سپس یک بایت از داده ها را روی پشته می نویسد. تیم ها فشار دادنو ترکیدنفقط در حالت آدرس دهی مستقیم (نوشتن یا بازیابی یک بایت) استفاده می شود، اما هنگام آدرس دهی غیرمستقیم از طریق ثبات، پشته همیشه قابل دسترسی است. SP. بنابراین، پشته همچنین می تواند از 128 بایت بالای حافظه داده استفاده کند. همین ملاحظات امکان استفاده از دستورالعمل های پشته برای آدرس دهی رجیسترها را منتفی می کند SFR.

دستورالعمل های انتقال داده شامل عملیات انتقال 16 بیتی است MOV DPTR,#data16، که برای مقداردهی اولیه رجیستر اشاره گر داده استفاده می شود DPTRهنگام مشاهده جداول در حافظه برنامه یا دسترسی به حافظه خارجی داده.

عمل XCH A، بایتبرای تبادل داده بین انباشته کننده و بایت آدرس دهی شده استفاده می شود. تیم XCHD A,@Riمشابه مورد قبلی است، اما فقط برای تترادهای پایین تر درگیر در مبادله عملوندها انجام می شود.

برای دسترسی به حافظه خارجی، فقط از آدرس دهی غیر مستقیم استفاده می شود. در مورد آدرس های تک بایتی، از ثبات ها استفاده می شود R0یا R1بانک ثبت فعلی، و برای 16 بیت - ثبت اشاره گر داده DPTR. با هر روشی برای دسترسی به حافظه خارجی داده، باتری نقش منبع یا گیرنده اطلاعات را بازی می کند.

برای دسترسی به جداول موجود در حافظه برنامه از دستورات زیر استفاده کنید:

MOVC A,@A+ DPTR ;

MOVC A,@A+ کامپیوتر .

محتویات ثبات نشانگر داده به عنوان آدرس پایه جدول استفاده می شود DPTRیا کامپیوتر(شمارگر برنامه)، و افست از آ. این دستورالعمل ها منحصراً برای خواندن داده ها از حافظه برنامه استفاده می شود، اما برای نوشتن روی آن استفاده نمی شود.

4. عملیات بولی

ریز مدارها MCS-51حاوی یک پردازنده "بولی" است. رم داخلی دارای 128 بیت قابل آدرس دهی مستقیم است. فضای ثبت تابع ویژه SFRهمچنین می تواند تا فیلدهای 128 بیتی را پشتیبانی کند. دستورالعمل های بیتی عملیات شاخه های شرطی، انتقال، بازنشانی، وارونگی، AND و OR را انجام می دهند.تمام بیت های مشخص شده در حالت آدرس دهی مستقیم در دسترس هستند.

کمی حمل کنید CFدر تابع ویژه "کلمه وضعیت برنامه" را ثبت کنید P.S.W." به عنوان یک انباشته کننده یک بیتی برای یک پردازنده بولی استفاده می شود.

5. دستورالعمل های پرش

آدرس های عملیات پرش در زبان اسمبلی با یک برچسب یا با یک مقدار واقعی در فضای حافظه برنامه نشان داده می شود. آدرس های شاخه مشروط در یک افست نسبی جمع می شوند - یک بایت علامت به شمارنده برنامه اضافه می شود کامپیوتراگر شرط انتقال برآورده شود. مرزهای چنین انتقال هایی بین منفی 128 و 127 نسبت به اولین بایت زیر دستورالعمل قرار دارند. در تابع ویژه "کلمه وضعیت برنامه" را ثبت کنید P.S.W."هیچ پرچم صفر وجود ندارد، بنابراین دستورالعمل ها JZو JNZشرط "برابر با صفر" را هنگام آزمایش داده ها در انباشته بررسی کنید.

سه نوع دستور پرش بدون قید و شرط وجود دارد: SJMP, LJMPو AJMP- آدرس های مقصد که در قالب متفاوت هستند. دستورالعمل ها SJMPآدرس را به عنوان یک افست نسبی کد می کند و دو بایت می گیرد. فاصله پرش به محدوده منهای 128 تا 127 بایت نسبت به دستورالعمل زیر محدود شده است. SJMP.

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

تیم AJMPاز ثابت آدرس 11 بیتی استفاده می کند. دستور از دو بایت تشکیل شده است. هنگامی که این دستورالعمل اجرا می شود، 11 بیت پایینی شمارنده آدرس با آدرس 11 بیتی دستورالعمل جایگزین می شود. پنج بیت مهم شمارنده برنامه کامپیوتربدون تغییر باقی می ماند. بنابراین، انتقال را می توان در یک بلوک 2K بایتی انجام داد که در آن دستورالعمل زیر دستورالعمل قرار دارد. AJMP.

دو نوع فراخوانی فرمان به یک زیربرنامه وجود دارد: LCALLو تماس. دستورالعمل ها LCALLاز آدرس 16 بیتی زیربرنامه فراخوانی شده استفاده می کند. در این مورد، زیربرنامه را می توان در هر نقطه از حافظه برنامه قرار داد. دستورالعمل ها تماساز یک آدرس زیر روال 11 بیتی استفاده می کند. در این حالت، روتین فراخوانی شده باید در یک بلوک 2K بایتی با دستورالعمل زیر قرار گیرد تماس. هر دو نسخه دستورالعمل، آدرس دستور بعدی را روی پشته فشار می دهند و آن را در شمارنده برنامه بارگذاری می کنند. کامپیوتر مقدار جدید مربوطه

زیربرنامه با دستورالعمل به پایان می رسد RET، که به شما امکان می دهد به دستور زیر برگردید زنگ زدن. این دستورالعمل آدرس برگشتی را از پشته خارج می کند و آن را در شمارنده برنامه بارگذاری می کند. کامپیوتر . دستورالعمل ها RETIبرای بازگشت از روتین های وقفه استفاده می شود. تنها تفاوت RETIاز جانب RETآن است RETIبه سیستم اطلاع می دهد که پردازش وقفه کامل شده است. اگر در زمان اجرا RETIهیچ وقفه دیگری وجود ندارد، پس یکسان است RET.

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

تیم CJNEدو عملوند خود را به عنوان اعداد صحیح بدون علامت مقایسه می کند و اگر عملوندهای مقایسه شده برابر نباشند به آدرس مشخص شده در آن می پرد. اگر عملوند اول کمتر از دومی باشد، بیت حمل CF روی "1" تنظیم شده است.

تمام دستورالعمل ها به صورت مونتاژ شده 1، 2 یا 3 بایت را اشغال می کنند.

معماری خانواده میکروکنترلرMCS-51

یادداشت های سخنرانی برای دوره ها

"ریزپردازنده ها در سیستم های کنترل"، "فناوری ریزپردازنده"

"ابزارها و سیستم های ریزپردازنده"

برای دانشجویان تمام انواع رشته های تحصیلی

072000 – استانداردسازی و صدور گواهینامه

210200 – اتوماسیون فرآیندهای تکنولوژیکی

230104 – سیستم های طراحی به کمک کامپیوتر

تامبوف 2005

مقدمه.. 3

1. ساختار میکروکنترلر اینتل 8051. 3

1.1. سازماندهی حافظه 5

1.2. دستگاه حسابی-منطقی. 6

1.3. حافظه مقیم برای برنامه ها و داده ها. 7

1.4. انباشته کننده و رجیسترهای هدف عمومی. 8

1.5. وضعیت برنامه ثبت کلمه و پرچم های آن. 9

1.6. ثبت اشاره گر 10

1.7. ثبت توابع ویژه یازده

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

1.9. پورت های ورودی/خروجی اطلاعات موازی 12

1.10. تایمر / شمارنده 13

1.11. درگاه سریال. 18

1.11.1. ثبت نام SBUF.. 18

1.11.2. حالت های عملکرد پورت سریال 18

1.11.3. ثبت نام SCON.. 19

1.11.4. سرعت دریافت / انتقال 21

1.12. سیستم وقفه. 22

2. سیستم فرمان میکروکنترلر اینتل 8051. 26

2.1. اطلاعات کلی. 26

2.1.1. انواع دستورات 27

2.1.2. انواع عملوند 28

2.1.3. روش های آدرس دهی داده ها سی

2.1.4. پرچم های نتیجه 31

2.1.5. آدرس دهی نمادین 32

2.2. دستورات انتقال داده 33

2.2.1. ساختار پیوندهای اطلاعاتی 33

2.2.2. دسترسی به باتری 33

2.2.3. دسترسی به حافظه خارجی داده 34

2.2.4. دسترسی به حافظه برنامه ... 34


2.2.5. دسترسی به پشته 35

2.3. عملیات حسابی 35

2.4. عملیات منطقی 39

2.5. کنترل دستورات انتقال 43

2.5.1. انتقال طولانی 43

2.5.2. انتقال مطلق 43

2.5.3. انتقال نسبی 44

2.5.4. انتقال غیر مستقیم 44

2.5.5. پرش های مشروط.. 44

2.5.6. برنامه های فرعی.. 47

2.6. عملیات با بیت 48

سوالات تستی ... 49

ادبیات.. 50

پیوست سیستم فرمان اینتل 8051. 51

معرفی

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

میکروکنترلرهای تک تراشه 8 بیتی از خانواده MCS-51 به طور گسترده مورد استفاده قرار می گیرند. این خانواده بر اساس میکروکنترلر اینتل 8051 شکل گرفته است که به دلیل طراحی خوب معماری، محبوبیت زیادی در بین توسعه دهندگان سیستم های کنترل ریزپردازنده به دست آورده است. معماری میکروکنترلر مجموعه‌ای از منابع سخت‌افزاری و سیستم‌های فرمان داخلی و خارجی است که توسط نرم‌افزار قابل دسترسی هستند.

متعاقباً، اینتل حدود 50 مدل را بر اساس هسته عملیاتی میکروکنترلر اینتل 8051 منتشر کرد.در همان زمان، بسیاری از شرکت‌های دیگر مانند Atmel، Philips شروع به تولید میکروکنترلرهای خود کردند که در استاندارد MCS-51 توسعه یافته بودند. نیز وجود دارد آنالوگ داخلیمیکروکنترلر اینتل 8051 - تراشه K1816BE51.

2. ساختار میکروکنترلر اینتل 8051

میکروکنترلر اینتل 8051 مبتنی بر فناوری سطح بالا n-MOS است. مشخصات اصلی آن به شرح زیر است:

· پردازنده مرکزی هشت بیتی بهینه شده برای اجرای توابع کنترل.

· ژنراتور ساعت داخلی (حداکثر فرکانس 12 مگاهرتز)؛

فضای آدرس حافظه برنامه - 64 کیلوبایت.

· فضای آدرس حافظه داده - 64 کیلوبایت.

· حافظه داخلی برنامه - 4 کیلوبایت.

· حافظه داخلی داده - 128 بایت.

· قابلیت های اضافی برای انجام عملیات جبر بولی (عملیات بیتی).

· 2 تایمر / شمارنده چند منظوره شانزده بیتی.

· فرستنده و گیرنده ناهمزمان تمام دوبلکس (پورت سریال).

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

شکل 1 - بلوک دیاگرام میکروکنترلر 8051 اینتل

اساس بلوک دیاگرام (شکل 1) توسط یک گذرگاه 8 بیتی دو طرفه داخلی تشکیل شده است که گره ها و دستگاه های اصلی میکروکنترلر را به هم متصل می کند: حافظه برنامه مقیم (RPM)، حافظه داده ساکن (RDM)، حسابی-منطقی واحد (ALU)، ثبت توابع ویژه واحد، واحد کنترل (CU)، پورت های ورودی/خروجی موازی (P0-P3)، و همچنین تایمرهای قابل برنامه ریزی و یک پورت سریال.

2.1. سازماندهی حافظه

این میکروکنترلر دارای حافظه داخلی (مسکونی) و خارجی برنامه ها و داده ها می باشد. حافظه برنامه مقیم (RPM) دارای ظرفیت 4 کیلوبایت و حافظه مقیم داده (RDM) دارای ظرفیت 128 بایت است.


بسته به تغییر میکروکنترلر، RPM به صورت رام ماسک، رام قابل برنامه ریزی یک بار یا قابل برنامه ریزی مجدد پیاده سازی می شود.

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

EA = VCC (ولتاژ منبع تغذیه) - دسترسی به رام داخلی.

EA=VSS (پتانسیل زمین) - دسترسی به رام خارجی.

برنامه خارجی و حافظه داده می تواند هر کدام 64 کیلوبایت باشد و با استفاده از پورت های P0 و P2 آدرس دهی شود. شکل 2 کارت حافظه اینتل 8051 را نشان می دهد.

شکل 2 - سازماندهی حافظه اینتل 8051

strobe خواندن رام خارجی - (Program Store Enable) هنگام دسترسی به حافظه برنامه خارجی تولید می شود و در هنگام دسترسی به رام واقع بر روی تراشه غیرفعال است.

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

شکل 3 - نقشه قسمت پایین حافظه برنامه

2.2. واحد منطق حسابی

واحد منطق حسابی 8 بیتی (ALU) می تواند عملیات حسابی جمع، تفریق، ضرب و تقسیم را انجام دهد. عملیات منطقی AND، OR، OR انحصاری، و همچنین عملیات جابجایی چرخه ای، تنظیم مجدد، وارونگی و غیره. رجیسترهای غیرقابل دسترسی نرم افزاری T1 و T2 که برای ذخیره موقت عملوندها، مدار تصحیح اعشاری (DCU) و مدار تولید ویژگی در نظر گرفته شده است. به نتیجه عملکرد ورودی ها (PSW) متصل می شوند.

عملیات جمع ساده در ALU برای افزایش محتویات رجیسترها، پیشبرد ثبت اشاره گر داده (RAR) و محاسبه خودکار آدرس حافظه ساکن برنامه بعدی استفاده می شود. ساده ترین عملیات تفریق در ALU برای کاهش ثبات ها و مقایسه متغیرها استفاده می شود.

ساده ترین عملیات به طور خودکار "پشت سر" را برای انجام عملیاتی مانند افزایش جفت های ثبت 16 بیتی تشکیل می دهند. ALU مکانیزمی را برای اجرای آبشاری عملیات ساده برای اجرای دستورات پیچیده پیاده سازی می کند. بنابراین، به عنوان مثال، هنگام اجرای یکی از دستورات انتقال کنترل شرطی، بر اساس نتیجه مقایسه در ALU، شمارنده برنامه (PC) سه بار افزایش می یابد، RDM دو بار خوانده می شود، مقایسه حسابی دو متغیر انجام می شود. یک آدرس انتقال 16 بیتی تشکیل می شود و تصمیم گیری در مورد انجام یا عدم انتقال طبق برنامه گرفته می شود. تمام عملیات فوق تنها در 2 میکرو ثانیه انجام می شود.

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

بنابراین، ALU می تواند با چهار نوع شی اطلاعاتی کار کند: بولی (1 بیت)، دیجیتال (4 بیت)، بایت (8 بیت) و آدرس (16 بیت). ALU 51 عملیات مختلف را برای ارسال یا تبدیل این داده ها انجام می دهد. از آنجایی که 11 حالت آدرس دهی وجود دارد (7 حالت برای داده و 4 حالت برای آدرس)، با ترکیب عملیات و حالت آدرس دهی، تعداد اصلی 111 دستورالعمل به 255 از 256 مورد ممکن با یک کد عملیاتی تک بایتی افزایش می یابد.

2.3. برنامه مقیم و حافظه داده

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

حافظه برنامه RPM دارای ظرفیت 4 کیلوبایت است و برای ذخیره دستورات، ثابت ها، کلمات کنترل اولیه، جداول تبدیل متغیرهای ورودی و خروجی و غیره طراحی شده است. حافظه دارای یک گذرگاه آدرس 16 بیتی است که دسترسی از طریق آن فراهم می شود. شمارنده برنامه رایانه شخصی یا از رجیستر نشانگر داده (DPTR). DPTR به عنوان یک ثبات پایه برای پرش های غیر مستقیم برنامه عمل می کند یا در عملیات جدول استفاده می شود.

حافظه داده RDM برای ذخیره متغیرها در طول اجرای یک برنامه کاربردی طراحی شده است، با یک بایت آدرس دهی می شود و دارای ظرفیت است.
128 بایت علاوه بر این، فضای آدرس آن در مجاورت آدرس های ثبات های تابع خاص است که در جدول آمده است. 1.

حافظه برنامه، مانند حافظه داده، قابل گسترش است
64 کیلوبایت با اتصال تراشه های خارجی.

میز 1

بلوک ثبت عملکرد ویژه

نام

باتری

رجیستر گسترش دهنده انباشته

کلمه وضعیت برنامه

ثبت نشانگر پشته

ثبت نشانگر داده

ثبت اولویت وقفه

وقفه ثبت نام ماسک

ثبت تایمر/حالت شمارنده

کنترل تایمر / ثبت وضعیت

تایمر 0 (بایت بالا)

تایمر 0 (بایت کم)

تایمر 1 (بایت بالا)

تایمر 1 (بایت کم)

ثبت کنترل فرستنده گیرنده

بافر فرستنده گیرنده

رجیستر کنترل قدرت

توجه داشته باشید.رجیسترهایی که نام آنها با (*) مشخص شده است اجازه آدرس دهی به بیت های جداگانه را می دهد.

2.4. آکومولاتور و رجیسترهای عمومی

انباشتگر (A) منبع عملوند و محل نتیجه هنگام انجام عملیات حسابی، منطقی و تعدادی از عملیات انتقال داده است. علاوه بر این، عملیات shift، بررسی صفر، تولید پرچم برابری و غیره فقط با استفاده از انباشته قابل انجام است.

کاربر چهار بانک از 8 رجیستر با هدف عمومی R0-R7 در اختیار دارد (شکل 9). با این حال، می توان از رجیسترهای تنها یکی از چهار بانک استفاده کرد که با استفاده از بیت ثبت PSW انتخاب می شود.

2.5. وضعیت برنامه ثبت کلمه و پرچم های آن

هنگامی که بسیاری از دستورالعمل ها در ALU اجرا می شوند، تعدادی از ویژگی های عملیات (پرچم ها) تولید می شوند که در ثبات کلمه وضعیت برنامه (PSW) ثبت می شوند. روی میز 2 فهرستی از پرچم های PSW را ارائه می دهد، نام نمادین آنها را می دهد و شرایط شکل گیری آنها را شرح می دهد.

جدول 2

فرمت ورد وضعیت برنامه PSW

نام و هدف

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

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

پرچم 0. می تواند توسط برنامه به عنوان یک پرچم مشخص شده توسط کاربر تنظیم، پاک یا بررسی شود.

انتخاب بانک ثبت. تنظیم و تنظیم مجدد توسط نرم افزار برای انتخاب یک بانک فعال از رجیسترها (جدول 3)

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

استفاده نشده

پرچم برابری تنظیم و تنظیم مجدد توسط سخت افزار در هر چرخه و ثابت کردن عدد زوج یا فرد از یک بیت در انباشته کننده، یعنی برابری انجام می شود.

جدول 3

انتخاب یک بانک ثبت فعال

مرزهای آدرس

فعال ترین پرچم PSW پرچم حمل است که در بسیاری از عملیات از جمله جمع، تفریق و جابجایی درگیر و اصلاح می شود. علاوه بر این، پرچم حمل (CY) به عنوان یک "انباشتگر بولی" در دستورالعمل های دستکاری بیت عمل می کند. پرچم سرریز (OV) سرریز حسابی را در عملیات اعداد صحیح امضا شده تشخیص می دهد و امکان استفاده از حساب را در کدهای مکمل دو می دهد. ALU پرچم‌های انتخاب بانک ثبت (RS0، RS1) را کنترل نمی‌کند، مقدار آنها کاملاً توسط برنامه کاربردی تعیین می‌شود و برای انتخاب یکی از چهار بانک ثبت استفاده می‌شود.

به عنوان یک بایت، ثبات PSW را می توان به صورت زیر نشان داد:

در ریزپردازنده‌هایی که معماری آنها به یک انباشتگر متکی است، بیشتر دستورالعمل‌ها با استفاده از آدرس‌دهی ضمنی روی انباشته‌کننده عمل می‌کنند. اینتل 8051 متفاوت است. اگرچه پردازنده مبتنی بر باتری است، اما می تواند بسیاری از دستورات را بدون مشارکت خود اجرا کند. به عنوان مثال، داده ها را می توان از هر سلول RDM به هر ثباتی منتقل کرد، هر ثباتی را می توان با یک عملوند فوری بارگذاری کرد، و غیره. علاوه بر این، متغیرها را می توان بدون استفاده از انباشته افزایش، کاهش و بررسی کرد. پرچم ها و بیت های کنترل را می توان به همان روش بررسی و تغییر داد.

2.6. ثبت اشاره گر

نشانگر پشته 8 بیتی (SP) می تواند هر ناحیه RDM را نشان دهد. محتویات آن قبل از اینکه داده ها در پشته در طی دستورالعمل های PUSH و CALL ذخیره شوند، افزایش می یابد. محتویات SP پس از اجرای دستورات POP و RET کاهش می یابد. این روش آدرس دهی عناصر پشته، پیش افزایش/پس کاهش نامیده می شود. در هنگام راه اندازی میکروکنترلر، پس از سیگنال RST، کد 07H به طور خودکار در SP بارگذاری می شود. این بدان معنی است که مگر اینکه برنامه کاربردی پشته را لغو کند، اولین عنصر داده در پشته در مکان RDM 08H قرار خواهد گرفت.

ثبت اشاره گر داده دو بایتی DPTR معمولاً برای گرفتن آدرس 16 بیتی در عملیات دسترسی به حافظه خارجی استفاده می شود. با دستورات میکروکنترلر، ثبت اشاره گر داده می تواند به عنوان یک ثبات 16 بیتی یا به عنوان دو ثبات 8 بیتی مستقل (DPH و DPL) استفاده شود.

2.7. ثبت توابع ویژه

رجیسترها که به صورت نمادین IP، IE، TMOD، TCON، SCON و PCON نامیده می‌شوند، برای قفل کردن و تغییر برنامه‌ای بیت‌های کنترل و وضعیت مدار وقفه، تایمر/ شمارنده، فرستنده و گیرنده سریال و مدیریت توان استفاده می‌شوند. هنگام در نظر گرفتن ویژگی های میکروکنترلر در حالت های مختلف، سازمان آنها در بخش های 1.8-1.12 به تفصیل توضیح داده خواهد شد.

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

یک تشدید کننده کوارتز متصل به پین ​​های خارجی میکروکنترلر، عملکرد نوسانگر داخلی را کنترل می کند که به نوبه خود سیگنال های همگام سازی را تولید می کند. واحد کنترل (CU)، بر اساس سیگنال های همگام سازی، یک چرخه ماشینی با مدت زمان ثابت برابر با 12 دوره ژنراتور تولید می کند. اکثر دستورالعمل های میکروکنترلر در یک چرخه ماشین اجرا می شوند. برخی از دستورالعمل‌هایی که روی کلمات 2 بایتی کار می‌کنند یا به حافظه خارجی دسترسی دارند، دو چرخه ماشین طول می‌کشد تا تکمیل شوند. فقط دستورات تقسیم و ضرب به چهار چرخه ماشین نیاز دارند. بر اساس این ویژگی های عملیاتی دستگاه کنترل، زمان اجرای برنامه های کاربردی محاسبه می شود.

در مدار میکروکنترلر، یک ثبت دستورالعمل (IR) در مجاورت دستگاه کنترل قرار دارد. وظیفه آن ذخیره کد دستوری است که در حال اجراست.

سیگنال های ورودی و خروجی دستگاه کنترل و همگام سازی:

1. PSEN - وضوح حافظه برنامه،

2. ALE - تثبیت آدرس سیگنال خروجی را فعال می کند،

3. PROG - سیگنال برنامه نویسی،

4. EA - مسدود کردن کار با حافظه داخلی،

5. VPP - ولتاژ برنامه نویسی،

6. RST - سیگنال بازنشانی عمومی،

7. VPD – خروجی برق پشتیبان حافظه از منبع خارجی,

8. XTAL – ورودی های اتصال تشدید کننده کوارتز.

2.9. پورت های ورودی/خروجی موازی

هر چهار پورت (P0-P3) برای ورودی یا خروجی اطلاعات بایت به بایت طراحی شده اند. هر پورت شامل یک رجیستر لچ کنترل شده، یک بافر ورودی و یک درایور خروجی است.

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

تمام پین های پورت P3 را می توان برای اجرای توابع جایگزین ذکر شده در جدول استفاده کرد. 4. این توابع را می توان با نوشتن 1 بر روی بیت های مربوطه رجیستر لچ (P3.0-P3.7) پورت P3 فعال کرد.

جدول 4

عملکردهای جایگزین درگاه P3

نام و هدف

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

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

ورودی تایمر/ شمارنده 1 یا ورودی تست

ورودی تایمر/ شمارنده 0 یا ورودی تست

ورودی درخواست وقفه 1. سطح پایین یا سیگنال قطع را حس می کند

ورودی درخواست وقفه 0. سطح پایین یا سیگنال قطع را حس می کند

خروجی فرستنده پورت سریال در حالت UART. خروجی ساعت در حالت ثبت شیفت

ورودی گیرنده پورت سریال در حالت UART. ورودی/خروجی داده در حالت شیفت رجیستر

پورت 0 دو طرفه و پورت های 1-3 شبه دو طرفه هستند. هر خط پورت می تواند به طور مستقل برای ورودی یا خروجی استفاده شود.

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

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

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




بالا