آموزش 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 میگن .

حتما ببینید :  ترانزیستور IGBT چیست؟ آموزش Transistor دوقطبی

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

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


2 : فلگ Z (یا Zero) : هر وقت حاصل عملیات ریاضی بشه ، این بیت 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) : کار این پرچم صدور مجوز برای وقته یا همون اینتراپت هستش .

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

حتما ببینید :  نحوه استفاده از شیفت رجیستر در آردوینو (آموزش آردوینو #7)

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

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


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

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

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

محمد رحیمی

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

2 نظر

  1. با سلام و تشکر وقدر دانی .
    مطلب عالی م مهمی هستش. اما کمی حرفه‌ای و سطح بالا توضیح دادید مثل جناب مهندس کی نژاد .ایشون هم با ادبیات و اصطلاح فنی توضیح میده که برای کاربری مثل من که میره سراغ ریجیسترها چیزی دستگیرش نمیشه چون طرف باید زمینه خیلی قوی داشته باشه‌. و یه چیز مهم دیگه مثال ساده به زبان ساده و خیلی عامیانه میتونه مفید باشه. من با اموزش مهندس کی نژاد شروع کردم ولی یک کلمه نفهمیدم. یه اموزش ساده پیدا کردم هم عجیب منو مصمم تر کرد هم علاقه‌م بیشتر شد هم انچه تو اموزش بود یاد گرفتم اموزش برنامه نویسی بود. شما هم مخاطبی مثل ما تازه کار دارید همه حرفه‌ای نیستن پس به فکر ما هم باشید اگه بفرمائید مطلب اسونه باید بگم برای شما اسونه منم در رشته تخصصی خودم کاری برام اسونه که دیگران براشون کوه کندن هست.
    امیدوارم همه کاربران به این کار ارزنده و زحمت شما دسترسی داشته باشند .ارزوی موفقیت و پیشرفت دارم براتون.
    منتظر اموزشهای بعدی هستیم.

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

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

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

دکمه بازگشت به بالا
بستن
بستن