اطلاعیه

Collapse
No announcement yet.

مشکل کد با 7segment

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

    مشکل کد با 7segment

    با سلام خدمت دوستان
    بنده یک برنامه بسیار ساده نوشتم که در زیر می بینید ولی این برنامه که هدفش شمردن از 0 تا 9 است در پروتیوس کار نمی کنه و فقط 9 رو هر 500 می لی ثانیه نشون می ده لطفا من رو راهنمایی کنید

    کد:
    #include <mega32.h>
    #include <stdio.h>
    #include <delay.h>
    void main (void)
    {
    int i;
    DDRA=0X7F;
    for (i=0;i<=9;i++)
    {
    switch (i){
    case '0': PORTA=0X3F; break;
    case '1': PORTA=0X06; break;
    case '2': PORTA=0X5B; break;
    case '3': PORTA=0X4F; break;
    case '4': PORTA=0X66; break;
    case '5': PORTA=0X6D; break;
    case '6': PORTA=0X7D; break;
    case '7': PORTA=0X07; break;
    case '8': PORTA=0X7F; break;
    default : PORTA=0X6F;
    }
    delay_ms (500);
    }
    }

    #2
    پاسخ : مشکل کد با 7segment

    دوست عزیز
    باید دستور delay رو بعد از هر بار نوشتن عدد توی خروجی بنویسی
    یعنی باید به تعداد عدد ها دستور Delay اضافه کنی

    موفق باشی

    دیدگاه


      #3
      پاسخ : مشکل کد با 7segment

      خوب این کار مگه انجام نشده!
      ببینید بعد از برک در دستور سوئیچ خوب اولین دستوری که برنامه بهش میرسه دیلی هست اگر این گونه نیست من هر دیلی رو کجا باید قرار بدم؟

      دیدگاه


        #4
        پاسخ : مشکل کد با 7segment

        الان فرمان DELAY درون حلقه FOR قرار نداره
        یا جای کروشه رو عوض کن یا بعد از هر بار نمایش یک DELAY بزار

        موفق باشی

        دیدگاه


          #5
          پاسخ : مشکل کد با 7segment

          برنامه رو به این شکل نوشتم این بار دیگه اصلا هیچی رو سون سگمنت نمی افته :redface:

          کد:
          #include <mega32.h>
          #include <stdio.h>
          #include <delay.h>
          void main (void)
          {
          int i;
          DDRA=0X7F;
          for (i=0;i<=9;i++)
          {
          delay_ms (500);
          switch (i){
          case '0': PORTA=0X3F; break;
          case '1': PORTA=0X06; break;
          case '2': PORTA=0X5B; break;
          case '3': PORTA=0X4F; break;
          case '4': PORTA=0X66; break;
          case '5': PORTA=0X6D; break;
          case '6': PORTA=0X7D; break;
          case '7': PORTA=0X07; break;
          case '8': PORTA=0X7F; break;
          default : PORTA=0X6F;
          }
          }
          }

          دیدگاه


            #6
            پاسخ : مشکل کد با 7segment

            برنامه درسته
            ببین مشکل از سخت افزار نیست؟

            دیدگاه


              #7
              پاسخ : مشکل کد با 7segment

              آخه سخت افزار خاصی نداره که اینم از تصویر

              http://up.iranblog.com/Files/a10c6166d1c3426599ac.jpg

              دیدگاه


                #8
                پاسخ : مشکل کد با 7segment

                مشکل برنامه در دستور case است
                نباید عدد ها رو داخل ' ' تعریف کنی
                Share OR Die

                دیدگاه


                  #9
                  پاسخ : مشکل کد با 7segment

                  دستور های Break رو از آخر خط ها بردار ببین تغییری میکنه
                  نباید مشکلی داشته باشه
                  مشکل توی برنامه و مدارات ساده واقعا آدم رو خسته میکنه
                  ولی شما خسته نشو :smile:

                  دیدگاه


                    #10
                    پاسخ : مشکل کد با 7segment

                    باور کنید دیگه دارم قاط میزنم بابا از این ساده تر مگه می شه برنامه ای رو تصور کرد آخه مگه این برنامه چشه :angry:

                    داره دیوونم می کنه هر کاری می کنم جواب نمی ده برنامه رو به انواع ترفندها نوشتم اصلا و ابدا کار نمی کنه :eek:

                    دیدگاه


                      #11
                      پاسخ : مشکل کد با 7segment

                      برنامه رو با دستور IF بنویس ببین جواب میده

                      دیدگاه


                        #12
                        پاسخ : مشکل کد با 7segment

                        خداییش شرمندم ولی واقعا دیگه....

                        حالا این کد رو نگاه کنید فقط عدد 0 هر 500 میلی ثانیه روشن و خاموش می شه

                        کد:
                        #include <mega32.h>
                        #include <delay.h>
                        void main ()
                        {
                        int i=0;
                        DDRA=0XFF;
                        while (1)
                        {
                        if (i==0){
                        PORTA=0X3F;
                        }else if (i==1){
                        PORTA=0X06;
                        }else if (i==2){
                        PORTA=0X5B;
                        }else if (i==3){
                        PORTA=0X4F;
                        }else if (i==4){
                        PORTA=0X66;
                        }else if (i==5){
                        PORTA=0X6D;
                        }else if (i==6){
                        PORTA=0X7D;
                        }else if (i==7){
                        PORTA=0X07;
                        }else if (i==8){
                        PORTA=0X7F;
                        }else{
                        PORTA=0X6F;
                        }
                        delay_ms (500);
                        i++; 
                        }        
                        }

                        دیدگاه


                          #13
                          پاسخ : مشکل کد با 7segment

                          از دوستان خواهشمندم این برنامه رو چک کنن و تو پروتیوس خودشون امتحان کنن واقعا دیگه هیچ چیز به ذهنم نمی رسه

                          دیدگاه


                            #14
                            پاسخ : مشکل کد با 7segment

                            با سلامی دوباره

                            دوستان در این پروژه ساده زیر هر کاری می کنم تا سون سگمنت از 0 تا 9 بشماره نمی تونم و فقط عدد 0 هر 500 میلی ثانیه روی سون سگمنت می افته سپاسگزار خواهم شد من رو راهنمایی کنید
                            در ضمن این فایل رو جای دیگه ای مطرح کردم و دوستان گفتند برای اونا مشکل نداره و برنامه کار می کنه :eek:
                            در ضمن پروتیوس من 7.6 sp4 هست و کد ویژنم 1.23.8.c آیا اینها می تونن دلیل باشند!!

                            سرس کد و فایل پروتیوس رو اینجا قرار می دم

                            [ftp=ftp://www.persiangig.com/pages/down...R/7segmant.rar]http://www.persiangig.com/pages/down...R/7segmant.rar[/ftp]

                            دیدگاه


                              #15
                              پاسخ : مشکل کد با 7segment

                              با سلام خدمت دوستان مشکل من حل شد اینجا می نویسم تا شاید دیگران هم این مشکل رو داشته باشند

                              ورژن کد ویژن من نسبت به پروتیوس پایین بود

                              که با ورژن زیر که لینکش رو قرار دادم حل شد

                              http://iranmicro.ir/forum/forumdisplay.php?f=186

                              موفق باشید

                              دیدگاه

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