آیرنکس موظف به پاسخگویی و رفع اشکال هر مطلب است
برای پشتیبانی از انجمن ، نظرات و تلگرام میتونید اقدام کنید | تلگرام : 09358790909
کانال تلگرام
AVRآموزشمیکروکنترلر ها

رجیستر های AVR قسمت 2 (آموزش AVR جلسه پنجم)

رجیستر های AVR (آموزش AVR جلسه پنجم)

سلام

قسمت دوم آموزش رجیستر های AVR و قسمت پنجم آموزش AVR رو براتون آماده کردیم .

در قسمت قبلی به بررسی برخی رجیستر های AVR مثل پرداختیم :

قسمت اول آموزش رجیستر : آموزش رجیستر AVR (جلسه چهارم)

برای مشاهده لیست آموزش های AVR روی اینجا کلیک کنید !

رجیستر های AVR

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

SREG یعنی رجیستر وضعیت (Status Register)

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

تصویر پایین رو ببینید :

رجیستر های AVR
رجیستر های AVR

 

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

وقتی که پردازنده Reset بشه همه بیت های این رجیستر 0 میشوند .

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

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

آموزش فلگ های AVR

1 : فلگ C (یا Carry) : این بیت نشون میده که یک Carry (حمل ، انتقال (بیت نقلی هم میگن بهش)) در عملیات منطقی و محاسبانی وجود داره . در صورت وجود انتقال این فلگ 1 میشه .

یک مثال از Caryy :

آموزش AVR

فرض کنید تو برنامه قراره دو تا عدد 11111111 و 1 با هم جمع بشند ، اونی که رنگشو قرمز کردیم بیت نهم هستش (بیت اضافه) و بهش Carry میگن .

با این کار میکروکنترلر میفهمه که جواب ما 10000000 هستش و 00000000 نیست .

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


2 : فلگ Z (یا Zero) : هر وقت حاصل عملیات ریاضی 0 بشه ، این بیت 1 میشه .


3 : فلگ N (یا Negative) : هر وقت نتیجه عملیات منطقی یا ریاضی ما منفی بشه این فلگ 1 میشه .

یعنی هر وقت حاصل ما منقی بشه بیت شماره هفت عدد باینری 1 میشه .


4 : فلگ V (یا Overflow) : این پرچم اعلام میکنه که در عملیات یک Overflow رخ داده .

هر وقت عملیات و محاسبات Overflow بشن ، این بیت 1 میشه .

به طور کلی وقتی دو تا عدد مثبت با هم جمع بشن و حاصل منفی بشه

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

این حالت رخ میده و به میکروکنترلر میگه داداش داری اشتباه میزنی ?


آموزش AVR


5 : فلگ S (یا Sign) : این پرچم علامت واقعی عدد رو نشون میده .

این فلگ با استفاده از عملیات منقی XOR و جمع پرچم های V و N رو XOR میکنه و نتیجه رو میزاره توی پرچم S .

تصویر زیر رو ببینید :

Sign Flag چیست ؟
Sign Flag چیست ؟

6 : فلگ H (یا HalfCarry) : اگه بین بیت های 3 و 4 یک عدد باینری Carry بشه حاصل این پرچم میشه 1 !


7 : فلگ T (یا Transfer bit) : با این فلگ ، بیت ها بارگذاری و ذخیره میشن و انتقال میده به رجیستر دیگه .


8 : فلگ I (یا Interupt) : کار این پرچم صدور مجوز برای وقته یا همون اینتراپت هستش .

هر وقت که قرار باشه یک وقفه رخ بده اول از همه میکروکنترلر چک میکنه که اجازه داره برای اجرا کردن این وقفه یا نه !.

و اگه این پرچم 1 باشه میکروکنترلر وقفه رو اجرا میکنه و بعد اجرای وقفه این پرچم دوباره 0 میشه .!

این فلگ مهم ترین پرچم هستش !


این قسمت هم تموم شد

منتظر قسمت های بعدی باشید !

امتیاز کاربر 5 (2 رای)
درحال ارسال
اشتراک ویژه رایگان میخوای ؟ کلیک کن !

محمد رحیمی

محمد رحیمی هستم مدیر وبسایت آیرنکس ! در سال 1394 سایت ای وی آر استودیو رو طراحی کردم (ای وی آر استودیو رو حذف کردیم) . و در تیر ماه 1396 سایت آیرنکس رو طراحی کردم و در خدمت شمام !

مطالب مرتبط

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

درحال ارسال

در صورت خطای درگاه بانکی با ادمین تماس بگیرید : 09358790909
+ +
Close