اطلاعیه

Collapse
No announcement yet.

اشکال در راه اندزی و برنامه نویسی 7سگمنت آند مشترک با میکرو

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

    اشکال در راه اندزی و برنامه نویسی 7سگمنت آند مشترک با میکرو

    سلام وخسته نباشید مگم به تموم کسایی که تو این سایت زحمت میکشن.یه سوال داشتم من یه کانتر ساده میخوام بسازم که با فشار هر بار کلید تعداد رو رو 7سگمنت نشون بده.برنامش رو از کتاب آقای سپاس یار پیدا کردم فقط یه مشکلی هست برنامه ای که نوشتن برای 7 سگمنت کاتد مشترک هست و 7 سگمنت من آند مشترک.باید رو پایه های خروجی میکرو ولتاژ صفر داشته باشم دیگه مگه نه؟ اگه آره بفرمایید چه تغییری تو این برنامه بدم ؟اگه زودتر راهنمایی کنید ممنون میشم
    #include <mega16.h>
    #define xtal 4000000
    #include<delay.h>
    char digits[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,
    0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71} ;
    unsigned char p_state;
    unsigned char key;
    unsigned char i;

    void main(void)
    {

    DDRD = 0xFF;
    PORTD = digits[0]
    DDRC=0x00;
    PORTC = 0xFF
    while(1)
    {
    key=PINC&b00000001;
    delay_ms(10);
    if(key==0){if(i==15){
    i=0;
    PORTD=digits[i];}

    else
    i++;
    PORTD=digits[i]
    p_state=0;
    };
    }
    else
    p_state=1;
    }
    }


    #2
    پاسخ : اشکال در راه اندزی و برنامه نویسی 7سگمنت آند مشترک با میکرو

    نوشته اصلی توسط nimafafa
    سلام وخسته نباشید مگم به تموم کسایی که تو این سایت زحمت میکشن.یه سوال داشتم من یه کانتر ساده میخوام بسازم که با فشار هر بار کلید تعداد رو رو 7سگمنت نشون بده.برنامش رو از کتاب آقای سپاس یار پیدا کردم فقط یه مشکلی هست برنامه ای که نوشتن برای 7 سگمنت کاتد مشترک هست و 7 سگمنت من آند مشترک.باید رو پایه های خروجی میکرو ولتاژ صفر داشته باشم دیگه مگه نه؟ اگه آره بفرمایید چه تغییری تو این برنامه بدم ؟اگه زودتر راهنمایی کنید ممنون میشم
    #include <mega16.h>
    #define xtal 4000000
    #include<delay.h>
    char digits[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,
    0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71} ;
    unsigned char p_state;
    unsigned char key;
    unsigned char i;

    void main(void)
    {

    DDRD = 0xFF;
    PORTD = digits[0]
    DDRC=0x00;
    PORTC = 0xFF
    while(1)
    {
    key=PINC&b00000001;
    delay_ms(10);
    if(key==0){if(i==15){
    i=0;
    PORTD=digits[i];}

    else
    i++;
    PORTD=digits[i]
    p_state=0;
    };
    }
    else
    p_state=1;
    }
    }
    با سلام

    فرقهای بین سون سگمنت کاتد مشترک و آند مشترک ( یک عدد سون سگمنت ) ، اینه که در کاتد مشترک ، تغذیه سون سگمنت وصل میشه به GND و اطلاعات برای روشن شدن آند سگمنتها ( 1 ) هست ، و برای آند مشترک ، تغذیه سون سگمنت وصل میشه به VCC , اطلاعات برای روشن شدن کاتد سگمنتها ( 0 ) . پس باید قبل از زمانی که قراره اطلاعات CHAR DIGIT رو روی پورت مربوطه بگذارید ، یک بار همه بیتهای آنرا ،

    معکوس کنید و سپس روی پورت بفرستید .

    مثلا : 3FH ) 00111111 ) به C0H ) 11000000 ) تغییر یابد

    دیدگاه


      #3
      پاسخ : اشکال در راه اندزی و برنامه نویسی 7سگمنت آند مشترک با میکرو

      در تآیید فرمایشات جناب معیری اگه از سگمنت بزرگ استفاده میکنی این کارو انجام نده.میکرو آسیب میبینه.

      دیدگاه


        #4
        پاسخ : اشکال در راه اندزی و برنامه نویسی 7سگمنت آند مشترک با میکرو

        جملاتی PORTD=x داره تبدیل به PORTD=~x میشه.
        با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

        دیدگاه

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