اطلاعیه

Collapse
No announcement yet.

مشکل با DS1307، به هم ریختن LCD

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

    مشکل با DS1307، به هم ریختن LCD

    سلام خدمت دوستان
    آی سی ساعت DS1307 را با استفاده از Help کدویژن راه اندازی کردم، بدون مشکل هم کار میکنه، اما بعد از یک مدت LCD به هم میریزه و گاهی اعداد نامربوط نشون میده.
    کد برنامه:
    کد:
    #include <mega32.h>
    #include <i2c.h>
    #include <ds1307.h>
    #include <lcd.h>
    #include <stdio.h>
    // I2C Bus functions
    #asm
      .equ __i2c_port=0x12 ;PORTD
      .equ __sda_bit=2
      .equ __scl_bit=3
    #endasm
    
    #asm
      .equ __lcd_port=0x18 ;PORTB
    #endasm
    
    void main(void)
    {
    unsigned char d[20],h,m,s,YY,MM,DD;
    
    // I2C Bus initialization
    i2c_init();
    
    // DS1307 Real Time Clock initialization
    // Square wave output on pin SQW/OUT: Off
    // SQW/OUT pin state: 0
    rtc_init(0,0,0);
    rtc_set_time(13,10,0);
    rtc_set_date(1,2,14);
    
    lcd_init(20);
    
    while (1)
       {
       rtc_get_time(&h,&m,&s);   
       lcd_gotoxy(0,0); 
       sprintf(d,"%2d:%2d:%2d",h,m,s); 
       lcd_puts(d);
    
       rtc_get_date(&DD,&MM,&YY);   
       lcd_gotoxy(0,1); 
       sprintf(d,"%2d/%2d/%2d",YY,MM,DD); 
       lcd_puts(d); 
       
       }
    }
    LCD در حالت کارکرد عادی:

    بعد از چند دقیقه کار کردن LCD مانند شکل زیر به هم میریزه، البته باز ساعت کار میکنه !

    به صورت عملی هم مدار رو بستم همین مشکل رو داره، ممنون میشم دوستان مشکل کارم رو بگن :sad: :sad: :sad:

    #2
    پاسخ : مشکل با DS1307، به هم ریختن LCD

    این مشگل پیش میاد .

    برای حل این مشگل یا باید LCD تون رو هی پاک کنین و بعد دوباره بهش دیتا بفرستین (که این کار باعث پرپر کردن کارکتراتون میشه)

    و راه بهترش هم اینه که اون قسمت از فضاهایی از LCD تون کارکتری توش نیست جای خالی بزارین (بهترین روش همینه)

    کد:
       lcd_gotoxy(0,0); 
       sprintf(d,"%2d:%2d:%2d    ",h,m,s); 
       lcd_puts(d);
    
       rtc_get_date(&DD,&MM,&YY);   
       lcd_gotoxy(0,1); 
       sprintf(d,"%2d/%2d/%2d    ",YY,MM,DD); 
       lcd_puts(d);
    که با اين درد اگر دربند درمانند درمانند
    فاميل دور : اشاره داره به درهايي که واقعا در نيستن ، مثل نقاشي در روي ديوار. يعني اين دردها مارو شبيه اون درها ميکنه .

    دیدگاه


      #3
      پاسخ : مشکل با DS1307، به هم ریختن LCD

      نوشته اصلی توسط mehrdadttt
      این مشگل پیش میاد .

      برای حل این مشگل یا باید LCD تون رو هی پاک کنین و بعد دوباره بهش دیتا بفرستین (که این کار باعث پرپر کردن کارکتراتون میشه)

      و راه بهترش هم اینه که اون قسمت از فضاهایی از LCD تون کارکتری توش نیست جای خالی بزارین (بهترین روش همینه)
      خودم هم این روش به ذهنم رسید، ولی مگه میشه یه روش اصولی برای رفع مشکل وجود نداشته باشه :sad:
      اصلا مشکل کار کجاست!!!
      چرا اینجوری میشه! من که مشکلی نه در کد نه در اتصالات مدار پیدا نمیکنم :sad:

      دیدگاه


        #4
        پاسخ : مشکل با DS1307، به هم ریختن LCD

        نوشته اصلی توسط سمیرا محمدی 67
        خودم هم این روش به ذهنم رسید، ولی مگه میشه یه روش اصولی برای رفع مشکل وجود نداشته باشه :sad:
        اصلا مشکل کار کجاست!!!
        چرا اینجوری میشه! من که مشکلی نه در کد نه در اتصالات مدار پیدا نمیکنم :sad:
        DS1307 .

        عدم پاسخ صحیح DS1307 به میکرو .
        زمانی که میکرو میخواد از روی DS1307 بخونه به دلیل سر به هوایش DS1307 ساعت و تاریخ رو نمیده به میکرو و برای همین با همچین اعدادی روبه رو میشن (همه 165 یا 85 ) و اصلا ربطی به برنامه نویسی تون نداره .
        که با اين درد اگر دربند درمانند درمانند
        فاميل دور : اشاره داره به درهايي که واقعا در نيستن ، مثل نقاشي در روي ديوار. يعني اين دردها مارو شبيه اون درها ميکنه .

        دیدگاه


          #5
          پاسخ : مشکل با DS1307، به هم ریختن LCD

          نوشته اصلی توسط mehrdadttt
          DS1307 .

          عدم پاسخ صحیح DS1307 به میکرو .
          زمانی که میکرو میخواد از روی DS1307 بخونه به دلیل سر به هوایش DS1307 ساعت و تاریخ رو نمیده به میکرو و برای همین با همچین اعدادی روبه رو میشن (همه 165 یا 85 ) و اصلا ربطی به برنامه نویسی تون نداره .
          با این حساب DS1307 مشکل داره :surprised:
          آی سی جایگزین هست؟؟؟

          دیدگاه


            #6
            پاسخ : مشکل با DS1307، به هم ریختن LCD

            نوشته اصلی توسط سمیرا محمدی 67
            آی سی جایگزین هست؟؟؟
            DS1337
            خودم تا به حال باهش کار نکردم . قیمتش 6~8 برابر DS1307 هست و خودش کریستال داخلی داره .

            چرا این قدر دقت درست نشون دادن ساعت براتون مهمه ؟

            شما به راحتی با یک شرط میتونی متوجه بشی که اطلاعات دریافتی اشتباهه و در نتیجه اجازه نمایش ساعت و تقویم یا ذخیره اطلاعات رو بهش ندین .
            که با اين درد اگر دربند درمانند درمانند
            فاميل دور : اشاره داره به درهايي که واقعا در نيستن ، مثل نقاشي در روي ديوار. يعني اين دردها مارو شبيه اون درها ميکنه .

            دیدگاه


              #7
              پاسخ : مشکل با DS1307، به هم ریختن LCD

              نوشته اصلی توسط mehrdadttt

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

              دیدگاه


                #8
                پاسخ : مشکل با DS1307، به هم ریختن LCD

                نوشته اصلی توسط سمیرا محمدی 67
                با چه شرطی؟
                یک if ساده . B-) B-) B-)

                کد:
                while (1)
                   {
                   rtc_get_time(&h,&m,&s);
                   rtc_get_date(&DD,&MM,&YY);
                
                   if (h < 25 ) { // hour(h)<25  or  min(m)<60  or  sec(s)<60  or day or month  
                   lcd_gotoxy(0,0); 
                   sprintf(d,"%2d:%2d:%2d",h,m,s); 
                   lcd_puts(d);   
                   lcd_gotoxy(0,1); 
                   sprintf(d,"%2d/%2d/%2d",YY,MM,DD); 
                   lcd_puts(d); 
                   } 
                
                   }
                که با اين درد اگر دربند درمانند درمانند
                فاميل دور : اشاره داره به درهايي که واقعا در نيستن ، مثل نقاشي در روي ديوار. يعني اين دردها مارو شبيه اون درها ميکنه .

                دیدگاه

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