تو این برنامه قصد داریم یک LED رو توسط میکروکنترلر Atmega8 روشن و خاموش کنیم(من تاخیر رو ۱ثانیه گرفتم که میشه به هر زمانی تغییرش داد)
من برنامه رو در زیر قرار میدم و خط به خط توضیح میدم خیلی ساده اس، فایل برنامه و پروتئوس هم در پیوست قرار میدم
$regfile = "m8def.dat" $crystal = 1000000 Config Portb = Output Do Set Portb.0 Wait 1 Reset Portb.0 Wait 1 Loop End
خب بریم سراغ برنامه
خط اول: در خط اول ما پیکره بندی رو انجام میدیم و نوع میکرو رو مشخص میکنیم.
خط دوم: فرکانس کاری میکرو رو مشخص میکنیم.
خط سوم : چون میکرو ما از نوع atmega8 هستش این نوع میکرو پورت a نداره و از پورت b شروع میشه و کلا داری ۲۳ ورودی خروجی هست که ما فقط پروت b رو به عنوان خروجی در نظر گرفتیم و با دستور config اون رو نوشتیم.
خط چهارم: شروه حلقه do-loop همونطور که در توضیحات ابتدایی که در تاپیک بالا قرار داشت این حلقه یک حلقه تکرار هست و برنامه ای که میخوایم بنویسیم رو داخل این حلقه قرار میدیدم تا دائم برنامه ما اجرا بشه بدیهی هست که اگه این حلقه نباشه برنامه ما فقط یکبار انجام میشه میتونید داخل برنامه پروتئوس تست کنید!!!!
خط پنجم: ما اومدیم اولین پایه پورت b رو توسط دستور set فعال یا high یا روشن کردیم تا led ما روشن بشه.
خط ششم: توسط دستور wait ما تاخیر ایجاد میکنیم که بعد از روشن شدن led به مدت زمان دلخواه (که در این برنامه من ۱ثانیه درنظر گرفتم) روشن بمونه.
خط هفتم: در این خط توسط دستور reset ما پایه ای رو که روشن یا high کردیم رو غیرفعال یا خاموش میکنیم.
خط هشتم: بازهم یک تاخیر ایجاد میکنیم تا برنامه درست کار کنه و بعد به loop میرسه و دوباره برنامه به خط اول میره یعنی set شدن پورت b
خط نهم : انتهای حلقه do-loop
خط دهم : end و پایان برنامه
فایل برنامه و پروتئوس و ادامه مطلب را میتوانید از لینک زیر دنبال کنید
نام فایل: آموزش میکروکنترلرهای avr همراه عکس + فایل برنامه و شبیه سازی
مشاهده کامل مطلب: لینک به تالار گفتگو