اطلاعیه

Collapse
No announcement yet.

مشکل در راه اندازی DS1307

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

    مشکل در راه اندازی DS1307

    با سلام خدمت دوستان
    برای پروژه ای میخوام آی سی ساعت DS1307 را با زبان C راه اندازی کنم که به این منظور از HELP خود کدویژن استفاده کردم، که کدهای زیر به دست اومد.
    این کد کار میکنه ولی بعد از مدتی فقط ثانیه اون به هم میریزه و به جای اینکه دو رقمی باشه 3 و 4 رقمی نشون میده oo:
    مشکل دیگه ام اینه که من میخوام از این آی سی یا 24C512 استفاده کنم، آدرس باس آی سی ساعت 0xD0 است ولی نمیدونم باید با چه دستوری این آدرس رو برای آی سی بفرستم، HELP کدویژن هم در این مورد چیزی نگفته :sad:
    ممنون میشم دوستان در رابطه با این دو مشکل من رو راهنمایی کنن :smile:
    کد:
    #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[40],h,m,s;
    
    // 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(0,0,0);
    rtc_set_date(0,0,0);
    
    lcd_init(20);
    
    while (1)
       {
       rtc_get_time(&h,&m,&s);   
       lcd_gotoxy(0,0); 
       sprintf(d,"%02d:%02d:%02d",h,m,s); 
       lcd_puts(d); 
       }
    }

    #2
    پاسخ : مشکل در راه اندازی DS1307

    اگه به زبون بسکام بخوای میتونم کمکت کنم

    این لینک رو ببین یه نمونه کد هم واسه دانلود هست:
    http://www.eca.ir/forum2/index.php?topic=52280.msg276585#msg276585

    اینم لینک دانلود همون کدها:
    http://www.persiangig.com/pages/download/?dl=http://jaafary.persiangig.com/ds1307_1.rar
    نخستین گام در شناخت، این است که بدانیم نادانیم

    دیدگاه


      #3
      پاسخ : مشکل در راه اندازی DS1307

      نوشته اصلی توسط Morteza.R
      اگه به زبون بسکام بخوای میتونم کمکت کنم
      ممنون از پاسختون ولی من با زبان C کار میکنم

      دیدگاه


        #4
        پاسخ : مشکل در راه اندازی DS1307

        با دروود

        نمونه برنامه های زیادی برای کار با DS1307 به هر دو زبان بیسیک و سی موجود هست. ابتدا با استفاده از اونها از صحت عملکرد مدار و برنامه قسمت ساعت اطلاعا حاصل کنید و سپس برای راه اندازی ای سی حافظه اقدام کنید.

        متوجه خط اخر توضیحاتتون نشدم ایا منظورتون این هست که چطور روی یک خط دو تراشه رو کنترل کنید؟
        که در صورت مثبت بودن باید بگم با فراخوانی ادرس تراشه مورد نظر در هر لحظه این امر امکان پذیر خواهد بود.(به توابع I2c مراجعه کنید)
        چرا ناراحتی پاتریک!
        + امروز ی بچه دیدم سرچهارراه گل میفروخت
        - از دیدنش ناراحت شدی؟
        + نه
        پس چی ناراحتت کرده
        + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
        ------------------------------------------------------------------------------------------------------
        تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
        ------------------------------------------------------------------------------------------------------
        محصولات

        دیدگاه


          #5
          پاسخ : مشکل در راه اندازی DS1307

          شما تو کدت به جای rtc_set_date(0,0,0); بزن :
          کد:
          rtc_set_date(2,1,2,11); /* set date Tuesday 1/02/2011 */
          در ضمن آخر whille بعدر از اینکه lcd_puts زدین ، یه تاخیر مثلا delay_ms(500); قرار بدین. تا LCD بیخودی هی پشت سر هم پدیت نشه.

          دیدگاه

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