برنامه،اسم با LED و رقص نور با atmega8+سورس و شبیه ساز

در اين بخش مي‌توانيد طرح آماده و کامل شده مرتبط با میکروکنترلرهای AVR را مشاهده بفرمایید

مدیران انجمن: SAMAN, sinaset, شوراي نظارت

ارسال پست
Colonel II
Colonel II
نمایه کاربر
پست: 7008
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9184 بار
سپاس‌های دریافتی: 21045 بار
تماس:

برنامه،اسم با LED و رقص نور با atmega8+سورس و شبیه ساز

پست توسط sinaset » جمعه 30 مرداد 1394, 10:08 am

بنام خدا
باسلام

برنامه،اسم با LED و رقص نور با atmega8+سورس و شبیه ساز تصویر 
این پروژه جالب رو برای یکی از دوستان خوبم به اسم رضا.. درست کردم.(جشن تولد!)
در این پروژه از میکرو ATMEGA8a و 61 ال ای دی استفاده شده که بصورت ماتریکسی به میکروکنترولر وصل شدن. حدود 11 افکت برای این پروژه طراحی کردیم ..

زبان برنامه نویسی کدویژن می باشد و شبیه ساز ان هم در پرتئوس انجام شده (پرتئوس به خوبی اجرایش نمی کند، و بصورت اهسته اون رو اجرا می کند) تصویر   برنامه .. 

کد: انتخاب همه

/*******************************************************
Project : sinaset
Version : v1
Date    : 08/04/2015
Chip type         : ATmega8A
AVR Core Clock frequency: 8.000000 MHz
*******************************************************/
#include <mega8.h>
#include <delay.h>
flash unsigned char row[8]= {0b11111110,0b11111101,0b11111011,0b11110111,0b11101111,0b11011111,0b10111111, 0b01111111};
//متغيير براي روشن کردن پايه ها منفي ال اي دي
flash unsigned char ef1[9]= {0b11111111,0b11100111,0b11000011,0b10000001,0b00000000,0b10000001,0b11000011,0b11100111};
flash unsigned char ef2[9]= {0b10000000,0b11000000,0b11100000,0b11110000,0b11111000,0b11111100,0b11111110,0b11111111};
flash unsigned char ef3[9]= {0b00000001,0b00000011,0b00000111,0b00001111,0b00011111,0b00111111,0b01111111,0b11111111};
flash unsigned char ef4[9]= {0b11111111,0b11111110,0b11111100,0b11111000,0b11110000,0b11100000,0b11000000,0b10000000};
//افکت اول،متغير ارايه ي،باز و بسته شدن ال اي دي
//افکت دوم،متغير ارايه ي،ريفريش شدن
//افکت سوم،متغير ارايه ي ،پر شدن ال اي دي بصورت رفت
//افکت چهارم،متغير ارايه ي،پر شدن ال اي دي بصورت برگشت
void main(void)
{
char speed=1,i=0, move=0,m=0;
char t=1;
int x=0,j=0,n=0,r=0;
int speed1=0;
int s2=1;   //ريفرش کردن ال اي دي ها
int s3=30;  //تعداد دفعات ريفرش کردن

DDRB=0XFF;
PORTB=0x00;
DDRD=0xff;
PORTD=0x00;
while (1)
  {      
   for(x=0;x<8;x++)   // حرکت يک ال اي دي
   {
   move=0b00000001; 
    for(i=0;i<8;i++)
    {
    PORTB=move;
    PORTD=row[x];
    delay_ms(50);
    move<<=1;
    }
   PORTB=0x00;
   PORTD=0xFF;
   }   
   for(x=8;x>=1;x--)   //حرکت برگشت ال اي دي قبلي
   {
   move=0b10000000; 
    for(i=0;i<8;i++)
    {
    PORTB=move;
    PORTD=row[x];
    delay_ms(50);
    move>>=1;
    }
    PORTB=0x00;
    PORTD=0xFF;
   } 
   
    for(x=0;x<20;x++)  //رفص نور مار پله ي
   {
    move=0b00000001; 
    for(i=0;i<8;i++)
    {
    PORTB=move;
    PORTD=0x00;
    delay_ms(100);
    move<<=1;
    }
   } 
   
   for(i=0;i<230;i++)//R
    {
    PORTB=0x00;
    PORTD=0xFF;
   
    PORTB=0xFF;
    PORTD=row[0];
    delay_ms(1);

    PORTB=0xFF;
    PORTD=row[1];
    delay_ms(1);

    PORTB=0x03;
    PORTD=row[2];
    delay_ms(1);

    PORTB=0x00;
    PORTD=0xFF;
    }   
      
    for(i=0;i<230;i++)//E
    {
    PORTB=0xFC;
    PORTD=row[2];
    delay_ms(1);
   
    PORTD=0xFF;
      
    PORTB=0xFF;
    PORTD=row[3];
    delay_ms(1);
      
    PORTB=0x00;
    PORTD=0xFF;
    }
    for(i=0;i<230;i++)//Z
    {
    PORTB=0xFF;
    PORTD=row[4];
    delay_ms(1);
      
    PORTB=0xFF;
    PORTD=row[5];
    delay_ms(1);

    PORTB=0x00;
    PORTD=0xFF;
    }   
    for(i=0;i<230;i++)//A
    {
    PORTB=0xF0;
    PORTD=row[5];
    delay_ms(1);
   
    PORTD=0xFF;

    PORTB=0xFF;
    PORTD=row[6];
    delay_ms(1);

    PORTB=0x1F;
    PORTD=row[7];
    delay_ms(1);

    PORTB=0x00;
    PORTD=0xFF;
    } 
    s3=30;
   for(i=0;i<10;i++)   //افکت پر شدن ال اي دي ها به صورت رفت و برگشت
   {
   for(x=0;x<8;x++)
   {   
    PORTB=ef3[x];
    PORTD=0b11111110;
    delay_ms(s3);
   }
   
   for(speed1=0;speed1<8;speed1++)
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b11111110;
      delay_ms(s2);
      PORTB=ef3[speed1];
      PORTD=0b11111101;
      delay_ms(s2);
     }
   }
   
   for(speed1=0;speed1<8;speed1++)
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b11111100;
      delay_ms(s2);       
      PORTB=ef3[speed1];
      PORTD=0b11111011;
      delay_ms(s2);
     }
   }   
    for(speed1=0;speed1<8;speed1++)
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b11111000;
      delay_ms(s2);      
      PORTB=ef3[speed1];
      PORTD=0b11110111;
      delay_ms(s2);
     }
   }   
   for(speed1=0;speed1<8;speed1++)
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b11110000;
      delay_ms(s2);       
      PORTB=ef3[speed1];
      PORTD=0b11101111;
      delay_ms(s2);
     }
   }   
   for(speed1=0;speed1<8;speed1++)    
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b11100000;
      delay_ms(s2);      
      PORTB=ef3[speed1];
      PORTD=0b11011111;
      delay_ms(s2);
     }
   }   
   for(speed1=0;speed1<8;speed1++)
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b11000000;
      delay_ms(s2);       
      PORTB=ef3[speed1];
      PORTD=0b10111111;
      delay_ms(s2);
     }
   }   
   for(speed1=0;speed1<8;speed1++)
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b10000000;
      delay_ms(s2);
       
      PORTB=ef3[speed1];
      PORTD=0b01111111;
      delay_ms(s2);
     }
   }   
   for(speed1=0;speed1<8;speed1++)      //////برگشت
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b10000000;
      delay_ms(s2);       
      PORTB=ef4[speed1];
      PORTD=0b01111111;
      delay_ms(s2);
     }
   }    
   for(speed1=0;speed1<8;speed1++)
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b11000000;
      delay_ms(s2);
       
      PORTB=ef4[speed1];
      PORTD=0b10111111;
      delay_ms(s2);
     }
   }   
   for(speed1=0;speed1<4;speed1++)
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b11100000;
      delay_ms(s2);       
      PORTB=ef4[speed1];
      PORTD=0b11011111;
      delay_ms(s2);
     }
   }
   for(speed1=0;speed1<8;speed1++)
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b11110000;
      delay_ms(s2);       
      PORTB=ef4[speed1];
      PORTD=0b11101111;
      delay_ms(s2);
     }
   }   
   for(speed1=0;speed1<8;speed1++)
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b11111000;
      delay_ms(s2);       
      PORTB=ef4[speed1];
      PORTD=0b11110111;
      delay_ms(s2);
     }
   }
       for(speed1=0;speed1<8;speed1++)
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b11111100;
      delay_ms(s2);      
      PORTB=ef4[speed1];
      PORTD=0b11111011;
      delay_ms(s2);
     }
   }
   for(speed1=0;speed1<8;speed1++)
   {
       for(x=0;x<s3;x++)
     {
      PORTB=0xff;
      PORTD=0b11111110;
      delay_ms(s2);      
      PORTB=ef4[speed1];
      PORTD=0b11111101;
      delay_ms(s2);
     }
   }   
   for(x=0;x<8;x++)
   {   
    PORTB=ef4[x];
    PORTD=0b11111110;
    delay_ms(s3);
   }   
   s3=s3-3;   
   } 
    for(x=0;x<20;x++)  //رقص نور باز بسته شدن
   {
    for(i=0;i<8;i++)
    {
    PORTB=ef1[I];
    PORTD=0x00;
    delay_ms(100);
    move>>=1; 
    }
   }
   

   for(x=0;x<100;x++)  //افکت ريفريش شدن
   {
    for(i=0;i<8;i++)
    {
    PORTB=ef2[I];
    PORTD=0xFE;
    delay_ms(speed);
    }
    for(i=0;i<8;i++)
    {
    PORTB=0xff;
    PORTD=0xFE;
    delay_ms(speed);
    PORTB=ef2[I];
    PORTD=0xFC;
    delay_ms(speed);
    }
    for(i=0;i<8;i++)
    {
    PORTB=0xff;
    PORTD=0xFC;
    delay_ms(speed);

    PORTB=ef2[I];
    PORTD=0xF8;
    delay_ms(speed);
    }
    for(i=0;i<8;i++)
    {
    PORTB=0xff;
    PORTD=0xF8;
    delay_ms(speed);

    PORTB=ef2[I];
    PORTD=0xF0;
    delay_ms(speed);
    }
    for(i=0;i<8;i++)
    {
    PORTB=0xff;
    PORTD=0xF0;
    delay_ms(speed);
   
    PORTB=ef2[I];
    PORTD=0xE0;
    delay_ms(speed);
    }
    for(i=0;i<8;i++)
    { 
    PORTB=0xff;
    PORTD=0xE0;
    delay_ms(speed);
   
    PORTB=ef2[I];
    PORTD=0xC0;
    delay_ms(speed);
    }
    for(i=0;i<8;i++)
    {
    PORTB=0xff;
    PORTD=0xc0;
    delay_ms(speed);

    PORTB=ef2[I];
    PORTD=0x80;
    delay_ms(speed);
    }
    for(i=0;i<30;i++)
    {
    PORTB=0xff;
    PORTD=0x80;
    delay_ms(speed);

    PORTB=ef2[I];
    PORTD=0x00;
    delay_ms(speed);
    }
   }
   
  for(r=0;r<4;r++)     //افکت حرکت ماري
   {

   t=1;
   for(i=0;i<8;i++)
   {
   PORTB=ef3[I];
   PORTD=row[0];
   delay_ms(40);
   }
   
   for(j=0;j<7;j++)
   {
      
   for(n=0;n<8;n++)
   {
       for(i=0;i<30;i++)
       {
      PORTB=~ef3[n];
      PORTD=row[j];
      delay_ms(1);
      PORTB=ef3[n];
      PORTD=row[t];
      delay_ms(1);
       }         
   }
   t++;   
   }
   }
   
   
   for(m=0;m<2;m++)  //افکت خاموش روشن کردن تکي حروف
  {   
   for(x=0;x<10;x++)
   {
    for(i=0;i<100;i++)//R
    {
    PORTB=0x00;
    PORTD=0xFF;
      
    PORTB=0xFF;
    PORTD=row[0];
    delay_ms(1);

    PORTB=0xFF;
    PORTD=row[1];
    delay_ms(1);

    PORTB=0x03;
    PORTD=row[2];
    delay_ms(1);

    PORTB=0x00;
    PORTD=0xFF;
    }
    delay_ms(140);
    } 
   for(x=0;x<10;x++)
   {   
   for(i=0;i<100;i++)//E
    {
    PORTB=0xFC;
    PORTD=row[2];
    delay_ms(1);
   
    PORTD=0xFF;
      
    PORTB=0xFF;
    PORTD=row[3];
    delay_ms(1);
      
    PORTB=0x00;
    PORTD=0xFF;
    }
   
    delay_ms(140);
    } 
   
   for(x=0;x<10;x++)
   {
   for(i=0;i<100;i++)//Z
    {
    PORTB=0xFF;
    PORTD=row[4];
    delay_ms(1);
      
    PORTB=0xFF;
    PORTD=row[5];
    delay_ms(1);

    PORTB=0x00;
    PORTD=0xFF;
    }
    delay_ms(140);
    }
   for(x=0;x<10;x++)
   {
    for(i=0;i<100;i++)//A
    {
    PORTB=0xF0;
    PORTD=row[5];
    delay_ms(1);
   
    PORTD=0xFF;

    PORTB=0xFF;
    PORTD=row[6];
    delay_ms(1);

    PORTB=0x1F;
    PORTD=row[7];
    delay_ms(1);

    PORTB=0x00;
    PORTD=0xFF;
    }   
    delay_ms(140);
    }
   }      
  }    
}

[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]سورس و شبیه ساز و فایل ها
[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]از پروژه.
[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]متحرک از پروژه


برای عاقبت خیر این دوستم دعا کنیدتصویر
باتشکر.[/I][/I][/I][/I][/I][/I][/I][/I][/I][/I]
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

ارسال پست

بازگشت به “طرح آماده و کامل شده AVR”