نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی
  • خانه
  • خطاها
  • میکروکنترلرهای MCS – 51. بلوک دیاگرام، ALU، حافظه داده

میکروکنترلرهای MCS – 51. بلوک دیاگرام، ALU، حافظه داده

اساس میکروکنترلر (نگاه کنید به شکل 1) یک واحد حسابی منطقی 8 بیتی (ALU) است. حافظه MK دارای معماری هاروارد است، یعنی. به طور منطقی تقسیم می شود: به حافظه برنامه - PP (داخلی یا خارجی)، آدرس دهی شده توسط شمارنده فرمان 16 بیتی (SC) و حافظه داده - داخلی (حافظه داده مقیم - RPD) 128 (یا 256) بایت، و همچنین خارجی (خارجی) حافظه داده - VPD) تا 64 کیلوبایت. از نظر فیزیکی، حافظه برنامه روی ROM (فقط خواندنی) و حافظه داده - روی RAM (داده ها را می توان نوشت و خواند) پیاده سازی می شود.

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

رجیستر DPTR 16 بیتی آدرس VFD یا آدرس پایه حافظه برنامه را در دستور تبدیل Accumulator تشکیل می دهد. ثبات DPTR همچنین می تواند به عنوان دو ثبات 8 بیتی مستقل (DPL و DPH) برای ذخیره عملوندها استفاده شود.

ثبت فرمان داخلی 8 بیتی (RK) کد فرمان در حال اجرا را دریافت می کند. این کد توسط مدار کنترل رمزگشایی می شود که سیگنال های کنترلی را تولید می کند (شکل 1 را ببینید).

ارجاع به رجیسترهای توابع ویژه - RSF (SFR - در شکل 1 آنها با یک خط نقطه دایره شده اند) فقط با استفاده از آدرس دهی مستقیم بایت در محدوده آدرس از 128 (80 ساعت) و بیشتر امکان پذیر است.


حافظه مقیم داده (RPM) در اولین مدل های میکروکنترلرهای MCS-51 دارای حجم 128 بایت بود. کمترین 32 بایت RPD نیز رجیسترهای همه منظوره هستند - RON (4 بانک 8 RON). این برنامه می تواند یکی از 8 RON بانک فعال را آدرس دهی کند. انتخاب بانک RON فعال با برنامه نویسی دو بیت در ثبت وضعیت پردازنده - PSW انجام می شود.


جدول 1 - هدف از پین های MCS-51

پین شماره تعیین وقت ملاقات
1..8 Р1 پورت ورودی/خروجی شبه دوطرفه 8 بیتی
9 RST

سیگنال تنظیم مجدد (سطح فعال - بالا)؛

سیگنال RST پاک می‌شود: رایانه شخصی و اکثر رجیسترهای عملکرد ویژه (SFR)، همه وقفه‌ها و عملکرد تایمر را غیرفعال می‌کند. RON های بانکی 0 را انتخاب می کند. در پورت های P0_P3 "all ones" را می نویسد و آنها را برای ورودی آماده می کند. کد 07H را در نشانگر پشته (SP) می نویسد.

10..17

پورت ورودی / خروجی شبه دو طرفه 8 بیتی؛ پس از نوشتن به دسته مربوطه "1" - عملکردهای اضافی (جایگزین) را انجام می دهد:

ورودی پورت سریال - RxD.

خروجی پورت سریال - TxD;

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

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

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

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

خروجی بارق سیگنال هنگام نوشتن به VPD - ~ WR.

خروجی بارق سیگنال هنگام خواندن از VPD - ~ RD.

18, 19 X1، X2 سرنخ برای اتصال یک تشدید کننده کوارتز یا مدار LC.
20 GND نتیجه گیری کلی؛
21..28 P2 پورت ورودی / خروجی شبه دو طرفه 8 بیتی؛ یا خروجی آدرس A در حالت عملکرد با حافظه خارجی (VFP یا VFD).
29 PME strobe خواندن حافظه برنامه خارجی، تنها هنگام دسترسی به رام خارجی صادر می شود.
30 آل بارق آدرس حافظه خارجی (VPP یا VPD)؛
31 EA با خاموش کردن RPP، سطح "0" در این ورودی، MC را به مجموعه ای از دستورات منتقل می کند. فقط از باند ;
39..32 P0 پورت ورودی / خروجی دو طرفه 8 بیتی؛ هنگام دسترسی به حافظه خارجی، آدرس های A را صادر می کند (که توسط سیگنال ALE در رجیستر خارجی نوشته می شود)، و سپس یک بایت را به طور همزمان با سیگنال ~ PME (برای دستورات) یا ~ WR, ~ RD (برای داده ها در VFD) مبادله می کند. ، هنگام دسترسی به حافظه خارجی، همه واحدها در پورت ثبات P0 نوشته می شوند و اطلاعات ذخیره شده در آنجا از بین می روند.
40 Ucc خروجی ولتاژ تغذیه

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

دسترسی به RPD با استفاده از آدرس‌دهی بایتی غیرمستقیم یا مستقیم امکان‌پذیر است (آدرس‌یابی بایتی مستقیم تنها امکان دسترسی به 128 بایت اول RPD را می‌دهد).

منطقه RPD توسعه یافته (برای میکروکنترلرهای خانواده MCS-52 و خانواده های بعدی) از آدرس 128 (80h) تا 255 (FFh) فقط با استفاده از روش آدرس دهی غیر مستقیم قابل آدرس دهی است.

جدول 2 - بلوک ثبت توابع ویژه (s f r)

کد Mnemo نام
0E0h * ACC باتری
0F0h * ب ثبت گسترش دهنده باتری
0D0h * PSW کلمه وضعیت پردازنده
0B0h * P3 پورت 3
0A0h * P2 پورت 2
ساعت 90 * P1 پورت 1
ساعت 80 * P0 پورت 0
0B8h * IP ثبت اولویت وقفه
0A8h * IE وقفه ثبت ماسک
ساعت 99 SBUF بافر فرستنده گیرنده سریال
ساعت 98 * SCON کنترل پورت سریال / ثبت وضعیت
ساعت 89 TMOD ثبت تایمر / حالت شمارنده
ساعت 88 * TCON تایمر / کنترل شمارنده / ثبت وضعیت
8Dh TH1 تایمر 1 (بایت بالا)
8 بایت ساعت TL1 تایمر 1 (بایت کم)
8Ch TH0 تایمر 0 (بایت بالا)
8 آه TL0 تایمر 0 (بایت کم)
ساعت 83 DPH ثبت اشاره گر داده (DPTR) (بایت بالا)
ساعت 82 DPL ثبت اشاره گر داده (DPTR) (بایت کم)
ساعت 81 SP ثبت نشانگر پشته
ساعت 87 PCON رجیستر کنترل مصرف برق

2. SOFTWARE MODEL MCS – 51


انواع فرمان MCS – 51

تقریبا نیمی از دستورالعمل ها در 1 چرخه ماشین (MC) اجرا می شوند. با فرکانس نوسانگر کریستالی 12 مگاهرتز، زمان اجرای چنین دستوری 1 میکرو ثانیه است. بقیه دستورات در 2 چرخه ماشین اجرا می شوند، یعنی. برای 2μs فقط دستورالعمل های ضرب (MUL) و تقسیم (DIV) در 4 چرخه ماشینی اجرا می شوند.

در طول یک چرخه ماشین، دو تماس با حافظه برنامه (داخلی یا خارجی) برای خواندن دو بایت فرمان یا یک دسترسی به حافظه خارجی داده (EPM) وجود دارد.

3. روش ها (روش ها) آدرس دهی MCS-51

1. آدرس دهی ثبت - عملوند 8 بیتی در RON بانک انتخابی (فعال) رجیسترها قرار دارد.

2 آدرس دهی مستقیم (مشخص شده با - #) - عملوند در بایت دوم (و برای یک عملوند 16 بیتی و در سومین) دستور است.

3 آدرس دهی غیر مستقیم (با - نشان داده می شود) - عملوند در حافظه داده (RPD یا VPD) است و آدرس سلول حافظه در یکی از RON های آدرس دهی غیر مستقیم (R0 یا R1) موجود است. در دستورات PUSH و POP، آدرس در نشانگر پشته SP موجود است. رجیستر DPTR می تواند یک آدرس IPT تا 64K داشته باشد.

4 آدرس بایت مستقیم - (dir) - برای دسترسی به سلول های RPD (آدرس 00h… 7Fh) و به رجیسترهای توابع ویژه SFR (آدرس 80h… 0FFh) استفاده می شود.

5 DIRECT BIT ADDRESSING - (bit) - برای اشاره به 128 بیت قابل آدرس دهی جداگانه واقع در سلول های RPD در آدرس های 20H ... 2FH و به بیت های آدرس پذیر جداگانه از رجیسترهای توابع ویژه استفاده می شود (جدول 3 و مدل برنامه را ببینید).

6 آدرس دهی غیرمستقیم ایندکس (نشان داده شده با - @) - مشاهده جداول در حافظه برنامه را ساده می کند، آدرس PP با مجموع ثبات پایه (PC یا DPTR) و ثبت شاخص (Accumulator) تعیین می شود.

7 IMPACT (BUILT-IN) ADDRESSING - کد فرمان حاوی یک ارجاع ضمنی (به طور پیش فرض) به یکی از عملوندها (اغلب به باتری) است.

4. فرمت کلمه حالت پردازنده (PSW)

ج - پرچم حمل (CARY) یا قرض گرفتن، همچنین به عنوان "انباشته کننده بولی" در دستورالعمل هایی که روی بیت ها کار می کنند عمل می کند.

AC - پرچم حمل کمکی (اضافی) - اگر در دستور اضافه (ADD, ADDC) از قسمت پایینی به قسمت بالاتر (یعنی از بیت 3 به بیت 4) انتقال داده شده باشد روی "1" تنظیم کنید.

F0 - پرچم کاربر - تنظیم، پاکسازی و بررسی برنامه‌ای.

RS1 RS0 بانک آدرس ( کارگردان )
0 0 0 00h..07h
0 1 1 08h..0Fh
1 0 2 ساعت 10..17
1 1 3 ساعت 18..1Fh

RS1، RS0 - بانک ثبت نام را انتخاب کنید:

OV - پرچم سرریز حسابی؛ مقدار آن توسط عملیات "On Exclusive OR" سیگنال های حامل های ورودی و خروجی مهم ترین بیت ALU تعیین می شود. یک مقدار از این پرچم نشان می دهد که نتیجه یک عملیات حسابی در کد مکمل دو خارج از محدوده است: –128 ... + 127; هنگام انجام عملیات تقسیم، پرچم OV پاک می شود و در صورت تقسیم بر صفر، تنظیم می شود. هنگام ضرب، پرچم OV تنظیم می شود اگر نتیجه بزرگتر از 255 (0FFH) باشد.

بیت PSW - رزرو شده، حاوی یک فلیپ فلاپ است که برای نوشتن یا خواندن در دسترس است.

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

هیچ پرچم "Z" در میکروکنترلرهای MCS-51 وجود ندارد. اما در دستورالعمل های پرش شرطی (JZ, JNZ) محتوای جریان (صفر یا غیرصفر) انباشته توسط مدار ترکیبی بررسی می شود.

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

بیشتر انتقال ها را می توان از طریق بایت آدرس مستقیم (dir) نیز انجام داد. حتی جلوهای dir-dir نیز وجود دارد (شکل 3 را ببینید).

انتقال‌های گمشده از RON به RON را می‌توان به‌عنوان انتقال از RON به یک بایت آدرس‌پذیر مستقیماً dir پیاده‌سازی کرد (با در نظر گرفتن اینکه RON‌ها در ناحیه اولیه حافظه Resident Data Memory قرار دارند که سلول‌های آن را می‌توان به عنوان dir نشان داد).

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

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


دستور Subtract SUBB فقط با یک قرض انجام می شود (یعنی پرچم Сary نیز از نتیجه کم می شود). بنابراین، برای اجرای دستور تفریق بدون قرض، ابتدا باید دستور پاک کردن پرچم C (CLRC) را اجرا کنید.

دستورالعمل ضرب عملوندهای تک بایتی - MULAB - یک نتیجه دو بایتی (16 بیتی) را قرار می دهد: بایت کم - در باتری، بایت بالا - در ثبات B.

نتیجه اجرای دستور تقسیم عملوندهای تک بایتی - DIVAB - در رجیستر B قرار می گیرد: quotient - acumulator، باقیمانده - در ثبات B.

دستور حساب INC یک عدد را به عملوند انتخاب شده اضافه می کند. دستور حساب DEC یک عدد از عملوند انتخاب شده کم می کند. دستور تصحیح انباشت اعشاری (DAA) به شما کمک می کند اعداد باینری-اعشاری (اعداد BCD) را بدون تبدیل آنها به فرمت هگزا دسیمال (فرمت هگزا) اضافه کنید. عملوندهای اصلی باید در قالب BCD باشند، یعنی. هر تتراد یک بایت فقط شامل اعداد 0 تا 9 است (اعداد هگزادسیمال وجود ندارد: A، B، C، D، E، F). بنابراین، یک بایت می تواند شامل اعداد از 00 تا 99 برای اعداد BCD بسته بندی شده یا اعداد از 0 تا 9 برای اعداد BCD بسته نشده باشد.

دستور تصحیح اعشاری DA A پس از افزودن اعداد BCD در پردازنده (اعداد بر اساس قوانین حساب هگزادسیمال اضافه شدند) روی محتویات Accumulator اعمال می کند (به مثال مراجعه کنید):

· اگر محتویات پایین ترین نوک آکومولاتور بزرگتر از 9 باشد یا پرچم حمل کمکی تنظیم شده باشد (AC = 1)، سپس 6 به محتویات آکومولاتور اضافه می شود (یعنی شش رقم از دست رفته در قالب هگز).

· اگر بعد از آن محتوای نیبل بالای اکومولاتور بیشتر از 9 باشد یا پرچم C تنظیم شود، عدد 6 به نوک بالای انباشته اضافه می شود.

دستور تصحیح اعشاری DA A بعد از دستور افزایش (INC) اعمال نمی شود زیرا دستور افزایش بر پرچم های C و AC تأثیری (تغییر) نمی گذارد.

دستورات منطقی:

منطقی "AND" - ANL،

منطقی "OR" - ORL،

دستور منطقی "EXCLUSIVE OR" - XRL– در Accumulator (و همچنین حساب) اجرا می شود، اما می توان دستورات منطقی را در بایت آدرس مستقیم (dir) نیز اجرا کرد. در این حالت، عملوند دوم می تواند:

در باتری یا

عملوند فوری در دستور.

دستورات چرخش (RR A, RL A) و فرمان‌های چرخش از طریق پرچم CARY (RRC A, RLC A) محتویات Acumulator را به صورت دوره‌ای 1 بیت جابجا می‌کنند. ارجاعات دستگاه بیت فقط از طریق پرچم C انجام می‌شود.

معماری خانواده MCS-51 تا حد زیادی با هدف آن - ساختمان - از پیش تعیین شده است فشرده - جمع و جورو ارزاندستگاه های دیجیتال تمام عملکردهای یک میکروکامپیوتر با استفاده از یک ریزمدار واحد اجرا می شوند. خانواده MCS-51 شامل طیف وسیعی از میکرو مدارها از ساده ترین میکروکنترلرها تا پیچیده ترین آنها است. میکروکنترلرهای خانواده MCS-51 به شما امکان می دهند هم وظایف کنترلی را برای دستگاه های مختلف انجام دهید و هم گره های جداگانه یک مدار آنالوگ را پیاده سازی کنید. همه ریز مدارهای این خانواده با همین کار می کنند سیستم فرمان MCS-51، اکثر آنها در موارد مشابه با پین اوت مطابق(شماره گذاری پاها برای بدن). این اجازه می دهد تا از ریز مدارهای شرکت های مختلف برای دستگاه توسعه یافته - Maxim، Atmel، NXP و غیره استفاده کنید. (کاتالوگ..php؟ صفحه = components_list & id = 39 "> جستجو بر اساس پارامترها را ببینید) بدون تغییر در نمودار شماتیک دستگاه و برنامه.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

عناصر اصلی معماری زیربنایی عبارتند از:
- ALU 8 بیتی بر اساس معماری باتری.
- 4 بانک ثبت، در هر 8 بانک؛
- حافظه داخلی برنامه 4 کیلوبایت؛
- رم داخلی 128 بایت؛
- پردازنده بولی
-2 تایمر شانزده بیتی؛
- کنترل کننده کانال سریال (UART)؛
- کنترل کننده پردازش وقفه با دو سطح اولویت.
- چهار پورت ورودی / خروجی 8 بیتی که دو عدد از آنها به عنوان گذرگاه آدرس / داده برای دسترسی به برنامه خارجی و حافظه داده استفاده می شود.
- ساخته شده در ژنراتور ساعت.

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

گام اساسی بعدی در توسعه MCS-51 انتقال فناوری ساخت به CHMOS بود. این امر امکان اجرای حالت‌های Idle و Power Down را فراهم کرد که باعث کاهش شدید مصرف انرژی کریستال شد و راه را برای استفاده از میکروکنترلر در برنامه‌های فرار، به عنوان مثال، در باتری‌های مستقل باز کرد. دستگاه ها

و آخرین مرحله اساسی در توسعه این جهت توسط اینتل در چارچوب معماری 8 بیتی، انتشار میکروکنترلرهای 8xC51FA / FB / FC بود که برای اختصار اغلب به عنوان 8xC51FX نامیده می شود. وجه تمایز اصلی این گروه از کریستال ها وجود آرایه ای از شمارنده های قابل برنامه ریزی (PCA) است. بلوک دیاگرام PCA در شکل 2 نشان داده شده است.

PCA شامل:

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

نمونه برداری 16 بیتی از مقدار تایمر در لبه مثبت سیگنال خارجی.
نمونه برداری 16 بیتی از مقدار تایمر در لبه منفی سیگنال خارجی.
نمونه برداری 16 بیتی از مقدار تایمر در هر لبه سیگنال خارجی.
تایمر نرم افزاری 16 بیتی;
دستگاه خروجی 16 بیتی با سرعت بالا (HSO)؛
PWM 8 بیتی

تمام عملکردهای فوق در PCA در سطح سخت افزار انجام می شود و پردازنده مرکزی را بارگذاری نمی کند، که به افزایش توان کلی سیستم، افزایش دقت اندازه گیری ها و پردازش سیگنال و کاهش زمان پاسخ میکروکنترلر به خارجی کمک می کند. رویدادها، که به ویژه برای سیستم های زمان واقعی مهم است. PCA پیاده سازی شده در 8xC51FX آنقدر موفق بود که معماری میکروکنترلرهای FX به استاندارد صنعت واقعی تبدیل شد و خود PCA بارها و بارها در تغییرات مختلف میکروکنترلرهای شرکت های مختلف بازتولید شد.

گلوگاه های اصلی معماری MCS-51 ALU مبتنی بر باتری 8 بیتی و اجرای دستورالعمل نسبتاً آهسته بود (سریع ترین دستورالعمل ها به 12 سیکل ساعت برای اجرا نیاز دارند). این امر استفاده از میکروکنترلرهای خانواده را در برنامه هایی که نیاز به افزایش عملکرد و محاسبات پیچیده (16 و 32 بیتی) دارند، محدود کرد. موضوع نوسازی اساسی معماری قدیم ضروری شد. مشکل مدرنیزاسیون با این واقعیت پیچیده شد که در آغاز دهه 90 پیشرفت های زیادی در زمینه نرم افزار و سخت افزار ایجاد شده بود و یکی از وظایف اصلی توسعه یک معماری جدید پیاده سازی سخت افزار و نرم افزار بود. سازگاری با طرح های قدیمی مبتنی بر MCS-51. برای حل این مشکل، تیم مشترکی از متخصصان اینتل و فیلیپس ایجاد شد. در نتیجه، در سال 1995، 2 خانواده به طور قابل توجهی متفاوت ظاهر شد: MCS-251/151 از اینتل و 51XA از فیلیپس (در زیر به دومی خواهیم پرداخت).

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

فضای آدرس خطی 24 بیتی، آدرس دهی تا 16M حافظه(میکروکنترلرهای تولید شده از خانواده MCS-251 دارای فضای آدرس حافظه 256K هستند).
مجموعه دستورالعمل میکروکنترلرهای MCS-251 شامل تمام 111 دستورالعمل موجود در مجموعه دستورالعمل میکروکنترلرهای MCS-51 (دستورالعمل های "قدیمی") و علاوه بر این، شامل 157 دستورالعمل "جدید" است. برخی از کدهای دستوری جدید در قالب 4 بایت هستند.
قبل از استفاده از میکروکنترلر، باید پیکربندی شود، یعنی. با کمک برنامه نویس، بایت های پیکربندی را که تعیین می کند پس از روشن شدن، فعال می شود، رایت کنید. اگر مجموعه دستورالعمل MCS-51 را نصب کنید، MSC-251 با MCS-51 سازگار باینری خواهد بود. به این حالت حالت باینری می گویند. با این حال، دستورالعمل های توسعه یافته در این حالت نیز از طریق یک "پنجره" در دسترس هستند - کد دستورالعمل رزرو شده 0A5h. به طور طبیعی، طول هر دستورالعمل توسعه یافته سپس 1 بایت افزایش می یابد. اگر در ابتدا مجموعه‌ای از دستورالعمل‌های توسعه‌یافته را نصب کنید، در این مورد، برنامه‌های نوشته شده برای MCS-51 نیاز به کامپایل مجدد در متقاطع برای MCS-51 دارند، زیرا اکنون دستورالعمل های استاندارد از طریق همان "پنجره" 0A5h در دسترس خواهند بود و طول آنها نیز 1 بایت افزایش می یابد. به این حالت Source Mode می گویند. این به شما امکان می دهد از دستورالعمل های توسعه یافته بیشترین بهره را ببرید و بهترین عملکرد را داشته باشید، اما نیاز به طراحی مجدد نرم افزار دارد.
یک معماری رجیستر که امکان دسترسی به رجیسترها را به صورت بایت، کلمات و کلمات دوگانه می دهد.
حالت آدرس دهی صفحه برای سرعت بخشیدن به انتخاب دستورالعمل ها از حافظه برنامه خارجی؛
صف دستورالعمل؛
مجموعه دستورالعمل های توسعه یافته، شامل دستورالعمل های حسابی و منطقی 16 بیتی؛
فضای آدرس پشته را تا 64K افزایش داد.
اجرای سریعترین دستور در 2 سیکل ساعت.
سازگاری باینری با نرم افزار MCS-51.

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

علاوه بر خود اینتل، میکروکنترلرهای MCS-251 دارای مجوز Temic Semiconductors هستند.

گذرگاه سریال جهانی (USB) فناوری Plug-and-Play را به دستگاه‌های I/O خارجی که در رایانه‌های شخصی با کارایی بالا امروزی یافت می‌شود، گسترش می‌دهد.

استاندارد USB به منظور ارائه قابلیت اتصال انواع دستگاه های جانبی، چهار حالت انتقال Master، Isochronous، Pulse و Array را تعریف می کند. هر دستگاه جانبی باید از یک حالت کنترل برای انتقال پارامترهای پیکربندی، دستورات و اطلاعات وضعیت دستگاه پشتیبانی کند. انتقال هم‌زمان دسترسی تضمینی اتوبوس، پهنای باند ثابت و تحمل خطا را فراهم می‌کند، این حالت انتقال را می‌توان در دستگاه‌های خروجی صدا و تلفن کامپیوتر استفاده کرد. انتقال پالس برای دستگاه های ورودی مانند ماوس، جوی استیک یا صفحه کلید در نظر گرفته شده است که اطلاعات را به ندرت و در بخش های کوچک، اما با دوره خدمات محدود، انتقال می دهند. انتقال آرایه به دستگاه هایی مانند اسکنرها، دستگاه های فکس یا دوربین های دیجیتال اجازه می دهد تا به محض آزاد شدن کانال اتوبوس، مقادیر زیادی داده را به رایانه شخصی منتقل کنند.

ویژگی های اصلی محصول

کاملاً مطابق با "Universal Serial Bus Specification 1.0"
موتور رابط باس سریال فرستنده گیرنده USB داخلی (SIE)
چهار صف FIFO برای انتقال
سه صف FIFO 16 بایتی
چهار صف FIFO برای دریافت
سه صف FIFO 16 بایتی
یک FIFO قابل تنظیم (تا 1024 بایت)
گیربکس / کنترل دریافت خودکار در صف های FIFO
توقف / از سرگیری عملیات
سه بردار وقفه گذرگاه USB
چرخه قفل فاز
سرعت داده: 12 مگابیت بر ثانیه و 1.5 مگابیت بر ثانیه
حالت چرخه آهسته
فضای آدرس خارجی با ظرفیت 256 کیلوبایت
حالت های ذخیره انرژی: آماده به کار و خاموش شدن
پارامترهای قابل تعریف توسط کاربر
انتظار در زمان واقعی
1 کیلوبایت رم روی یک تراشه
چهار پورت I/O
آرایه شمارنده قابل برنامه ریزی (PCA)
میکروکنترلر استاندارد (MCS 51) UART
تایمر نگهبان سخت افزاری
سه تایمر / شمارنده 16 بیتی انعطاف پذیر
سازگار با مجموعه دستورالعمل میکروکنترلر MCS 51 و MCS 251
معماری میکروکنترلر MCS 251 بر اساس رجیسترها
فرکانس کاری 6 یا 12 مگاهرتز

کنترلر 8x930Hx دارای ویژگی های اضافی است:

هاب USB
قابلیت های کنترل هاب USB
مدیریت اتصال
تشخیص اتصال / قطع اتصال با یک دستگاه خروجی
مدیریت توان شامل توقف/رزومه
تشخیص و بازیابی خرابی اتوبوس
از دستگاه های خروجی با سرعت کامل و کم سرعت پشتیبانی می کند
کنتاکت خروجی برای سوئیچینگ برق پورت
تماس ورودی برای تشخیص اضافه بار

چهار حالت مختلف انتقال داده USB توسط سه عنصر که با هم کار می کنند ارائه می شود: میزبان، هاب، دستگاه عملکردی. میزبان انتقال محتوا و اطلاعات کنترلی در اتوبوس را کنترل می کند. دستگاه های کاربردی سیستم های میزبان را گسترش می دهند. این شامل انواع معمول کار با رایانه شخصی است: ورودی از صفحه کلید یا جوی استیک، خروجی به مانیتور. و فعالیت های پیچیده تر مانند تلفن دیجیتال و انتقال تصویر. یک میکروکنترلر Intel 8x930Ax برای کنترل دستگاه های کاربردی طراحی شده است. در نهایت، هاب ها یک نقطه گسترش USB را فراهم می کنند که دسترسی به سایر دستگاه های کاربردی را فراهم می کند. میکروکنترلر اینتل 8x930Hx که عملکردهای کنترل دستگاه عملکردی و هاب USB را ترکیب می کند، اولین هاب USB سریالی است که برای لوازم جانبی رایانه شخصی مدرن طراحی شده است.

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

کابل گذرگاه USB تنها از چهار سیم تشکیل شده است: Vbus، D +، D- و GND - که اتصال را آسان‌تر و سازگارتر می‌کند. یک کانکتور استاندارد واحد برای اتصال دستگاه های جانبی به گذرگاه USB نیز به همین منظور عمل می کند. داده ها به طور متفاوتی از طریق کابل های D + و D- منتقل می شوند: یا با سرعت کامل 12 مگابیت در ثانیه یا با سرعت پایین 1.5 مگابیت در ثانیه. فرستنده و گیرنده درون کریستال تعبیه شده است، بنابراین نیازی به مدارهای الکترونیکی خارجی نیست. یک استثنا، مقاومت ترمینال pull-up در هر دو خط D + و D- است که برای تعیین نوع دستگاه مورد نیاز است: پرسرعت یا کم سرعت.

مروری بر خانواده
خانواده Intel 8x930 از دو کنترلر تک تراشه تشکیل شده است.

کنترلر Intel 8x930Ax یک دستگاه 8 بیتی بر اساس معماری میکروکنترلر MCS 251 است و برای کار با لوازم جانبی USB طراحی شده است. از سوی دیگر، 8x930Hx از همان هسته میکروکنترلر MCS 251 به اضافه قابلیت‌های پیشرفته هاب USB داخلی استفاده می‌کند. استفاده از معماری MCS 251 در هر دو کنترلر باس USB دارای مزایای زیر است:

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

دستورالعمل‌های 8x930Ax می‌تواند دستورالعمل‌هایی از کیت میکروکنترلر MCS 51 و کیت میکروکنترلر MCS 251 باشد. این رویکرد باعث صرفه‌جویی در سرمایه‌گذاری کاربران در نرم‌افزار و کاهش حداکثر عملکرد برنامه‌ها می‌شود.

میکروکنترلرهای 8x930 آنقدر پر از ویژگی‌های داخلی مختلف هستند که از میکروکنترلرها قدرتمندتر به نظر می‌رسند. آرایه شمارنده قابل برنامه ریزی (PCA) انعطاف پذیری را برای برنامه هایی فراهم می کند که نیاز به مقایسه یا ضبط بلادرنگ، ارتباطات پرسرعت یا مدولاسیون عرض پالس دارند. علاوه بر این، کنترلر شامل یک پورت سریال توسعه یافته، سه تایمر / شمارنده 16 بیتی، یک تایمر نگهبان سخت افزار، چهار پورت ورودی / خروجی 8 بیتی و دو حالت صرفه جویی در مصرف انرژی است: آماده به کار و خاموش کردن.

کنترلرهای خانواده 8x930Ax مجهز به 1 کیلوبایت حافظه هستند و در نسخه های بدون حافظه دائمی و یا با حافظه 8 یا 16 کیلوبایتی قابل استفاده هستند. آنها می توانند تا 256 کیلوبایت حافظه خارجی را برای دستورالعمل ها و داده ها و 40 بایت رجیسترهای همه منظوره را آدرس دهی کنند که در پردازنده مرکزی به عنوان یک فایل ثبات قرار دارند. بسته به ترکیب مورد استفاده، فایل ثبات می تواند شامل 16 ثبات بایتی، 16 ثبات دو بایتی و 10 ثبات چهار بایتی باشد.

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

هر دو کنترلر 8x930 مجهز به هشت صف FIFO برای پشتیبانی از دستگاه های خروجی داخلی هستند: چهار صف ارسال و چهار صف دریافت. چهار FIFO برای انتقال / دریافت از چهار دستگاه عملکرد ترمینال (0 تا 3) پشتیبانی می کنند. صف 0 شامل 16 بایت است و برای انتقال اطلاعات کنترل در نظر گرفته شده است. صف 1 قابل تنظیم توسط کاربر است و تا 1024 بایت ظرفیت دارد. صف‌های 2 و 3 هر کدام از 16 بایت تشکیل شده‌اند و می‌توان از آنها برای انتقال اطلاعات در حالت‌های انتقال پالسی، هم‌زمان و آرایه استفاده کرد. در مورد یک کنترلر 8x930Hx، صف های مشخص شده با یک جفت صف FIFO برای دستگاه های ورودی تقویت می شوند. این صف‌ها در کنترل‌کننده 8x930Hx توسط یک تکرارکننده اختیاری پشتیبانی می‌شوند که وظیفه ارسال مجدد جریان‌های داده تولید شده توسط دستگاه‌های خروجی را بر عهده دارد.

نمای کلی معماری
از نظر ساختاری، اجرای USB در میکروکنترلرهای 8x930Ax و 8x930Hx را می توان به چهار بلوک تقسیم کرد: صف های FIFO، بلوک رابط با دستگاه های کاربردی، بلوک رابط با گذرگاه سریال و فرستنده گیرنده. کنترلر 8x930Hx دارای واحدهای اضافی برای کنترل عملکرد هاب است: یک واحد رابط با یک هاب و یک تکرار کننده.

FIFO ها برای ارسال و دریافت در هر دو کنترلر دایره ای هستند. صف‌ها تا دو مجموعه داده با اندازه متغیر جداگانه را پشتیبانی می‌کنند و شامل ثبت‌های تعداد بایت هستند که تعداد بایت‌ها را در مجموعه داده‌ها نشان می‌دهند. صف ها مجهز به پرچم هایی هستند که نشان می دهد صف پر است یا خالی، و همچنین می توانند دریافت یا ارسال مجموعه داده فعلی را تکرار کنند. واحد رابط دستگاه عملکردی (FDI) داده های USB ارسال شده یا دریافتی را با توجه به نوع انتقال و وضعیت صف ها توزیع می کند. علاوه بر این، واحد IFU وضعیت تراکنش را نظارت می کند، صف های FIFO را مدیریت می کند، وقوع رویدادهای کنترلی را با استفاده از درخواست وقفه به پردازنده مرکزی 8x930 گزارش می دهد.

بلوک رابط گذرگاه سریال پروتکل انتقال USB را پیاده سازی می کند: به طور متوالی بسته ها را سفارش می دهد، سیگنال را تولید می کند و تشخیص می دهد، جمع های چک را تولید و بررسی می کند، داده ها را با استفاده از روش NRZI کدگذاری / رمزگشایی می کند، پر کردن بیت، تولید و شناسایی یک شناسه بسته (PID).

فرستنده گیرنده مبتنی بر میکروکنترلر USB یکپارچه با یک رابط چهار سیم ساده که توسط مشخصات USB 1.0 تعریف شده است مطابقت دارد. خانواده کنترلرهای 8x930 دارای سه وقفه مرتبط با USB هستند. آنها در هر شروع یک فریم، پایان دریافت / انتقال داده ها به دستگاه های کاربردی ترمینال، در صورت تعلیق جهانی یا از سرگیری کار، رخ می دهند. در هاب 8x930Hx از واحد رابط هاب برای کنترل و نظارت بر وضعیت اتصال به پورت های پایین دست استفاده می شود. تکرار کننده مسئول انتشار سیگنال های USB بالا و پایین است.

وزارت آموزش عمومی و حرفه ای فدراسیون روسیه دانشگاه فنی دولتی نووسیبیرسک V.N. وپریک، V.A. آفاناسیف، A.I. دروژینین، A.A. زمسکوف، A.R. ایسایف، او. Malyavko MICROCONTROLLERS OF THE MCS-51 FAMILY کتاب درسی برای دوره های "سیستم های ریزپردازنده" و "طراحی سیستم های ریزپردازنده" برای دانشجویان ارشد دانشکده اتوماسیون و مهندسی کامپیوتر کلیه اشکال آموزش نووسیبیرسک 1997 V.N. وپریک، V.A. آفاناسیف، A.I. دروژینین، A.A. زمسکوف، A.R. ایسایف، او. مالیاوکو. خانواده میکروکنترلرهای MCS-51: آموزش. - نووسیبیرسک. این آموزش شامل توضیحات کلی در مورد معماری، عملکرد و مجموعه دستورالعمل های خانواده میکروکنترلرهای تک تراشه ای MCS-51 (Microcontrollers تعبیه شده) ساخت شرکت INTEL است. بخش دوم کتابچه راهنمای کنترل کننده ریزپردازنده آموزشی UMPK-51 را ارائه می دهد که به عنوان هدف تحقیق در هنگام انجام یک چرخه کار آزمایشگاهی به دانش آموزان ارائه می شود. مواد این کتابچه راهنمای کاربر را می توان در طراحی دوره ها و دیپلم استفاده کرد و همچنین می تواند برای مهندسین مدار که در توسعه و بهره برداری از تجهیزات الکترونیکی مشارکت دارند مفید باشد. نویسندگان قدردانی عمیق خود را از AOZT "تکنولوژی های جدید" - توزیع کننده رسمی INTEL برای ارائه موادی که این کار بر اساس آن انجام شده است، ابراز می کنند. جدول 15، شکل 25، فهرست حروف. 12 عنوان داوران: E.D. باران، جی.جی. ماتوشکین. این کار در بخش علوم کامپیوتر، ایالت نووسیبیرسک © Technical University 2 مقدمه آماده شد. خانواده میکروکنترلرهای تک تراشه 8 بیتی MCS-51 در اوایل دهه هشتاد در بازار جهانی ظاهر شدند. اولین اصلاحات کریستال ها (حدود 7 مورد) با استفاده از فناوری n-MOS (HMOS) با کیفیت بالا انجام شد و از نظر عملکرد میکروکامپیوترهای تک تراشه کامل معماری هاروارد بودند که یکی از اصول اصلی آن جداسازی منطقی آدرس است. فضاهای حافظه و داده های برنامه با توسعه فناوری نیمه هادی، نسخه های بعدی ریز مدارهای MCS-51 با استفاده از فناوری پیشرفته تر و کم مصرف CMOS (CHMOS) شروع به تولید کردند (در حالت فعال، مصرف کریستال ها به 10-50 میلی آمپر رسید). سیستم فرماندهی MCS-51، با تمرکز بر اجرای الگوریتم های مختلف کنترل دیجیتال، ضمن حفظ شباهت خارجی با سیستم فرماندهی خانواده قبلی MCS-48، از نظر کیفی گسترش یافته است، نوآوری های اساسی در آن ظاهر شده است: عملیات بیت گرا و فیلدهای بیت آدرس پذیر در حافظه داده، که امکان صحبت در مورد اجرای یک پردازنده بیت بر روی یک تراشه را فراهم می کند. اجرای دستورات ضرب، تقسیم و تفریق؛ بهبود کار با پشته؛ گروه دستورات انتقال کنترل گسترش یافته است. سیستم فرمان متقارن تر به نظر می رسد، یعنی کمتر به انتقال داده از طریق باتری وابسته است. عملکرد لوازم جانبی آنبرد نیز با معرفی: دو تایمر / شمارنده 16 بیتی گسترش یافته است. پورت دوبلکس سریال سخت افزاری; سیستم وقفه دو سطحی؛ چهار پورت ورودی/خروجی 8 بیتی تغییرات اساسی در ساختار چرخه زمانی پردازنده منجر به تسریع کار با حافظه خارجی برنامه ها و داده ها و همچنین واکنش به وقفه های خارجی و داخلی شده است. حجم کل فضای آدرس برنامه خارجی و حافظه داده به 128 کیلوبایت افزایش یافته است. رجیسترهای برنامه شمارنده و اشاره گر داده 16 بیتی امکان دسترسی مستقیم به کل محدوده آدرس را فراهم می آورد که به توسعه دهندگان این امکان را می داد تا الگوریتم هایی را برای پردازش سریع آرایه های داده بزرگ پیاده سازی کنند. تمام گره های قابل دسترسی نرم افزار میکروکنترلر در یک منطقه ویژه از حافظه داده ها (Special Function Register) گرد هم آمده بودند که دسترسی به آنها را تقریباً به همان روشی که به سلول های معمولی RAM مقیم امکان پذیر می کرد. در اصلاحات بعدی کریستال ها، بهبود در مسیر افزایش قابلیت های اضافی و حفظ سازگاری کامل نرم افزار با نسخه های قبلی پیش رفت. ویژگی های آخرین اصلاحات میکروکنترلرهای MCS-51 عبارتند از: طراحی کاملا ایستا; نسخه های کریستالی 3 و 5 ولتی؛ طیف گسترده ای از لوازم جانبی داخلی؛ حداکثر فرکانس ساعت - 24 مگاهرتز؛ برای گروه های جداگانه کریستال ها - 33 مگاهرتز. در حال حاضر، MCS-51 شامل حدود 60 نسخه از کریستال ها است، علاوه بر این، اسناد اختصاصی دقیق وجود دارد و در دسترس است (متاسفانه، تا کنون کمی به روسی ترجمه شده است). برای تهیه نرم افزار میکروکنترلرهای MCS-51، عمدتا از زبان های "ASM-51"، "C" استفاده می شود که برای آنها تعدادی کامپایلر به خوبی اثبات شده، کتابخانه های زیر روال استاندارد و شبیه سازهای نرم افزار تولید شده توسط کشورهای مختلف خارجی وجود دارد. و شرکت های داخلی 3 با وجود "قدمت" کافی خانواده (بیش از 15 سال) و ظاهر شدن در بازار جهانی در سالهای اخیر میکروکنترلرهای تک تراشه ای با کارایی بالاتر و معماری بهبود یافته - MCS-51، MCS-251، MCS-96، کنترلرهای MCS-51 به طور گسترده در سیستم های کنترل جاسازی شده نسبتاً ساده استفاده خواهند شد. 4 1. سیستم تعیین اجزای اینتل و ترکیب عملکردی خانواده MCS-51 برای علامت‌گذاری ریزمدارها توسط اینتل، از یک سیستم تعیین چند فیلد استفاده می‌شود: 1 2 3 4 ХХ ХХХХХХХХХح : , نسخه خودرو برای محدوده دمایی طولانی (40- / + 125 درجه سانتیگراد) M (نظامی)، نسخه مطابق با استانداردهای نظامی (-55 / + 125 درجه سانتیگراد) Q یا C (تجاری)، محدوده دمایی "تجاری" (0 / + 70 C) ) s (160 8) - یک ساعت تمرین حرارتی پویا. L یا E (گسترش یافته)، محدوده دمایی "گسترش یافته" (-40 / + 85 C) با (160 8) - ساعت تمرین حرارتی پویا. Т (گسترش یافته)، محدوده دمایی "گسترده" (-40 / + 85 C) بدون آموزش حرارتی؛ I (صنعتی)، اجرا بر اساس استانداردهای صنعتی. فیلد دوم حاوی یک پیشوند یک یا دو حرفی است که نوع بسته ریزمدار (نوع بسته) را نشان می دهد. امروزه چندین نوع مختلف از بسته های ریز مدار وجود دارد، بنابراین، به عنوان مثال، ما فقط برخی از عناوین را بیان می کنیم: آرایه شبکه پین ​​سرامیکی، (PGA). C سرامیک دوگانه در بسته بسته، (CDIP); پکیج فلت پک چهار سرامیک K، (QFP); KD Plastic Quad Flatpack Package, Fine Pitch, Die Down, (PQFP); KU Plastic Quad Flatpack Package, Fine Pitch, Die Up, (PQFP); N پلاستیک سرب دار تراشه، (PLCC); P Plastic Dual In-Line Package, (PDIP); SM Single In-Line Leadless Memory Memory, (SIMM); U Plastic Dual In-Line Package, Shrink Dip, (PDIPS); پکیج زیگزاگ درون خطی Z، (ZIP). فیلد سوم می تواند حاوی حداکثر 15 کاراکتر عددی و الفبایی باشد که نشان دهنده نوع دستگاه خاصی است که روی تراشه قرار دارد. قسمت چهارم می تواند شامل حداکثر شش کاراکتر عددی و الفبایی باشد که منعکس کننده ویژگی ها و نسخه های مختلف ریزمدارها است. اطلاعات تکمیلی در مورد انواع بسته ها و طراحی آنها در کتاب: Packaging Order Number 240800 موجود است. با توجه به میکروکنترلرهای توصیف شده از خانواده MCS-51، کاراکتر اول فیلد سوم به طور سنتی (برای اینتل) برابر است با "8". کاراکتر دوم فیلد سوم معمولاً نوع رام داخلی را نشان می دهد: 0 رام ماسک شده برنامه ها. کریستال بدون رام (برای نسخه های بعدی کریستال ها)؛ 1 رام ماسک برنامه ها (کد استاندارد رام، سیستم عامل)؛ رام 3 ماسک (برای نسخه‌های کریستالی بعدی)، (کد رام قابل تنظیم)؛ 7 UVROM یا رام قابل برنامه ریزی یک بار (EPROM یا OTP ROM)؛ 8 EEPROM (فلش - حافظه روی یک تراشه) علاوه بر این، ممکن است نامه ای به دنبال داشته باشد که نشان دهنده ویژگی های تکنولوژیکی ساخت است: فناوری HMOS بدون حرف، منبع تغذیه 5 ولت. با تکنولوژی CHMOS، منبع تغذیه 5 ولت؛ تکنولوژی L CHMOS، منبع تغذیه 3 ولت؛ 5 کاراکترهای بعدی فیلد سوم برای میکروکنترلرهای MCS-51 اعداد (به عنوان مثال 31،32،51،54،58،152) و از یک تا چهار حرف هستند که نشان دهنده ویژگی های عملکردی کریستال ها هستند (به عنوان مثال، اندازه ROM). ، مشخصات یک گروه از کریستال ها، حفاظت در دسترس بودن سیستم از حافظه برنامه در برابر دسترسی غیرمجاز، امکان استفاده از الگوریتم برنامه نویسی پیشرفته تر "Quick Pulse" و موارد مشابه). در مستندات فنی اصلی اینتل، همه میکروکنترلرهای MCS-51 در گروه‌هایی ("خط محصول") مرتب شده‌اند که هر کدام از نزدیک‌ترین نسخه‌های کریستالی را در عملکرد و پارامترهای الکتریکی خود متحد می‌کنند. از آنجایی که نام ریزمدارهای یک گروه کمی متفاوت است، برای تعیین هر گروه جداگانه، از نمادی تعمیم یافته استفاده می شود که از علامت گذاری ریزمدارهای خاص، با جایگزینی کاراکترهای متفاوت با "X" شکل می گیرد. بنابراین می توان گروه های زیر را از میکروکنترلرها تشخیص داد. 1. گروه 8Х5Х (8051 خط تولید و 8052 خط تولید): 8031АН, 8051АН, 8751Н, 8051АНР, 8751Н-8, 8751ВН, 8032АН, 8052АН, 875 2. گروه 8ХС51 (خط تولید 80С51): 80С31ВН, 80С51ВН, 87С51. 3. گروه 8ХС5Х (8ХС52 / 54/58 خط تولید): 80С32, 80С52, 87С52, 80С54, 87С54, 80С58, 87С58. 4. گروه 8XC51FX (8XC51FA / FB / FC خط تولید): 80C51FA, 83C51FA, 87C51FA, 83C51FB, 87C51FB, 83C51FC, 87C51FC. 5. گروه 8ХL5X (8XL52 / 54/58 خط تولید): 80L52, 87L52, 80L54, 87L54, 80L58, 87L58. 6. گروه 8XL51FX (8XL51FA / FB / FC خط تولید): 80L51FA, 83L51FA, 87L51FA, 83L51FB, 87L51FB, 83L51FC, 87L51FC. 7. گروه 8XC51RX (خط تولید 8XC51RA / RB / RC): 80C51RA, 83C51RA, 87C51RA, 83C51RB, 87C51RB, 83C51RC, 87C51RC. 8. گروه 8XC51GB (خط تولید 8XC51GX): 80C51GB, 83C51GB, 87C51GB. 9. گروه 8XC152JX (خط تولید 8XC152): 80C152JA, 83C152JA, 80C152JB, 80C152JC, 83C152JC, 80C152JD. 10. گروه 8XC51SL (خط تولید 8XC51SL): 80C51SL-BG, 81C51SL-BG, 83C51SL-BG, 80C51-AH, 81C51SL-AH, 83C51SL-AH, 83C51SL-AH, 87C51SL-BG, 87C51SL-BG, 87C51SL-BG . اولین گروه از میکروکنترلرها شامل مدل های جوان خانواده هستند که با استفاده از فناوری n-MOS ساخته شده اند و برای استفاده در طراحی های جدید توصیه نمی شوند، همه گروه های دیگر با استفاده از فناوری مدرن CMOS ساخته شده اند. ریز مدارهای گروه دوم، سوم و چهارم امروزه نمایندگان کلاسیک خانواده MCS-51 هستند. گروه پنجم و ششم شامل نسخه های 3 ولتی کریستال ها (Low-Voltage) می باشد. کریستال های گروه هفتم مجهز به رم (Expanded RAM) هستند که حجم آن 512 بایت است. ریز مدارهای گروه هشتم، نهم و دهم، میکروکنترلرهای مخصوص کاربرد (Application Specific) هستند. بسیاری از برنامه های مدرن به MCU هایی با کارایی بالا نیاز دارند که از قابلیت های آدرس دهی پیشرفته، معماری ثبت، مقادیر زیادی RAM داخلی و پشته استفاده می کنند و به طور موثر از برنامه نویسی سطح بالا پشتیبانی می کنند. این میکروکنترلرها شامل میکروکنترلرهای New Architecture MCS-5 و MCS-251 است که اینتل تولید آنها را در سال 1995 آغاز کرد. ترکیب عملکردی و ویژگی های کلیدی میکروکنترلر MCS-51 / MCS-251 در پیوست آورده شده است. 6 2. ویژگی های اساسی مدل اولیه خانواده میکروکنترلرهای MCS-51. مدل پایه میکروکنترلرهای خانواده MCS-51 و مبنای تمامی تغییرات بعدی، میکروکنترلر I-8051 است. ویژگی های اصلی آن به شرح زیر است: یک CPU هشت بیتی بهینه شده برای عملکردهای کنترل. مولد ساعت داخلی؛ فضای آدرس حافظه برنامه - 64 K. فضای آدرس حافظه داده - 64 K. حافظه برنامه داخلی - 4K؛ حافظه داخلی داده - 128 بایت؛ امکانات اضافی برای انجام عملیات جبر بولی (عملیات بیتی)؛ 32 خط ورودی / خروجی دو طرفه و به صورت جداگانه آدرس پذیر. 2 تایمر / شمارنده چند منظوره شانزده بیتی؛ فرستنده ناهمزمان کامل دوبلکس. سیستم وقفه برداری با دو سطح اولویت و شش منبع رویداد. بلوک دیاگرام I-8051 در شکل 1 نشان داده شده است، تخصیص پین ریز مدار در شکل 2 نشان داده شده است. وقفه های خارجی وقفه 128 بایت T / C 0 شمارنده 4K ROM کنترل RAM T / C 1 ورودی CPU BUS 4 I / O کنترل سریال OSC پورت ها پورت P0 P1 P2 P3 T D R D آدرس / داده ها شکل 1. بلوک دیاگرام I-8051 کل سری MCS-51 دارای معماری هاروارد است، یعنی فضاهای آدرس جداگانه برای حافظه برنامه و داده ها. سازماندهی حافظه در شکل 3 نشان داده شده است. مقدار حافظه داخلی (مسکونی) برنامه (ROM، EPROM یا OTP ROM) که بر روی تراشه قرار دارد، بسته به نوع ریز مدار، می تواند 0 (ROMless)، 4K (کریستال پایه)، 8K، 16K یا 32K باشد. در صورت نیاز کاربر می تواند با نصب رام خارجی حافظه برنامه را افزایش دهد. دسترسی به رام داخلی یا خارجی با مقدار سیگنال در پین EA تعیین می شود (دسترسی خارجی): EA = Vcc (ولتاژ منبع تغذیه) - دسترسی به رام داخلی. EA = Vss (پتانسیل زمین) - دسترسی به رام خارجی. برای کریستال های بدون ROM (ROMless)، پین EA باید به طور دائم به Vss متصل شود. رام خارجی خواندن strobe - PS EN (Program Store Enable) هنگام دسترسی به حافظه برنامه خارجی تولید می شود و هنگام دسترسی به رام واقع بر روی تراشه غیرفعال است. 7 ناحیه آدرس های پایین حافظه برنامه توسط سیستم وقفه استفاده می شود، معماری ریز مدار 8051 از پنج منبع وقفه پشتیبانی می کند: دو وقفه خارجی. دو وقفه از تایمر. از پورت سریال قطع می شود. P1.0 1 40 Vcc P1.1 2 39 P0. 0 (AD0) P1.2 3 38 P0.1 (AD1) P1.3 4 37 P0.2 (AD2) P1.4 5 36 P0.3 (AD3) P1.5 6 35 P0.4 (AD4) P1. 6 7 34 P0.5 (AD5) P1.7 8 33 P0.6 (AD6) RESET 9 32 P0.7 (AD7) (RD) P3.0 10 31 EA / Vpp (TD) P3.1 11 30 ALE / PROG (INT0) P3.2 12 29 PSEN (INT1) P3.3 13 28 P2.7 (A15) (T0) P3.4 14 27 P2.6 (A14) (T1) P3.5 15 26 P2.5 ( A13) (WR) P3.6 16 25 P2.4 (A12) (RD) P3.7 17 24 P2.3 (A11) XTAL2 18 23 P2.2 (A10) XTAL1 19 22 P2.1 (A9) در مقابل 20 21 P2.0 (A8) شکل 2. تخصیص پین I-8051 حافظه برنامه (خواندن) حافظه داده (خواندن / نوشتن) FFFFH خارجی ROM FFFFH خارجی @DPTR RD حافظه PSEN WR داده @PC MOVC EA = 0 حافظه داخلی @DPTR داده @PC خارجی FFH داخلی بالای 128 SFR MOVX ROM ROM 80H EA = 0 0000H EA = 1 پایین تر 128 00H 0000H PSEN شکل 3. MCS-51 Family Memory Organization 8 شکل 4 نقشه ای از ناحیه پایین حافظه برنامه را نشان می دهد. ROM حافظه برنامه 0033H 002BH پورت سریال 0023H تایمر برداری1 001BH قطع می کند EINT1 0013H Timer0 000BH EINT0 0003H آدرس شروع 0000H (بازنشانی) شکل 4. حافظه برنامه آدرس بردارهای وقفه در فواصل زمانی 8 بایتی قرار دارند: - وقفه خارجی 0003H 0 (وقفه خارجی 0) - پین IN T 0. - وقفه 000BH از تایمر 0 (توسط پرچم سرریز تایمر - T F 0)؛ - وقفه خارجی 0013H 1 - IN T 1 پین. - وقفه 001BH از تایمر 1 (توسط پرچم سرریز تایمر - T F 1)؛ - وقفه 0023H از پورت سریال (وقفه سریال = وقفه دریافت یا وقفه انتقال). و غیره. حافظه داده جدا از حافظه برنامه است. آدرس دهی رم خارجی 64K در این قسمت امکان پذیر است. هنگام دسترسی به حافظه داده خارجی، CPU میکروکنترلر سیگنال های خواندن (R D) یا نوشتن (W R) مربوطه را تولید می کند، تعامل با حافظه داخلی داده در سطح فرمان انجام می شود، در حالی که سیگنال های R D و W R تولید نمی شوند. حافظه برنامه خارجی و حافظه خارجی داده را می توان با AND کردن سیگنال های R D و PS EN برای ارائه یک حافظه خارجی (برنامه / داده) ترکیب کرد. 128 بایت کمتر حافظه داخلی داده (128 بایت پایین) در تمام قالب های MCS-51 وجود دارد و در شکل 5 نشان داده شده است. 32 بایت اول نشان دهنده 4 بانک (بانک ثبت) با 8 رجیستر (R7 ... R0) است. رجیسترهای R0 و R1 در هر یک از بانکها می توانند به عنوان ثبت آدرس غیر مستقیم استفاده شوند. 16 بایت به دنبال بانک های ثبت یک بلوک از فضای آدرس پذیر بیت را تشکیل می دهد. مجموعه دستورالعمل MCS-51 شامل طیف گسترده ای از عملیات بیت است و 128 بیت در این بلوک مستقیماً آدرس پذیر هستند و آدرس ها از 00H تا 7FH متغیر هستند. تمام بایت های موجود در نیمه 128 بایتی پایین حافظه را می توان به طور مستقیم یا غیر مستقیم آدرس دهی کرد. نیمه بالای 128 بایت حافظه رم (بالا 128) در تراشه I-8051 وجود ندارد، اما در نسخه های کریستال با 256 بایت رم موجود است. در این مورد، منطقه "128 بالا" فقط برای آدرس دهی غیر مستقیم در دسترس است. منطقه SFR (ثبت عملکرد ویژه) فقط با آدرس دهی مستقیم در دسترس است. ترتیب رجیسترهای تابع ویژه در فضای SFR در شکل 6 نشان داده شده است. این موارد شامل ثبت پورت ها، تایمرها، کنترل های جانبی و غیره است. 9 7FH بایت-آدرس منطقه رم 30H (مستقیم، غیر مستقیم) 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 72H 71H 70H بایت-آدرس منطقه رم (مستقیم) 21H 05H 0FH 0EH 0DH 0CH 0BH 20AH 09H 08H 06H 04H 03H 02H 01H 00H 1FH RB3 18H 17H RB2 10H 0FH RB1 08H 07H SP پس از RESET 00H RB0 (R7 + R0) شکل 5. 128 بایت رم داخلی پایین. آدرس دهی بیتی 8 بایت F8H FFH F0H B F7H E8H EFH E0H ACC E7H D8H DFH D0H PSW D7H C8H CFH C0H C7H B8H IP BFH B0H P3 B7H A8H IE AFH A0H P2 A7HT8H DFH 908 /8 1/9 2 / A 3 / B 4 / C 5 / D 6 / E 7 / F شکل 6. قرار دادن رجیسترهای تابع خاص در فضای SFR. برای 16 آدرس در فضای SFR، آدرس دهی بایتی و بیتی امکان پذیر است. برای ثبات های آدرس دهی بیت، آدرس هگزادسیمال با "0H" یا "8H" به پایان می رسد. آدرس های بیت در این ناحیه از 80H تا FFH متغیر است. کل سری کریستال های خانواده MCS-51 دارای یک مجموعه اولیه از SFR ها هستند، مانند ریزمدار I-8051 که در همان آدرس ها قرار دارد. با این حال، در کریستال ها، که توسعه بیشتر خانواده در منطقه SFR هستند، رجیسترهای جدید برای گسترش 10 اضافه می شوند.

طرح سخنرانی

1. مقدمه

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

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

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

5. دستورالعمل های انتقال

1. مقدمه

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

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

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

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

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

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

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

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

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

وقت ملاقات

باتری

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

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

مستقیم

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

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

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

داده H

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

dataL

کمترین بیت (7-0) داده مستقیم 16 بیتی

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

adrL

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

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

بیت آدرس پذیر مستقیم، که آدرس آن حاوی CPC، واقع در RAM داده داخلی یا ثبت توابع ویژه SFR است.

a15, a14 ... a0

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

محتوای عنصر X

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

تخلیه M عنصر X


+

*
و
یا
XOR
/ ایکس

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

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

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

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

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

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

A، R7 را اضافه کنید- محتویات ثبت نام را به محتویات ثبت الف اضافه کنیدآر 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بدون استفاده از باتری در عین حال، کار با نیمه بالایی RAM داخلی فقط در حالت آدرس دهی غیر مستقیم و دسترسی به رجیسترها قابل انجام است. 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در توابع ویژه "کلمه وضعیت برنامه" را ثبت کنید PSW"به عنوان یک انباشته کننده یک بیتی یک پردازنده بولی استفاده می شود.

5. دستورالعمل های انتقال

آدرس های عملیات انتقال در زبان اسمبلی با یک برچسب یا با یک مقدار واقعی در فضای حافظه برنامه نشان داده می شود. آدرس های شاخه مشروط در یک افست نسبی جمع می شوند - یک بایت علامت به شمارنده برنامه اضافه می شود کامپیوتراگر شرط انتقال برآورده شود. مرزهای چنین انتقال هایی بین منفی 128 و 127 نسبت به اولین بایت زیر دستورالعمل قرار دارند. در تابع ویژه، کلمه وضعیت برنامه را ثبت کنید PSW"هیچ پرچم صفر وجود ندارد، بنابراین دستورالعمل ها 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 بایت را اشغال می کنند.

مقالات مرتبط برتر