اطلاعیه

Collapse
No announcement yet.

شمارنده صفر تا 99 با سون سگمنت مالتی پلکسری ؟

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

    شمارنده صفر تا 99 با سون سگمنت مالتی پلکسری ؟

    با سلام خدمت اعضای انجمن در جواب گرفتن یک شمارنده 0 تا 99 با سون سگمنت مالتی پلکسری مشکل دارم برنامه جواب میده اما قسمت یکان در هنگام بالا رفتن چشمک میزنه دوستان اگر جایی از برنامه ایراد داره بگید اصلاح کنم ممنون .
    #include<mega16.h>
    #include<delay.h>
    flash unsigned char display[]={0xC0,0xF9,0xA4,0xB0,0x99,0X92,0x82,0xF8,0x80,0x9 0};
    unsigned char p1=0,p2=0;


    void main(void)
    {
    PORTA=0xFF;
    DDRA=0xFF;
    PORTB=0x00;
    DDRB=0x03;
    DDRD.0=0;
    PORTD.0=1;
    while(1)
    {


    p1++;
    delay_ms(1000);

    if(p1>9)
    {
    p1=0;
    p2++;
    }
    if(p2>9)
    {
    p1=0;
    p2=0;
    }

    PORTB=0x01;
    PORTA=display[p1];
    delay_ms(1);
    PORTB=0x02;
    PORTA=display[p2];
    delay_ms(1);

    }

    #2
    پاسخ : شمارنده صفر تا 99 با سون سگمنت مالتی پلکسری ؟

    مشکل برنامه شما اینه که هر یک ثانیه 7سگمنت رفرش میشه در حالیکه باید حداقل رفرش 50 بار بر ثانیه باشد.

    دیدگاه


      #3
      پاسخ : شمارنده صفر تا 99 با سون سگمنت مالتی پلکسری ؟

      حالا باید چه تغییری تو برنامه بدم ؟! میشه تغییر رو لحاظ کنید.

      دیدگاه


        #4
        پاسخ : شمارنده صفر تا 99 با سون سگمنت مالتی پلکسری ؟

        شما علی الحساب اون delay_ms(1000) را حذف کن ،
        این سطر را به اول main اضافه کن:
        کد:
        unsigned int j=0;
        به جای p1++ اینو قرار بده:

        کد:
        if(j==500)
        {
        p1++;
        j=0;
        }
        j++;

        دیدگاه


          #5
          پاسخ : شمارنده صفر تا 99 با سون سگمنت مالتی پلکسری ؟

          سلام خدمت همه ی عزیزان
          من برد آموزشی ای ساختم . الان که میخوام سون سگمنتش رو امتحان کنم. این برنامه رو براش نوشتم
          من فقط آرایه ی سگمنت رو میزارم . چون مشکلم تو همین آرایست
          unsigned char seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
          ولی با این آرایه سگمنتها روشن نمیشوند. من با پروتئوس و به کمک LOGICSTATE کدهایی رو به وجود آوردم که این کدها درست کار میکنند به نظرتون مشکل چیه؟

          unsigned char seg[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6 F};
          این هم فایل ها
          http://s2.picofile.com/file/7343962147/SEGMENT.txt.html
          http://s2.picofile.com/file/73439633...23123.dsn.html
          نورپردازان باران نور شهرستان آران وبیدگل
          barannoor69@yahoo.com

          دیدگاه


            #6
            پاسخ : شمارنده صفر تا 99 با سون سگمنت مالتی پلکسری ؟

            با سلام
            در درجه اول مهم اینه که سگمنت ها روشن بشن ! اصلا سگمنت ها روشن میشن ؟

            فکر نمیکنم زور میکرو برسه که بخواد سگمنت رو روشن کنه باید طرف مشترک رو با یه ترانزیستور تقویت میکردید چرا اون طرف از لچ استفاده کردید ؟ اگه کار خاصی میکنه که هیچ اما اگه برای درایو سگمنت هاست بهتره بجای اون پایه های دیتا رو با یه مقومت 1 کیلو (بسته به اندازه سگمنت) به پورت میکرو متصل کنید.

            دیدگاه


              #7
              پاسخ : شمارنده صفر تا 99 با سون سگمنت مالتی پلکسری ؟

              نوشته اصلی توسط mojtaba_led
              با سلام
              در درجه اول مهم اینه که سگمنت ها روشن بشن ! اصلا سگمنت ها روشن میشن ؟

              فکر نمیکنم زور میکرو برسه که بخواد سگمنت رو روشن کنه باید طرف مشترک رو با یه ترانزیستور تقویت میکردید چرا اون طرف از لچ استفاده کردید ؟ اگه کار خاصی میکنه که هیچ اما اگه برای درایو سگمنت هاست بهتره بجای اون پایه های دیتا رو با یه مقومت 1 کیلو (بسته به اندازه سگمنت) به پورت میکرو متصل کنید.
              ممنون مشکلم حل شد
              اشکالم هم در آند مشترک و کاتد مشترک بود
              نورپردازان باران نور شهرستان آران وبیدگل
              barannoor69@yahoo.com

              دیدگاه

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