اطلاعیه

Collapse
No announcement yet.

یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

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

    #46
    پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

    سلام

    1: مقدار D0H کد نوشتن در دی اس ه و D1H کد خوندن ازش، از اسم ثابتها معلومه . اگه به ساختار برنامه هم توجه کنید ویا خدای ناکرده یه سری به دیتاشیت آی سی بزنید متوجه این موضوع میشید :biggrin:

    2: من با حداکثر سرعت کار خوندن رو انجام دادم شما میتونی هرقدر تاخیر که بخوای ایجاد کنی

    3: دی اس اطلاعات رو به bcd در خودش ذخیره میکنه و به صورت bcd هم تحویل میده

    مثلا ساعت 24 به باینری میشه --> 00011000

    حالا همین 24 با بی سی دی میشه دو قسمت ، هر کاراکتر 4 بیت ---> 2=0010 , 4=0100 که کنار هم -- 00100100

    حالا متوجه میشی که 00011000 با 00100100 برابر نیستن پس شما اول باید با دستور Make Bcd این تبدیل رو انجام بدید و در آخر هم با Make Dec دوباره عدد خوانده شده از دی اس روبه دسیمال تبدیل کنید
    ِِDie for Life, Not Live to Die
    Freedom Fighter
    " ناخود گاه، هریک از ما ، از نامیرائی خود یقین دارد " . فروید

    دیدگاه


      #47
      پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

      ds1307 را ببین.
      راه ساده تری هم هست. از یک کریستال خارجی6 صفر مثل 4.000000MHZ و اینتراپت تایمر استفاده کن.
      در دگرگونی احوالات است که جوهره مردان بزرگ روزگار مشخص می شود.

      دیدگاه


        #48
        پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

        نوشته اصلی توسط شاهین بهرامی
        ds1307 را ببین.
        راه ساده تری هم هست. از یک کریستال خارجی6 صفر مثل 4.000000MHZ و اینتراپت تایمر استفاده کن.
        سلام

        آقا شاهین بچه ی مردم رو از سختی کار نترسون بذار باهاش روبرو بشه که پخته و تراشیده بشه :agree:

        من بعضی وقتا واسه سرگرمی عمدا لقمه رو 100 دور دور سرم میچرخونم که خودمو محک بزنم :rolleyes:

        تازه RTC داخلی میکرو ایرادهای زیادی داره که الان نمیشه کاملا مقایسه کرد :smile:

        اگه تونستم یه مقاله در مورد DS1307 مینویسم و با RTC داخلی میکرو مقایسه میکنم . البته اگه تا اون موقع تو عجب شیر نبودم (سربازی) :cry:
        ِِDie for Life, Not Live to Die
        Freedom Fighter
        " ناخود گاه، هریک از ما ، از نامیرائی خود یقین دارد " . فروید

        دیدگاه


          #49
          پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

          chia جان خیلی ممنون از اینکه جواب سوال مارو میدی.
          www.icesi.ir

          دیدگاه


            #50
            پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

            دستم به دامنتون .این ds1307 مثل اینکه از من خوشش نمی آد.

            آقایون ببینید برنامه من مشکلش چیه؟

            ممنون میشیم.

            $regfile = "m8def.dat"
            $crystal = 1000000


            Config Lcdpin = Pin , Db4 = Pind.1 , Db5 = Pind.2 , Db6 = Pind.3 , Db7 = Pind.4 , E = Pind.0 , Rs = Pind.6
            Config Lcd = 16 * 2

            Dim Milad As Byte
            Dim Sec0 As Byte
            Dim Min0 As Byte
            Dim Hour0 As Byte

            Const Ds1307w = &HD0
            Const Ds1307r = &HD1

            Config Sda = Portd.6
            Config Scl = Portd.7
            Config Portb = Output

            Dim _sec As Byte , _min As Byte , _hour As Byte
            _sec = 59
            _min = 17
            _hour = 22

            _sec = Makebcd(_sec)
            _min = Makebcd(_min)
            _hour = Makebcd(_hour)
            I2cstart
            I2cwbyte Ds1307w
            I2cwbyte 0
            I2cwbyte _sec
            I2cwbyte _min
            I2cwbyte _hour

            Cls

            Do
            _sec = Makedec(_sec)
            _min = Makedec(_min)
            _hour = Makedec(_hour)
            Home
            Lcd "Time:" : Lcd _hour : Lcd ":" : Lcd _min : Lcd ":" : Lcd _sec

            Gosub Readds
            Waitms 100
            Loop

            Readds:
            I2cstart
            I2cwbyte Ds1307w
            I2cwbyte 0

            I2cstart
            I2cwbyte Ds1307r
            I2crbyte _sec , Ack
            I2crbyte _min , Ack
            I2crbyte _hour , Nack
            I2cstop
            Return



            روی lcd هر دفعه یه عددی رو نشون میده.
            www.icesi.ir

            دیدگاه


              #51
              پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

              نوشته اصلی توسط میلاد موسوی
              دستم به دامنتون .این ds1307 مثل اینکه از من خوشش نمی آد.

              آقایون ببینید برنامه من مشکلش چیه؟

              ممنون میشیم.

              $regfile = "m8def.dat"
              $crystal = 1000000


              Config Lcdpin = Pin , Db4 = Pind.1 , Db5 = Pind.2 , Db6 = Pind.3 , Db7 = Pind.4 , E = Pind.0 , Rs = Pind.6
              Config Lcd = 16 * 2

              Dim Milad As Byte
              Dim Sec0 As Byte
              Dim Min0 As Byte
              Dim Hour0 As Byte

              Const Ds1307w = &HD0
              Const Ds1307r = &HD1

              Config Sda = Portd.6
              Config Scl = Portd.7
              Config Portb = Output

              Dim _sec As Byte , _min As Byte , _hour As Byte
              _sec = 59
              _min = 17
              _hour = 22

              _sec = Makebcd(_sec)
              _min = Makebcd(_min)
              _hour = Makebcd(_hour)
              I2cstart
              I2cwbyte Ds1307w
              I2cwbyte 0
              I2cwbyte _sec
              I2cwbyte _min
              I2cwbyte _hour

              Cls

              Do
              _sec = Makedec(_sec)
              _min = Makedec(_min)
              _hour = Makedec(_hour)
              Home
              Lcd "Time:" : Lcd _hour : Lcd ":" : Lcd _min : Lcd ":" : Lcd _sec

              Gosub Readds
              Waitms 100
              Loop

              Readds:
              I2cstart
              I2cwbyte Ds1307w
              I2cwbyte 0

              I2cstart
              I2cwbyte Ds1307r
              I2crbyte _sec , Ack
              I2crbyte _min , Ack
              I2crbyte _hour , Nack
              I2cstop
              Return



              روی lcd هر دفعه یه عددی رو نشون میده.
              سلام

              مشکل برنامت رو با رنگ قرمز مشخص کردم :smile:
              ِِDie for Life, Not Live to Die
              Freedom Fighter
              " ناخود گاه، هریک از ما ، از نامیرائی خود یقین دارد " . فروید

              دیدگاه


                #52
                پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

                راستش config lcd رو آخر سر اضافه کردم. در واقع اون خط کانفیگ جزء برنامه نیست من تو Option تعریف کردم.

                lcd به پورت b متصله و درست هم کار میکنه.

                برنامه دیگه چه مشکلی داره؟

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

                دوتا مقاومت پول پ 10 کیلو گذاشتم . وقتی میذارم دیتا صفر نشون میده.
                www.icesi.ir

                دیدگاه


                  #53
                  پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

                  با توجه به گفته آقای کیا:
                  میلاد جان من هم همین مشکل رو دارم ولی ....
                  " علت هر شکستی عمل کردن بدون فکر است" الکس مکنزی


                  [move](---> موسیقی ایرانی <---) [/move]

                  دیدگاه


                    #54
                    پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

                    نوشته اصلی توسط hmdtop
                    با توجه به گفته آقای کیا:
                    میلاد جان من هم همین مشکل رو دارم ولی ....
                    چیا عزیز من :smile:
                    ِِDie for Life, Not Live to Die
                    Freedom Fighter
                    " ناخود گاه، هریک از ما ، از نامیرائی خود یقین دارد " . فروید

                    دیدگاه


                      #55
                      پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

                      میلاد نظرت راج به زبان سی چیه؟؟
                      " علت هر شکستی عمل کردن بدون فکر است" الکس مکنزی


                      [move](---> موسیقی ایرانی <---) [/move]

                      دیدگاه


                        #56
                        پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

                        سلام شاید تکراری باشه ولی گفتم شاید مشکلتون رو رفع کنه
                        ضمنا این برنامه داخل پوشه سمپل خود بسکام موجوده اخه من از همونجا برداشتم

                        '-------------------------------------------------------------------------------
                        ' 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[/left]
                        انجام پروژه های برنامه نویسی اندروید
                        [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
                        http://cafebazaar.ir/app/?id=com.atxdroid

                        دیدگاه


                          #57
                          پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

                          برنامه ی فوق خوب کار میکنه ولی 2 تا مشکل داره :
                          1- تاریخ به میلادی هست
                          2- قسمت تنظیم نداره

                          راه حل :
                          1- میتونید به صورت نرم افزاری تاریخ میلادی رو به شمسی تبدیل کنی
                          2 - قسمت settime رو به عنوان یک زیرروال تعین کنید و یک میروسوئیچ هم به یه وقفه خارجی وصل کنید که مثلا اگه دکمه فشرده شده دقیقه و یا هر چیزی که دلتون میخاد رو تنظیم کنید .

                          مثال :
                          config int0=falling
                          enable interrupts
                          enable int0
                          on int0 settime
                          .
                          .
                          .
                          .

                          دیدگاه


                            #58
                            پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

                            چیا جان من برنامه رو داخل پروتئوس بستم خوب کار کرد و هیچ مشکلی هم نداشت.

                            ولی من هم این برنامه رو با 7 سگمنت و هم با LCD بستم جواب نمیشه.

                            امروز صبح دوباره با LCD بستم و مقاومت پول پ 10 کیلو گذاشتم ولی تنها چیزی که بر روی LCD نشون میده اینه: 159:159:159

                            یعنی هم ثانیه هم دقیقه هم ساعت رو 159 نشون میده.

                            من همه چی رو عوض کردم تغییری نکید .فقط شکم به کریستال میره. اگه کریستال خراب باشه چه اتفاقی میفته.؟

                            www.icesi.ir

                            دیدگاه


                              #59
                              پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

                              چرا خودتونو اذیت میکنید ؟؟؟ بابا با Codevision کار کن خودش DS1307 رو داره و کلا 4 خط برنامه بیشتر نمیشه .
                              من باهاش کار کردم .
                              تاریخشو هم به شمسی هم تبدیل کردم مثل کره داره کار میکنه
                              حتما هم SMD کار کن dip بعضی وقتا بازی در میاره .
                              تازه یک Lm75 هم انداختم تنگش

                              دیدگاه


                                #60
                                پاسخ : یه RTC و یا یه راه حل خوب به من بگید.(پروژه ساعت)

                                من زبان c کار نکردم . حالا اومدیمو ds1307 رو با c نوشتیم .بقیه برنامه نویسی رو چی کار کنم.برای تابلو روانه ما برناممون کامله فقط خواستیم بهش یه ساعت و تقویم اضافه کنیم.
                                www.icesi.ir

                                دیدگاه

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