اطلاعیه

Collapse
No announcement yet.

ساخت ساعت دیجیتال با pic

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

    ساخت ساعت دیجیتال با pic

    سلام
    من میخوام با picیک ساعت دیجیتال که روی ال سی دی ساعت رو نمایش بده بسازم ولی مشکلم اینه که نمیدونم چجوری ثانیه شمار اون دقیق کنترول کنم
    یعنی چیکار کنم که دقیقا بعد از1000میلی ثانیه ثانیه شمار یک ثانیه به جلو بره یا به طور ساده تر بگم بدون کوچکترین خطای ممکن کارکنه نه اینکه
    بعد از یک مدتی چند ثانیه جلو بره یا عقب بمونه بعد از گذشت دقیقا1000میلی یک ثانیه به جلو بره
    باید از یک مدا خارجی کمک بگیرم یا با خودpicمیشه
    مر30 متشکر
    اگريك فلج مادر زاد در مسابقه دو ماراتون نفراول نشود مقصر فقط وفقط خودش است...

    #2
    پاسخ : ساخت ساعت دیجیتال با pic

    برای داشتن یک زمان کاملا دقیق بهتره از آی سی هایی مثل DS1307 استفاده کنید

    دیدگاه


      #3
      پاسخ : ساخت ساعت دیجیتال با pic

      سلام
      من دو راه برای این مشکل میشناسم

      RTC داخلی یا RTC خارجی
      تراشه ای که دوستمون معرفی کردن ( DS1307 ) برای RTC خارجی خوبه
      اما من سعی میکنم از RTC داخلی استفاده کنم
      برخی از PIC ها RTC های کاملی دارن کا تو بازار ایران هم پیدا میشن
      مثل PIC18F46J50


      Low-Power,High-Performance USB Microcontrollers with nanoWatt XLP™ Technology

      جریان مصرفی این تراشه ها خیلی پایینه ( nanoWatt )
      با استفاده از این تراشه ها مشکلات استفاده از I2C رو هم ندارید

      نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
      تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

      دیدگاه


        #4
        پاسخ : ساخت ساعت دیجیتال با pic

        اگه با تایمر میکرو درست کردی بهتره با یک کریستال 32K راه اندازیش کنی
        دقتش در حد RTC خارجی هست
        [glow=red,2,300]تاپيک هاي ايجاد شده[/glow]

        دیدگاه


          #5
          پاسخ : ساخت ساعت دیجیتال با pic

          نوشته اصلی توسط milad066
          سلام
          من میخوام با picیک ساعت دیجیتال که روی ال سی دی ساعت رو نمایش بده بسازم ولی مشکلم اینه که نمیدونم چجوری ثانیه شمار اون دقیق کنترول کنم
          یعنی چیکار کنم که دقیقا بعد از1000میلی ثانیه ثانیه شمار یک ثانیه به جلو بره یا به طور ساده تر بگم بدون کوچکترین خطای ممکن کارکنه نه اینکه
          بعد از یک مدتی چند ثانیه جلو بره یا عقب بمونه بعد از گذشت دقیقا1000میلی یک ثانیه به جلو بره
          باید از یک مدا خارجی کمک بگیرم یا با خودpicمیشه
          مر30 متشکر
          سلام
          اگر از تایمر pic32 استفاده می کنی، دقت داشته باش که باید PBCLK رو در نظر بگیری نهSYSCLK و حتما از کریستال خارجی و بدون PLL استفاده کن.
          برای تنظیم تایمر ،بعد از تقسیم زمانی حتما از intrupt استفاده کن، چون تایمر بدون intrupt خیلی به درد بخور نیست.
          ***
          من ول کردم، می خوام ببینم که شما هم ول می کنین یا نه!

          دیدگاه


            #6
            پاسخ : ساخت ساعت دیجیتال با pic

            نوشته اصلی توسط Adel JoOoN
            برای داشتن یک زمان کاملا دقیق بهتره از آی سی هایی مثل DS1307 استفاده کنید
            سلام عزیزم میخوام فقط یه ایسی به کارببرم و اونم pic16 f84هستش
            اگريك فلج مادر زاد در مسابقه دو ماراتون نفراول نشود مقصر فقط وفقط خودش است...

            دیدگاه


              #7
              پاسخ : ساخت ساعت دیجیتال با pic

              نوشته اصلی توسط ADMlN
              اگه با تایمر میکرو درست کردی بهتره با یک کریستال 32K راه اندازیش کنی
              دقتش در حد RTC خارجی هست
              سلام میشه بیشتر توضیح بدی چجوری با تایمر راش بندازم
              مر30
              اگريك فلج مادر زاد در مسابقه دو ماراتون نفراول نشود مقصر فقط وفقط خودش است...

              دیدگاه


                #8
                پاسخ : ساخت ساعت دیجیتال با pic

                نوشته اصلی توسط milad066
                سلام میشه بیشتر توضیح بدی چجوری با تایمر راش بندازم
                مر30
                باید از کلاک خارجی تایمر 1 استفاده کنی
                کریستال 32K به پایه های T1CKI و T1OSI وصل میکنی
                بیت T1OSCEN باید 1 کنی
                بیت TMR1CS هم باید 1 بشه
                تایمر هم با مقدار 8000h بار گذاری بشه
                وقفه تایمر فعال کنی دقیقا هر 1 ثانیه روتین وقفه اجرا میشه
                [glow=red,2,300]تاپيک هاي ايجاد شده[/glow]

                دیدگاه


                  #9
                  پاسخ : ساخت ساعت دیجیتال با pic

                  دوست عزیزم من این کارو با 16f877a انجام دادم.اگه از همین چیپ استفاده میکنی باید از تایمر دو استفاده کنی و در ضمن برای زمان یک ثانیه دقیق باید از کریستال خارجی 32.768khz برای اسیلاتور تایمر دو استفاده کنید.که در این صورت مقدار اولیه تایمر را 32768 میذاری و داخل اینتراپت این مقدار را پدیت میکنی.داخل اینتراپت زمان یک ثانیه را واست درست میکنه یعنی هر یک ثانیه یکبار اینتراپت فراخوانی میشه که باید در اینتراپت مقدار اولیه تایمر را بنویسی.من با ccs مینویسم شما هم اگه با این کامپایلر مینویسی بگید تا برنامشو واستون بذارم

                  دیدگاه


                    #10
                    پاسخ : ساخت ساعت دیجیتال با pic

                    نوشته اصلی توسط mohammadttl
                    دوست عزیزم من این کارو با 16f877a انجام دادم.اگه از همین چیپ استفاده میکنی باید از تایمر دو استفاده کنی و در ضمن برای زمان یک ثانیه دقیق باید از کریستال خارجی 32.768khz برای اسیلاتور تایمر دو استفاده کنید.که در این صورت مقدار اولیه تایمر را 32768 میذاری و داخل اینتراپت این مقدار را پدیت میکنی.داخل اینتراپت زمان یک ثانیه را واست درست میکنه یعنی هر یک ثانیه یکبار اینتراپت فراخوانی میشه که باید در اینتراپت مقدار اولیه تایمر را بنویسی.من با ccs مینویسم شما هم اگه با این کامپایلر مینویسی بگید تا برنامشو واستون بذارم
                    سلام
                    من از بیسیک استفاده میکنم ولی برنامشو بزار میرم یاد میگرم با تشکر
                    اگريك فلج مادر زاد در مسابقه دو ماراتون نفراول نشود مقصر فقط وفقط خودش است...

                    دیدگاه


                      #11
                      پاسخ : ساخت ساعت دیجیتال با pic

                      [code=c]
                      #include <16f877a.h>
                      #use delay (clock=8000000,restart_wdt)

                      #include <lcd.c>
                      #define lcd_data_port d
                      #define lcd_type 2
                      char h,m,s;

                      #int_timer1
                      void timer1_isr (void)
                      {
                      set_timer1(32768);
                      output_toggle(pin_b0);
                      s++;

                      if(s>59)
                      {
                      s=0;
                      m++;

                      if(m>59)
                      {
                      m=0;
                      h++;

                      if(h>24)
                      {
                      h=m=s=0;
                      }
                      }

                      }

                      lcd_putc('\f'
                      printf(lcd_putc,"time:%u:%u:%u",h,m,s);

                      }


                      void main (void)
                      {
                      set_tris_b(0b11111110);
                      lcd_init();
                      setup_timer_1(t1_external_sync | t1_clk_out | t1_div_by_1);
                      set_timer1(32768);
                      enable_interrupts(int_timer1);
                      enable_interrupts(global);



                      while (true);
                      }


                      [/code]

                      اینم برنامه ساعت دوست عزیز البته ساعت معمولی هستش و بدون ds1307 هستش.فقط زمان یک ثانیه دقیق داره
                      امیدوارم واست مفید باشه

                      دیدگاه


                        #12
                        پاسخ : ساخت ساعت دیجیتال با pic

                        نوشته اصلی توسط mohammadttl
                        [code=c]
                        #include <16f877a.h>
                        #use delay (clock=8000000,restart_wdt)

                        #include <lcd.c>
                        #define lcd_data_port d
                        #define lcd_type 2
                        char h,m,s;

                        #int_timer1
                        void timer1_isr (void)
                        {
                        set_timer1(32768);
                        output_toggle(pin_b0);
                        s++;

                        if(s>59)
                        {
                        s=0;
                        m++;

                        if(m>59)
                        {
                        m=0;
                        h++;

                        if(h>24)
                        {
                        h=m=s=0;
                        }
                        }

                        }

                        lcd_putc('\f'
                        printf(lcd_putc,"time:%u:%u:%u",h,m,s);

                        }


                        void main (void)
                        {
                        set_tris_b(0b11111110);
                        lcd_init();
                        setup_timer_1(t1_external_sync | t1_clk_out | t1_div_by_1);
                        set_timer1(32768);
                        enable_interrupts(int_timer1);
                        enable_interrupts(global);



                        while (true);
                        }


                        [/code]

                        اینم برنامه ساعت دوست عزیز البته ساعت معمولی هستش و بدون ds1307 هستش.فقط زمان یک ثانیه دقیق داره
                        امیدوارم واست مفید باشه
                        سلام دوست عزیز ممنون خیلی ممنون
                        میشه همین برنامه رو تغییر بدین با استفاده از 4 تا سون سگمنت
                        اگه ممکنه کمی هم راجع به برنامه توضیح بدین مخصوصا نحوه ی رفرش کردن سون سگمنت ها رو
                        بازم ممنون

                        دیدگاه

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