اطلاعیه

Collapse
No announcement yet.

مشکل در برنامه 7seg

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

    مشکل در برنامه 7seg

    سلام. میکرو رو تازه شروع کردم به یه مشکلی بر خوردم لطفا راهنماییم کنید.
    یه سون سگمنت تک رقمی آند مشترکه که با زدن کلید اول عدد کم و با زدن کلید دوم زیاد میشه.
    اینم برنامش. ببنید مشکلش چیه که اینجوری میشه و کار نمیده؟؟؟
    کد:
    #include <mega32.h>
    #include <delay.h>
    
    char segment[]={64,121,36,48,25,18,2,120,0,16,8,3,70,33,6,14};
    void main(void){
    int a=0;
    DDRD=0b11111111;
    DDRA=0b00000000;
    PORTA=0b00000111;
    
    
    
    
    
    while(1){
    
    if(PINA.0==0&&a<9){a--;
    while(PINA.0==0);}
    
    if(PINA.1==0&&a!=0){a++;
    while(PINA.1==0);}
    
    PORTD=segment[a];
    
    }
    }

    اینم پروتئوسش: http://uploadtak.com/images/x12_7seg.zip


    راستی بچه ها واسه یاد گرفتن سریع و خوب avr چه راه و چیزایی رو پیشنهاد میکنین؟

    باتشکر

    #2
    پاسخ : مشکل در برنامه 7seg

    نوشته اصلی توسط armay
    سلام. میکرو رو تازه شروع کردم به یه مشکلی بر خوردم لطفا راهنماییم کنید.
    یه سون سگمنت تک رقمی آند مشترکه که با زدن کلید اول عدد کم و با زدن کلید دوم زیاد میشه.
    اینم برنامش. ببنید مشکلش چیه که اینجوری میشه و کار نمیده؟؟؟
    کد:
    #include <mega32.h>
    #include <delay.h>
    
    char segment[]={64,121,36,48,25,18,2,120,0,16,8,3,70,33,6,14};
    void main(void){
    int a=0;
    DDRD=0b11111111;
    DDRA=0b00000000;
    PORTA=0b00000111;
    
    
    
    
    
    while(1){
    
    if(PINA.0==0&&a<9){a--;
    while(PINA.0==0);}
    
    if(PINA.1==0&&a!=0){a++;
    while(PINA.1==0);}
    
    PORTD=segment[a];
    
    }
    }

    اینم پروتئوسش: http://uploadtak.com/images/x12_7seg.zip


    راستی بچه ها واسه یاد گرفتن سریع و خوب avr چه راه و چیزایی رو پیشنهاد میکنین؟

    باتشکر
    سلام
    من مشکل برنامه ات رو حل کردم با اجازت یه سون سگمنت با نور بیشتر برات گذاشتم :mrgreen:
    اینم لینک دانلودش:
    http://persiandrive.com/223390

    موفق باشی دوست عزیز

    دیدگاه


      #3
      پاسخ : مشکل در برنامه 7seg

      نوشته اصلی توسط Baghmirani
      سلام
      من مشکل برنامه ات رو حل کردم با اجازت یه سون سگمنت با نور بیشتر برات گذاشتم :mrgreen:
      اینم لینک دانلودش:
      http://persiandrive.com/223390

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

      دیدگاه


        #4
        پاسخ : پاسخ : مشکل در برنامه 7seg

        نوشته اصلی توسط armay
        ممنون دوست عزیز برنامتون درست بود ولی اگه میشه لطف کنید بگید برنامه ای که گذاشته بودم مشکلش چی بود که اینطوری میشد؟؟؟ چون واقعا گیج شده بودم!!!!
        خواهش می کنم.
        این برنامه ی من هستش
        کد:
          #   if(PINA.0==0 && a==0)
             {
              a=1;
             }     
             else if(PINA.0==0 && a>0 && a<=15)
             {
              a++;
             }  
             else if(PINA.1==0 && a<=16 && a>0)
             {
              a--;
             }
             PORTD=segment[a]; 
             delay_ms(1500);
        من مرحله به مرحله پیش رفتم و برنامه رو نوشتم دفعه اول فقط یک عدد روی سون سگمنت نمایش دادم مرحله بعد وقتی خواستم یک واحد به متغیر a اضافه کنم داخل حلقه for این کار رو انجام دادم تا ببینم با تعویض اعداد نمایش روی سون سگمنت دچار مشکل نمیشه و بعدش هم اولین if رو نوشتم که فقط موقعی که a=0 است انجام می شود و 1 واحد به آن اضافه می کنه و در مرحله بعد اون if ها که احتیاج به توضیح نداره.

        موفق باشی

        دیدگاه

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