اطلاعیه

Collapse
No announcement yet.

control register ds1307

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

    control register ds1307

    سلام
    میخام بدونم چطوری می شه پایه 7 ds1307 )sqw/out) رو فعال کرد .
    basic
    avr
    با سپاس ..........
    success needs a powerful start

    #2
    پاسخ : control register ds1307

    سلام
    تو برگه اطلاعاتش ثبات کنترلش رو تو موقعیت 07 هگز گذاشته. بیت مورد نظر در موقعیت 5 و انتخاب فرکانس خروجی با بیتهای 0 و 1 مشخص می شه که بر این اساس چهار حالت داره.
    دستورهای بسکام برای کار با I2C برای خوندن:
    i2crbyte
    i2cwbyte
    i2cstart
    i2cstop
    ببین که می تونه به شما کمک کنه یا خیر. سوال دیگه ای بود مطرح کن. تو انجمن هم روش بحث شده. اگر پیدا نکردی بگو. نحوه برقراری ارتباط با DS1307 رو تو برگه اطلاعاتش گفته که چه باتهایی رو با چه ترتیبی بفرستیم.
    موفق باشی

    دیدگاه


      #3
      پاسخ : control register ds1307

      '-------------------------------------------------------------------------------
      ' DS1307.BAS
      ' shows how to use the ds1307 clock on the 2313 futurlec board
      ' it also shows the CONFIG CLOCK=USER option
      '-------------------------------------------------------------------------------
      $regfile = "2313def.dat"
      $crystal = 8000000
      $baud = 19200
      $lib "mcsbyte.lbx" ' for smaller code
      $lib "ds1307clock.lib" ' modified lib
      $framesize = 16
      $hwstack = 24
      $swstack = 16


      'configure the scl and sda pins
      Config Sda = Portd.6
      Config Scl = Portd.5

      'address of ds1307
      Const Ds1307w = &HD0 ' Addresses of Ds1307 clock
      Const Ds1307r = &HD1

      Config Clock = User ' this will dim the bytes automatic
      'dim other needed variables
      Dim Weekday As Byte

      Print "DS1307"
      Waitms 100
      ' assigning the time will call the SetTime routine
      Time$ = "2359" ' to watch the day changing value
      Date$ = "11-13-02" ' 13 november 2002
      Do
      Print "Date Time : " ; Date$ ; " " ; Time$
      Waitms 500
      Loop

      End

      'called from ds1307clock.lib
      Getdatetime:
      I2cstart ' Generate start code
      I2cwbyte Ds1307w ' send address
      I2cwbyte 0 ' start address in 1307

      I2cstart ' Generate start code
      I2cwbyte Ds1307r ' send address
      I2crbyte _sec , Ack
      I2crbyte _min , Ack ' MINUTES
      I2crbyte _hour , Ack ' Hours
      I2crbyte Weekday , Ack ' Day of Week
      I2crbyte _day , Ack ' Day of Month
      I2crbyte _month , Ack ' Month of Year
      I2crbyte _year , Nack ' Year
      I2cstop
      _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
      _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
      Return

      Setdate:
      _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
      I2cstart ' Generate start code
      I2cwbyte Ds1307w ' send address
      I2cwbyte 4 ' starting address in 1307
      I2cwbyte _day ' Send Data to SECONDS
      I2cwbyte _month ' MINUTES
      I2cwbyte _year ' Hours
      I2cstop
      Return

      Settime:
      _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
      I2cstart ' Generate start code
      I2cwbyte Ds1307w ' send address
      I2cwbyte 0 ' starting address in 1307
      I2cwbyte _sec ' Send Data to SECONDS
      I2cwbyte _min ' MINUTES
      I2cwbyte _hour ' Hours
      I2cstop
      Return
      بیشتر بگــــــــــــــــــــــــــــــــــــــــــــــــ ـــــــــــــــــــــــــــــــــم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟/////
      علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

      دیدگاه


        #4
        پاسخ : control register ds1307

        سلام
        اونی که شما گفتین برای راه انداختن دی اس هستش
        منهم با راه اندازیش مشکل ندارم فقط میخوام این پایه 7 رو جوری برنامه ریزی کنم که فرکانس 1 هرتز رو بهم بده و در مد 12 ساعته کار کنه ولی نمیدونم چه جوری اگه لطف کنین کمک کنین ممنون میشم(لطفا زیاد تخصصی نگین) :mrgreen:
        پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

        دیدگاه


          #5
          پاسخ : control register ds1307

          سلام
          بیت شماره 4 از ثبات 7 باید 1 بشه و بعد فرکانس خروجی هم توسط دو تا بیت شماره 0 و 1 مشخص می شه. برای 1Hz هم هر دو بیت باید صفر باشن. برای نمایش ساعت به صورت 12 هم بیت شماره 6 از ثبات 2 باید 0 باشه.
          موفق باشی

          دیدگاه


            #6
            پاسخ : control register ds1307

            میشه بگین برنامش با بیسیک به چه شکل در میاد؟ :sad:
            علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

            دیدگاه


              #7
              پاسخ : control register ds1307

              سلام
              تکه برنامه زیر بیت شماره 4 و بیتهای اول و دوم از رجیستر شماره 7 رو بدون اینکه به بیتهای دیگه دست بزنه به ترتیب 1 و 0 و 0 می کنه.

              کد:
               Address = 7                       'Register NO.7
               I2cstart
               I2cwbyte Clkic_w
               I2cwbyte Address                    'write address for the register
               I2cstart
               I2cwbyte Clkic_r
               I2crbyte Data_i2c , Nack                'now read the register
               I2cstop
               Data_i2c = Data_i2c Or &B00010000            'set bit no.4 to 1
               Data_i2c = Data_i2c And &B11111100            'reset first and second bit
               Address = 0
               I2cstart
               I2cwbyte Clkic_w
               I2cwbyte Address                    'write back
               I2cwbyte Data_i2c
               I2cstop

              تکه برنامه زیر هم عدد ساعت رو به صورت 12 نمایش می ده:

              کد:
               Address = 2                       'Register No.2
               I2cstart
               I2cwbyte Clkic_w
               I2cwbyte Address                    'write address for the register
               I2cstart
               I2cwbyte Clkic_r
               I2crbyte Data_i2c , Nack                'now read the register
               I2cstop
               Data_i2c = Data_i2c And &B10111111           'reset first and second bit
               Address = 0
               I2cstart
               I2cwbyte Clkic_w
               I2cwbyte Address                    'write back
               I2cwbyte Data_i2c
               I2cstop

              موفق باشید

              دیدگاه

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