اطلاعیه

Collapse
No announcement yet.

راهنمایی برای مثال های تمرینی AVR

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #31
    پاسخ : راهنمایی برای مثال های تمرینی AVR

    نوشته اصلی توسط reza_rouhi نمایش پست ها
    یعنی یکبار کلید رو بزنم و دیگه بصورت اتومات رقص نور انجام بشه. درسته؟
    پس من مثال اولی رو که بترتیب روشن میشن رو انجام میدم.
    باید کمکم کنید
    مرسی
    بدون شرط وبا شرط بودنش تصمیم با خودتونه....ما کمک می کنیم تلاش کنید خودتون هم
    موفق باشی
    Proudly @real_ahmadi
    #real_ahmadi

    واسه اسمت بجنگ

    دیدگاه


      #32
      پاسخ : راهنمایی برای مثال های تمرینی AVR

      برا اون که دوستان گفتن از سویچ استفاده بشه:
      با یه شیفت دادن که اصلا این همه مشکل نیس__یا این که من اشتباه میگم
      .
      .
      .
      شما میتونید یه پروسه طراحی کنید و برای اجراش شرط بزارید___بعد با هر کلیک یه بار اون پروسه اجرا میشه!
      .
      یه چیز میگم خیلی جالب میشه فک کنم ولی تا حالا امتحانش نکردم!
      اگه یه دستگاه تکرار بسازی خیلی باحال میشه
      ینی اینجوری بگم که اول ایسی تا یک دیقه منتظر میمونه تا اطلاعات رو از تو دریافت کنه...ینی ایسی داره زمانو ثانیه به ثانیه میشماره و توی هر ثانیه نیگا میکنه به تو که اگه کلیک کنی توی حافظش ذخیره کنه...بعد از یک دیقه حالا ایسی جواب پس میده و در همون زمانایی که تو کلیک کردی میاد ال ای دی رو روشن میکنه جلل الخالق!
      .
      به نظرم جالب میشه__موفق باشی

      دیدگاه


        #33
        پاسخ : راهنمایی برای مثال های تمرینی AVR

        نوشته اصلی توسط مهندس احمدی نمایش پست ها
        بدون شرط وبا شرط بودنش تصمیم با خودتونه....ما کمک می کنیم تلاش کنید خودتون هم
        موفق باشی
        فعلا به این صورت نوشتم که با زدن کلید LED ها به ترتیب روشن و خاموش میشن تا هشتمی و سپس میاد از اول شروع میکنه و دیگه اینطوری نیست که به آخر رسید از آخر شروع بشه بیاد به اولی! این قسمت که عقبی بیاد رو بلد نیستم. فقط راهنمایی کنید چه دستوری استفاده کنم؟
        البته این تو ذهنم هست که بیام پورتها رو حالا از آخر بگم روشن و خاموش بشن تا به اولی برسن ولی اینطوری برنامه زیاد میشه و جالب نیست به نظرم!


        #include <mega32.h>
        #include <delay.h>
        void main (void){
        int x=1;
        DDRA.0=0;
        DDRB=0xff;


        while(1){

        if(PINA.0==1){
        while(PINA.0==1);
        }

        while(x==1){
        PORTB.0=0xff;
        delay_ms(1000);

        PORTB.1=0xff;
        PORTB.0=0x00;
        delay_ms(1000);

        PORTB.2=0xff;
        PORTB.1=0x00;
        delay_ms(1000);

        PORTB.3=0xff;
        PORTB.2=0x00;
        delay_ms(1000);

        PORTB.4=0xff;
        PORTB.3=0x00;
        delay_ms(1000);

        PORTB.5=0xff;
        PORTB.4=0x00;
        delay_ms(1000);

        PORTB.6=0xff;
        PORTB.5=0x00;
        delay_ms(1000);

        PORTB.7=0xff;
        PORTB.6=0x00;
        delay_ms(1000);
        PORTB=0x00;


        }
        }
        }
        جدیدترین ویرایش توسط reza_rouhi; ۲۲:۱۰ ۱۳۹۵/۰۷/۲۷.

        دیدگاه


          #34
          پاسخ : راهنمایی برای مثال های تمرینی AVR

          نوشته اصلی توسط reza_rouhi نمایش پست ها
          فعلا به این صورت نوشتم که با زدن کلید LED ها به ترتیب روشن و خاموش میشن تا هشتمی و سپس میاد از اول شروع میکنه و دیگه اینطوری نیست که به آخر رسید از آخر شروع بشه بیاد به اولی! این قسمت که عقبی بیاد رو بلد نیستم. فقط راهنمایی کنید چه دستوری استفاده کنم؟
          البته این تو ذهنم هست که بیام پورتها رو حالا از آخر بگم روشن و خاموش بشن تا به اولی برسن ولی اینطوری برنامه زیاد میشه و جالب نیست به نظرم!


          #include <mega32.h>
          #include <delay.h>
          void main (void){
          int x=1;
          DDRA.0=0;
          DDRB=0xff;


          while(1){

          if(PINA.0==1){
          while(PINA.0==1);
          }

          while(x==1){
          PORTB.0=0xff;
          delay_ms(1000);

          PORTB.1=0xff;
          PORTB.0=0x00;
          delay_ms(1000);

          PORTB.2=0xff;
          PORTB.1=0x00;
          delay_ms(1000);

          PORTB.3=0xff;
          PORTB.2=0x00;
          delay_ms(1000);

          PORTB.4=0xff;
          PORTB.3=0x00;
          delay_ms(1000);

          PORTB.5=0xff;
          PORTB.4=0x00;
          delay_ms(1000);

          PORTB.6=0xff;
          PORTB.5=0x00;
          delay_ms(1000);

          PORTB.7=0xff;
          PORTB.6=0x00;
          delay_ms(1000);
          PORTB=0x00;


          }
          }
          }
          سلام به این صورت بنویسید
          PORTB=0B10000000;
          delay_ms(100)
          PORTB=0B11000000
          delay_ms(100)
          PORTB=0B11100000
          delay_ms(100)
          و...
          اینجوری هم کل پورت رو می تونید کنترل کنید واسه هر پین دستتون بازه هم راحت تره وحرفه ای تر
          بازم سوالی بود در خدمتم
          بدرود
          Proudly @real_ahmadi
          #real_ahmadi

          واسه اسمت بجنگ

          دیدگاه


            #35
            پاسخ : راهنمایی برای مثال های تمرینی AVR

            نوشته اصلی توسط مهندس احمدی نمایش پست ها
            سلام به این صورت بنویسید
            PORTB=0B10000000;
            delay_ms(100)
            PORTB=0B11000000
            delay_ms(100)
            PORTB=0B11100000
            delay_ms(100)
            و...
            اینجوری هم کل پورت رو می تونید کنترل کنید واسه هر پین دستتون بازه هم راحت تره وحرفه ای تر
            بازم سوالی بود در خدمتم
            بدرود
            با سلام مجدد.
            من به همین صورتی که شما گفته بودین انجام دادم ولی برای مثال اول ( یکی یکی به ترتیب روشن و خاموش شود و از آخر به اول برگردد) کاربرد نداره.
            کدی که تست شده و جواب گرفتم رو در زیر قرار میدم.
            چیزی که شما گفتید برای مثال دومی هست که یکی یکی روشن میشن و روشن باقی میمونند.
            حالا بقیه افکت ها هم آسونه. مثلا برای روشن شدن یکی در میون هم میشه پورتهای زوج یا فرد رو فعال کرد.
            دستتون درد نکنه. حالا میخوام با LCD کار کنم . مزاحمتون خواهم شد.


            #include <mega32.h>
            #include <delay.h>
            void main (void){
            int x=1;
            DDRA.0=0;
            DDRB=0xff;


            while(1){

            if(PINA.0==1){
            while(PINA.0==1);
            }

            while(x==1){
            PORTB.0=0xff; //LED_1
            delay_ms(1000);

            PORTB.0=0x00 ;
            PORTB.1=0xff; //LED_2
            delay_ms(1000);

            PORTB.1=0x00 ;
            PORTB.2=0xff; //LED_3
            delay_ms(1000);

            PORTB.2=0x00 ;
            PORTB.3=0xff; //LED_4
            delay_ms(1000);

            PORTB.3=0x00 ;
            PORTB.4=0xff; //LED_5
            delay_ms(1000);

            PORTB.4=0x00 ;
            PORTB.5=0xff; //LED_6
            delay_ms(1000);

            PORTB.5=0x00 ;
            PORTB.6=0xff; //LED_7
            delay_ms(1000);

            PORTB.6=0x00; //LED_8
            PORTB.7=0xff ;
            delay_ms(1000);

            PORTB.7=0x00; //LED_7
            PORTB.6=0xff ;
            delay_ms(1000);

            PORTB.6=0x00; //LED_6
            PORTB.5=0xff ;
            delay_ms(1000);

            PORTB.5=0x00; //LED_5
            PORTB.4=0xff ;
            delay_ms(1000);

            PORTB.4=0x00; //LED_4
            PORTB.3=0xff ;
            delay_ms(1000);

            PORTB.3=0x00; //LED_3
            PORTB.2=0xff ;
            delay_ms(1000);

            PORTB.2=0x00; //LED_2
            PORTB.1=0xff ;
            delay_ms(1000);

            PORTB.1=0x00; //LED_1
            PORTB.0=0xff ;
            delay_ms(1000);

            //PORTB=0x00;


            }
            }
            }

            دیدگاه


              #36
              پاسخ : راهنمایی برای مثال های تمرینی AVR

              خواهشمندم قبل از برنامه نویسی ، این مطلب را کامل مطالعه کنید:
              Reveng will surely come... Your hard time are ahead
              // - - - - - - - - - -
              برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
              // - - - - - - - - - -
              اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
              // - - - - - - - - - -

              دیدگاه


                #37
                پاسخ : راهنمایی برای مثال های تمرینی AVR

                جناب مهندس احمدی
                من دارم روی LCD مطالعه میکنم.
                میشه یه مثال خیلی ساده از LCD بذارید تا ببینم از چه توابعی استفاده شده و چطوری هست؟
                مثلا اعداد 1 تا 10 رو نشون بده.
                ممنونم

                دیدگاه


                  #38
                  پاسخ : راهنمایی برای مثال های تمرینی AVR

                  نوشته اصلی توسط reza_rouhi نمایش پست ها
                  جناب مهندس احمدی
                  من دارم روی LCD مطالعه میکنم.
                  میشه یه مثال خیلی ساده از LCD بذارید تا ببینم از چه توابعی استفاده شده و چطوری هست؟
                  مثلا اعداد 1 تا 10 رو نشون بده.
                  ممنونم
                  سلام
                  واسه نشون دادن متن باید این تابع رو بنویسی:
                  lcd_clear(); واسه پاک کردن صفحه ال سی دیه
                  lcd_gotoxy(0,0); این واسه مشخص کردن مختصات نوشته هستش
                  lcd_putsf("Hello");این روی ال سی دی می نویسه Hello به جای hello هرچیز دیگه هم بنویسی می نویسه فقط به یه نکته حواست باشه که ال سی دیت چند کاراکتریه مثلا 2*16باشه نباید یه متن بیشتر از 16حرف بشه با همه فاصله و..
                  اگه خاستی می تونی delay هم بدی که اگه توی حلقه بی نهایت بزاریش مثلا هر 1ثانیه ال سی دی رو پاک می کنه ومی نویسه hello
                  delayکه دادی می تونی دوباره خط بعدی اون تابع هارو اضافه کنی و متن هارو تغییر بدی هر 1ثانیه یه متن رو بنویسه
                  موفق باشی
                  Proudly @real_ahmadi
                  #real_ahmadi

                  واسه اسمت بجنگ

                  دیدگاه


                    #39
                    پاسخ : راهنمایی برای مثال های تمرینی AVR

                    سلام
                    منظور از دستور پایینی چیه؟ و چرا چنین اعدادی توی بازه کروشه قرار میگیرن؟

                    unsigned char x[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};

                    دیدگاه


                      #40
                      پاسخ : راهنمایی برای مثال های تمرینی AVR

                      میخوام برنامه ای بنویسم که با فشردن کلید اعداد 0 تا 9 رو روی 7 سگمنت نشون بده.
                      دوستان مرحله به مرحله کمکم میکنید؟
                      سوالاتی که برام پیش اومده :
                      1- سون سگمنت از چه نوعی باید باشه و چند پایه ای باشه؟
                      2- پایه های سون سگمنت رو باید به کدام پایه های میکرو وصل کنم؟ آیا اختیاریه؟
                      3- و اینکه کلید روی چه پایه ای باید قرار بگییره؟
                      جدیدترین ویرایش توسط reza_rouhi; ۲۲:۰۱ ۱۳۹۵/۰۸/۰۵.

                      دیدگاه


                        #41
                        پاسخ : راهنمایی برای مثال های تمرینی AVR

                        نوشته اصلی توسط reza_rouhi نمایش پست ها
                        میخوام برنامه ای بنویسم که با فشردن کلید اعداد 0 تا 9 رو روی 7 سگمنت نشون بده.
                        دوستان مرحله به مرحله کمکم میکنید؟
                        سوالاتی که برام پیش اومده :
                        1- سون سگمنت از چه نوعی باید باشه و چند پایه ای باشه؟
                        2- پایه های سون سگمنت رو باید به کدام پایه های میکرو وصل کنم؟ آیا اختیاریه؟
                        3- و اینکه کلید روی چه پایه ای باید قرار بگییره؟
                        سلام
                        امیدوارم حالت خوب باشه خیلی هم عالی....چقدر خوب پیشرفت می کنید
                        سون سگمن به انتخاب خودت هم می تونه اند مشترک هم کاتد مشترک باشه (کاتد بزارید بهتره ادم توی برنامه نویسیش قاطی نمی کنه)
                        سون سگمنت تک بگیرین
                        هرپورتی خواستید وصل کنید اگر از مگا 32استفاده می کنی به صورت عملی و اگه روی پورت سی قرارش دادی 7سگمن رو حتما jtag رو غیر فعال کن
                        کلید رو هم روی هر پورتی خواستی بزار
                        می تونی از سوئیچ استفاده کنی یه متغییر میزاری که هر بار کلید رو زدی یکی بهش اضافه بشه حالا سوئیچ وکیس یکی یکی شماره میدی و داخل هرکدوم عدد رو به 0b00000000 می نویسی اخر سر هم یه شرط می زاری که اگه به فلان عدد رسید صفر یا یک بشه (بیاد از اول شروع کنه)
                        Proudly @real_ahmadi
                        #real_ahmadi

                        واسه اسمت بجنگ

                        دیدگاه


                          #42
                          پاسخ : راهنمایی برای مثال های تمرینی AVR

                          نوشته اصلی توسط مهندس احمدی نمایش پست ها
                          سلام
                          می تونی از سوئیچ استفاده کنی یه متغییر میزاری که هر بار کلید رو زدی یکی بهش اضافه بشه حالا سوئیچ وکیس یکی یکی شماره میدی و داخل هرکدوم عدد رو به 0b00000000 می نویسی اخر سر هم یه شرط می زاری که اگه به فلان عدد رسید صفر یا یک بشه (بیاد از اول شروع کنه)
                          ممنونم از لطفت.
                          این قسمت باشه برای مرحله بعد.
                          برای این مرحله میخوام یک بار برای شروع کلید رو بزنم و اعداد یکی پس از دیگری با یه تاخیری نمایش داده بشه و بعد خاموش بشه.

                          دیدگاه


                            #43
                            پاسخ : راهنمایی برای مثال های تمرینی AVR

                            نوشته اصلی توسط reza_rouhi نمایش پست ها
                            ممنونم از لطفت.
                            این قسمت باشه برای مرحله بعد.
                            برای این مرحله میخوام یک بار برای شروع کلید رو بزنم و اعداد یکی پس از دیگری با یه تاخیری نمایش داده بشه و بعد خاموش بشه.
                            اهان
                            شرط بزارین اگر فلان کلید برابر با 0شد هر عدد به صورت 0b00000000 بنویسد که شرط 0شدیکی یکی یبره جلو واسه هر بار عددی یکه می نویسی یه دیلی بزار مثلا 50میلی ثانیه
                            موفق باشی
                            Proudly @real_ahmadi
                            #real_ahmadi

                            واسه اسمت بجنگ

                            دیدگاه


                              #44
                              پاسخ : راهنمایی برای مثال های تمرینی AVR

                              نوشته اصلی توسط reza_rouhi نمایش پست ها
                              سلام
                              منظور از دستور پایینی چیه؟ و چرا چنین اعدادی توی بازه کروشه قرار میگیرن؟

                              unsigned char x[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
                              این مربوط به بحث آرایه هاست.
                              برای مثال اگر دومین عدد را لازم داشته باشیم (منظورم 0x06 است) باید بنویسیم x[2]
                              و بهمین صورت میتونیم از اعداد دیگه بنا بر ملزومات برنامه ای که داریم مینویسیم استفاده کنیم
                              Reveng will surely come... Your hard time are ahead
                              // - - - - - - - - - -
                              برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                              // - - - - - - - - - -
                              اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                              // - - - - - - - - - -

                              دیدگاه


                                #45
                                پاسخ : راهنمایی برای مثال های تمرینی AVR

                                داخل آموزشها دیدم که از آی سی 7447 استفاده میکنن تا از پینهای کمتری استفاده بشه.
                                طراحی من به این صورت باشه خوبه؟

                                دیدگاه

                                لطفا صبر کنید...
                                X