دوشنبه , ۳۰ اردیبهشت ۱۳۹۸
آخرین مطالب
LINK TABLES
خانه | پروژه های کاربردی | استفاده عملی از وقفه خارجی در AVR

استفاده عملی از وقفه خارجی در AVR

هدف پروژه 

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

شرح پروژه

در این پروژه یک رقص نور با وقفه خارجی در AVR انجام شده است. میکرو از نوسان ساز RC داخلی با فرکانس یک مگاهرتز استفاده می کند.پایه INT0  با حساسیت به سطح پایین و پایه INT1 با حساسیت به لبه بالا رونده به عنوان ورودی های وقفه تنطیم شده اند.این دو پایه هرکدام به یک کلید که وظیفه ایجاد سیگنال وفقه را دارد متصل شده اند. در این پروژه برنامه رقص نور ساده ای به عنوان وظیفه اصلی میکرو نوشته شده.با یک بار عمل کردن هر کدام از کلید ها بر اساس نوع تنظیم حساسیت پایه های INT0 و INT1 ال ای دی مربوطه روشن می شود و تا زمان عمل کردن دوباره کلید روشن می ماند. با عملکرد دوباره کلید LED مربوطه خاموش می شود.در مورد پایه INT0 به محض فشرده شدن کلید و صفر شدن پایه وقفه خارجی ۰ ایجاد شده و ال ای دی مربوطه روشن می شود.با فشردن کلید متصل به پایه INT1 پایه صفر شده و با رها کردن کلید یک لبه بالا رونده ایجاد می شود،در این هنگام وقفه خارجی ۱ ایجاد می شود.برنامه سرویس وقفه ها به گونه ای نوشته شده اند که با  اجرای اول، ال ای دی خاموش و  با اجرای دوم، ال ای دی روشن شود.

ابزار پروژه

میکرو ATMEGA32

۱۰عدد LED

دو عدد میکروسوئیچ

دوعدد مقاومت ۱۰K

کامپایلر کدویژن

شبیه ساز پروتئوس

برنامه

در تابع main و در حلقه while دو حلقه وجود دارد .حلقه اول با ضرب کردن مقدار اولیه پورت (یک) ال ای دی ها را یکی پس از دیگری روشن و بعد خاموش می کند.و حلقه دوم با انجام عمل تقسیم آخرین مقدار پورت B و تا هشت بار این کار را بالعکس انجام می دهد و این چرخه در حلقه while مدام تکرار می شود.

وقفه خارجی

فایل های مورد نیاز این پروژه شامل فایل C ، فایل HEX و فایل DSN (شبیه سازی پروتئوس) را در لینک زیر دانلود کنید.

پسورد:www.microlearn.ir

دانلود فایل پروژه

درباره ی احسان عبداللهی

احسان عبداللهی هستم | کارشناسی الکترونیک خوندم و کارشناسی ارشد مخابرات |در سال 94 وب سایت میکرولرن را راه اندازی کردم | سعی کردم هر چیزی را به صورت کاربردی دنبال کنم، برای همین از کارشناسی کار با میکروکنترلرهای AVR و ARM، برنامه نویسی C و طراحی PCB را به صورت تخصصی کار کردم و از کارشناسی ارشد برنامه نویسی پایتون ، Computer vision و deep learning را به صورت تخصصی و کاربردی شروع کردم | الان هم سعی میکنم همیشه خودم را به روز نگه دارم و لذت کار کردن با دنیای برنامه نویسی و امبدد سیستم ها را به دیگران انتقال بدم

۲ دیدگاه

  1. من تو این برنامه رجیستر GIFR پاک کردم و برنامه را کامپایل کردم هیچ فرقی نکرد

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

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

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