در مطالب قبل به نحوهی راه اندازی LED با AVR و برنامه نویسی آن آشنا پرداختیم و در این مطلب قصد داریم برنامه رقص نور با AVR را بررسی کنیم. در واقع این مطلب جمع بندی از مطالب قبلی است. بنابراین برای یادآوری پیشنهاد می کنیم پست های قیل را مشاهده نمایید. (پروژه روشن کردن ۸ LED به ترتیب)
ما برای انجام پروژه پورت B را انتخاب کردیم. با برقرار کردن ولتاژ مورد نیاز برای راه اندازی میکرو مشاهده خواهید کرد که ابتدا LED ها به ترتیب روشن شده و سپس هر ۸ LED با هم روشن میشوند و در مرحله آخر LED ها به صورت یکی در میان روشن میشوند.
#include <mega16.h> #include <delay.h> int I,N,K; void main(void) { DDRB=0xFF; while (1) { for(I=1;I<256;I=I*2){ PORTB=I; delay_ms(500); } for(N=0;N<5;N++){ PORTB=0XFF; delay_ms(250); PORTB=0X00; delay_ms(250); } for( K=0; K<5;K++){ PORTB=0X55; delay_ms(250); PORTB=0XAA; delay_ms(250); } }}
این برنامه به صورت سه حلقه for مستقل از هم نوشته شده است که هر حلقه وظیفه انجام یکی از حالت ها را دارد. حلقه اول در جلسات قبل به صورت کامل توضیح داده شده است. (پروژه روشن کردن ۸ LED به ترتیب)
در حلقه دوم برای روشن کردن تمامی LED ها کل پورت B را یک کردیم و در حلقه آخر برای اینکه LED ها یکی در میان روشن شوند باید پایه های پورت B یکی در میان ۰ و ۱ شوند که در این صورت دو کد ساخته میشود زیرا اگر به فیلم توجه کنید در مرحله آخر جای LED های روشن و خاموش عوض میشود و این بدین معناست که در هر مرحله از حلقه آخر جای ۰ و ۱ ها عوض میشود که برای این کار دو کد ۰xAA و ۰x55 را باید در رجیستر PORT قرار دهیم. (۰xAA=10101010 – ۰x55=01010101)
اطلاعات دانلود
- حجم فایل: 26 کیلوبایت
- فرمت: RAR
لینک دانلود