مجموعه دستورات و ثبات ها در 8051
بانک های ثبات:
8051 دارای 8 ثبات با نامهای R0-R7 میباشد دستوراتی که از این ثباتها استفاده می کنند نسبت به دستورات مشابه خود که از انواع دیگر آدرس دهی استفاده می کنند دارای تعداد بیت کمتر و سرعت بیشتری هستند بنابراین در صورتی که از داده ای به طور متناوب در برنامه استفاده می کنیم بهتر است که این داده در یکی از ثباتهای بانک ثبات قرار گیرد.
در 8051 , 4 بانک ثبات وجود دارد که در هر لحظه از زمان می توان فقط یکی از این بانکها را فعال و از آن استفاده کرد . برای فعال کردن یک بانک ثبات از دو بیت با نامهای PSW.3, PSW.4 استفاده می کنیم این 2 بیت اجزای ثبات PSW هستند.
ثبات PSW:
مخفف Program status word یا کلمه وضعیت سیستم است .این ثبات در هر سیکل ماشین بسته به وضعیت و جواب برنامه تغییر می کند و برنامه نویس می تواند بر اساس این تغییرات منطق برنامه را تغییر دهد. PSW مشابه FLAG های ریزپردازنده های سیستم های میکروکامپیوتری می باشد.
بیت توازن ((P :
این بیت تنظیم توازن زوج , مقدار آن صفر یا یک می شود . در صورتیکه تعداد یکهای داخل آکومولاتور فرد باشد این بیت یک می شود تا مجموع یکها زوج باشد این یک روش ساده تشخیص تعداد فرد خطا در انتقال اطلاعات می باشد.برای مثال اگر آکومولاتور عدد 00000011 را در مبنای دو در خود داشته باشد چون در این مثال تعداد 1 ها دو عدد می باشد بنابراین بیت توازن صفر می شود تا تعداد یکها ی زوج باقی بماند.این بیت اکثرا در روتین های پورت سری استفاده می شود به طوری که اطلاعات با بیت توازن ارسال می شود و در موقع دریافت اطلاعات بیت توازن تست می گردد.
بیت پرچم سرریز یا OV :
این بیت با نام OVER FLOW یا سرریز نام دارد. اگر هنگام جمع یا تفریق حسابی نتیجه حاصل بزرکتر از 127 + یا کوچکتر از 127- شود سرریز اتفاق می افتد و بیت OV برابر 1 می شود.
بیت های انتخاب بانک ثبات :(RS0,RS1)
این دو بیت به منظور فعال کردن یکی از 4 بانک ثبات مورد استفاده قرار می گیرد.مقدار پیش فرض این 2 بیت 00 است که بانک ثبات 0 را فعال می کند.
بیت :FO
این بیت با نام پرجم صفر هم شناخت هشده است. اگر نتیجه یک عمل حسابی صفر شوداین بیت یک می شود.
بیت :AC
در هنگام انجام عملیات حسابی در صورتی که از بیت شماره 3 به شماره 4 رقن نقلی داشته باشیم در این صورت این بیت یک می شود.
بیت پرچم نقلی یا :CY
این بیت به دو منظور به کار می رود:
1- در مواقع محاسبات یعنی زمانی که عمل جمع انجام می شود اگر از بیت 7 رقم خارج شود بیت C یک می شود.
2- اگر در زمان تفریق از بیت 7 قرض گرفته شود در این صورت بیت C برابر یک می شود.
ثبات A:
این ثبات Accumulator یا انباره نامیده می شود. این ثبات همه منظوره است . بیشتر دستورات میکروکنترولر با این ثبات کار می کنند بنابراین ابتدا باید داده در این ثبات قرار بگیرد سپس عملیات انجام شود.
ثبات :B
ثبات یا آکومولاتور B در آدرس F0H حافظه قرار دارد و معمولا با ثبات A برای محاسبات ضرب و تقسیم استفاده می شود.
ثبات B را می توان به عنوان یک ثبات عمومی برای هر کاربرد دیگری نیز لستفاده نمود. علاوه بر این بیت های ثبات B آدرس پذیر و از آدرس F0H تا F7H می باشند لذا می توان با دستورات روی بیت , عملیات بر روی آنها انجام داد.
ثبات DPTR یا اشاره گر داده:
این ثبات یک ثبات 16 بیتی است که از 2 ثبات 8 بیتی با نامهای DPL,DPH ساخته شده است و به عنوان اشاره گر داده به کار می رود.ای ثبات برای دسترسی به حافظه کد و داده خارجی به کار می رود. به عنوان مثال دستورات زیر عدد 55H را در حافظه داده خارجی RAM می نویسند:
MOV A,#55H
MOV DPTR,#1000H
MOV @DPTR,A
اشاره گر پشته یا :SP
SP یک ثبات 8بیتی می باشد که آدرس اطلاعات بالای حافظه پشته را دارا می باشد . عملیات حافظه پشته شامل قرار دادن اطلاعات در بالای حافظه پشته ( با دستور ( PUSH یا برداشتن اطلاعات (با دستور (POP از بالای حافظه پشته می باشد.
هربار که اطلاعات در حافظه پشته قرار می گیرد ابتدا به محتوای SP یک واحد اضافه می شود و سپس اطلاعات در حافظه پشته نوشته می شود ((PUSH
هربار که اطلاعاتی از حافظه پشته خوانده می شود ( ( POP
ابتدا اطلاعات خوانده می شود و سپس یک واحد از SP کم می شود.