اطلاعیه

Collapse
No announcement yet.

rtc ds1307 ساعت ارزان ولی بدون مشتری

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

    پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

    ببخشید آقا رضا!من خیلی دنبال برنامه ساعت و تقویم با کدویژن میگشتم!این برنامه ای که گذاشتیدو امتحانم کردید؟میشه یکم دربارش توضیح بدید؟اگه شبیه سازی کردیدش یا شماتیکی چیزی ازش دارید میتونید اینجا بذارید؟
    هرچی برنامه ساعت و تقویم شمسی که پیدا کردم واسه بسکام بود.
    ممنون میشم اگه یه کمکی بکنید

    دیدگاه


      پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

      نوشته اصلی توسط uni_ahmadi
      ببخشید آقا رضا!من خیلی دنبال برنامه ساعت و تقویم با کدویژن میگشتم!این برنامه ای که گذاشتیدو امتحانم کردید؟میشه یکم دربارش توضیح بدید؟اگه شبیه سازی کردیدش یا شماتیکی چیزی ازش دارید میتونید اینجا بذارید؟
      هرچی برنامه ساعت و تقویم شمسی که پیدا کردم واسه بسکام بود.
      ممنون میشم اگه یه کمکی بکنید
      سلام
      ببخشید! من این تاپیک رو امروز دیدم!
      بله! این برنامه ای که اینجا گذاشتم کار می کنه، البته همونطور که گفتم فقط مقدار ثانیه رو می خونه و نشون می ده، و چون دیگه این آی سی رو لازم نداشتم ادامه ندادم. ولی نکته مهمش برای من همون نحوه ارتباط با DS1307 بوسیله رجیسترها بود که بالاخره یاد گرفتم و در برنامه هم قرار دادم.(می تونید خودتون بقیه شو ادامه بدید! :icon_razz
      برنامه تست شده و شماتیک رو براتون پلود کردم به همراه برنامه هایی که ازشون برای نوشتن برنامه خودم استفاده کردم! در حقیقت برنامه ای که نوشتم خلاصه ای از 2تا برنامه هست که همه رو پ می کنم براتون. امیدوارم که مفید واقع بشه!
      مخلصیم
      http://parsaspace.com/files/7512508884/TWI.rar.html

      دیدگاه


        پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

        نوشته اصلی توسط r-el
        ای بابا چرا اینقدر ناراحتی حاجی جان اینقدر سرتو به دیوار نکوب اگه با بیسیک کار میکنی هر سوالی در موردds1307داری بگو تا کمکت کنم هر سوالی داری بپرس نوکرتم اینقدر سرتو نکوبون دردم گرفت :mrgreen: راستی بهتره به جای استفاده از برنامه های اماده دیگران استینو بالا بزنی و خودت مشغول شی منم کمکت میکنم چی میخوای فدات شم
        سلام
        می تونی این برنامه رو و خط هایی که لازمه واسه من توضیح بدی در ضمن ایا این آی سی فقط میلادیه یا نه شمسی هم میشه ؟
        [code=vb]$regfile = "m8def.dat"
        $crystal = 1000000
        '------------------------ lcd -----------------------------------------------
        Config Lcd = 16 * 2
        Config Lcdpin = Pin , Rs = Pind.0 , E = Pind.1 , Db4 = Pind.2 , Db5 = Pind.3 , Db6 = Pind.4 , Db7 = Pind.5
        Cls

        '--------------------------- ds 1307 -----------------------------------------
        $lib "ds1307clock.lib"
        'configure the scl and sda pins
        Config Sda = Portd.7
        Config Scl = Portd.6
        'address of ds1307
        Const Ds1307w = &HD0 ' Addresses of Ds1307 clock
        Const Ds1307r = &HD1
        '------------------------------ key --------------------------------------------
        Config Pinc.1 = Input
        Config Pinc.2 = Input
        Config Pinc.3 = Input
        Config Pinc.4 = Input
        '------------------------------------------------------------------------------
        Config Debounce = 30

        Dim A As Byte , B As Byte , Data1 As Byte , C As Byte

        Dim Seco As Byte , Mine As Byte , Hour As Byte

        '----------------------------------------------------------------------------
        Cursor Off

        I2cstart ' Generate start code
        I2cwbyte Ds1307w ' send address
        I2cwbyte 0 ' start address in 1307
        I2cstart ' Generate start code
        I2cwbyte Ds1307r ' send address
        I2crbyte Seco , Ack 'sec
        I2crbyte Mine , Ack ' MINUTES
        I2crbyte Hour , Nack ' Hours
        I2cstop
        Gosub Seco
        '-----------------------------
        Cls
        Locate 1 , 6
        Lcd "Hello"
        Locate 2 , 1
        Lcd "WWW.Yazdkit.com"
        Wait 2

        For A = 1 To 15
        Shiftlcd Left
        Waitms 300
        Next

        Cls
        '-------------------------------------------------------------------------------
        Main:
        Do
        Gosub Ds1307
        Gosub 24_12
        Gosub Chekkey

        Loop
        '-------------------------------------------------------------------------------
        Ds1307:
        I2cstart ' Generate start code
        I2cwbyte Ds1307w ' send address
        I2cwbyte 0 ' start address in 1307
        I2cstart ' Generate start code
        I2cwbyte Ds1307r ' send address
        I2crbyte Seco , Ack 'sec
        I2crbyte Mine , Ack ' MINUTES
        I2crbyte Hour , Nack ' Hours
        I2cstop

        Seco = Makedec(seco) : Mine = Makedec(mine) : Hour = Makedec(hour)

        If Seco > 59 Then Seco = 0
        If Mine > 59 Then Mine = 0
        If Hour > 23 Then
        Hour = 0
        Gosub Seco
        End If

        Return
        '-------------------------------------------------------------------------------
        24_12:
        If Pinc.4 = 1 Then Gosub Disply_24
        If Pinc.4 = 0 Then Gosub Disply_12
        Return
        '-------------------------------------------------------------------------------
        Disply_24:

        Locate 1 , 1
        Lcd "Time = " ; Hour ; ":" ; Mine ; ":" ; Seco ; " "
        Locate 2 , 6
        Lcd "(24)"
        Return

        '-------------------------------------------------------------------------------
        Disply_12:

        If Hour = 0 Then Hour = 12
        If Hour > 12 Then Hour = Hour - 12

        Locate 1 , 1
        Lcd "Time = " ; Hour ; ":" ; Mine ; ":" ; Seco ; " "
        Locate 2 , 6
        Lcd "(12)"
        Return
        '-------------------------------------------------------------------------------
        Chekkey:

        Debounce Pinc.1 , 0 , Seco , Sub
        Debounce Pinc.2 , 0 , Mine , Sub
        Debounce Pinc.3 , 0 , Hour , Sub


        Return
        '---------------------------------------------
        Seco:
        Incr Seco
        If Seco > 59 Then Seco = 0
        Seco = Makebcd(seco)
        I2cstart ' Generate start code
        I2cwbyte Ds1307w ' send address
        I2cwbyte 0 ' starting address in 1307
        I2cwbyte Seco
        I2cstop
        Return

        '-------------------------------------
        Mine:
        Incr Mine
        If Mine > 59 Then Mine = 0
        Mine = Makebcd(mine)
        I2cstart ' Generate start code
        I2cwbyte Ds1307w ' send address
        I2cwbyte 1 ' starting address in 1307
        I2cwbyte Mine
        I2cstop
        Return
        '-------------------------------------

        Hour:
        Incr Hour
        If Hour > 23 Then Hour = 0
        Hour = Makebcd(hour)
        I2cstart ' Generate start code
        I2cwbyte Ds1307w ' send address
        I2cwbyte 2 ' starting address in 1307
        I2cwbyte Hour
        I2cstop

        Return
        '-------------------------------------

        End[/code]
        :cry:
        مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

        دیدگاه


          پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

          دستت درست آقا رضا! فعلا یکم سرم شولوغه!احتمالا از هفته دیگه بشینم سرش ببینم چی میشه اگه باز سوالی بود مزاحمتون میشم. :mrgreen:

          دیدگاه


            پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

            سلام
            کسی می تونه به من کمک کنه من یک ساعت فقط با کریستال ساعت بسازم و آی سی دی اس 1307 نداشته باشم و اینکه من میخوام با سون سگمنت باشه و همه ی سون سگمنت ها وصل یک پورت باشه
            ممنون
            :wow:
            مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

            دیدگاه


              پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

              سلام
              کسی میتونه به من در مورد راه اندازی ds1307 کمک کنه
              راستیتش یک برنامه دیدم در این مورد و به زبان بسکام . می خواستم این قسمت رو کمکم کنید و نحوه ادرسی که داده شده بر چه اساس هست که این ادرس ها رو چه جوری و ار کجا آورده شده و نوشته شده :

              این دو آئرسی که نوشته شده چه جوری نوشته شده کمک دقیق از کجا اورده شده بر چه اساس نوشته شده :

              Const Ds1307w = &HD0
              Const Ds1307r = &HD1
              و اگه از روی دیتاشیت هستش کجای دیتا شیتش نوشته و یا از روی دیتاشیت چه جوی باید این ادرس رو استخراج کرد .

              دیدگاه


                پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

                فقط میدونم برای نوشتن و خواندن این ادرس ها اورده شده چرا حالا گیر دادی به این :eek:
                [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

                دیدگاه


                  پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

                  سلام
                  کلا آی سی هایی که با پروتکل I2C کار میکنند دارای یک آدرس سخت افزاری 7 بیتی هستند که این آدرس برای DS1307 عدد (1101000=160) می باشد چون پروتکل ارسالی 8 بیتی است پس بیت هشتم اگر صفر باشد برای نوشتن اطلاعات و اگر 1 باشد برای خواندن اطلاعات در آی سی از آن استفاده میشود.(آدرس D0=11010000 برای نوشتن در آی سی و D1=11010001 برای خواندن از آیسی) :applause:

                  دیدگاه


                    پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

                    نوشته اصلی توسط حامد رحیمی
                    فقط میدونم برای نوشتن و خواندن این ادرس ها اورده شده چرا حالا گیر دادی به این :eek:
                    خوب میخوام بدونم
                    یاد بگیرم اگه از آی سی دیگه ای بخوتم استفاده کنم خوب واسه اونها ادرس دهیش چه جوری میشه ؟
                    و همچنین می خواستم ببینم این ها بر چه اساسی هست ؟

                    I2cstart ' Generate start code
                    I2cwbyte Ds1307w ' send address
                    I2cwbyte 0 ' start address in 1307
                    I2cstart ' Generate start code
                    I2cwbyte Ds1307r ' send address
                    I2crbyte Seco , Ack 'sec
                    I2crbyte Mine , Ack ' MINUTES
                    I2crbyte Hour , Nack ' Hours
                    I2cstop

                    و این خطوط به چه صورت هستند و ترتیت نحوه کار هر کدوم شه جوریه ؟ بر چه اساسی باید بنویسیم این برنامه ها رو

                    دیدگاه


                      پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

                      نوشته اصلی توسط dani222
                      خوب میخوام بدونم
                      یاد بگیرم اگه از آی سی دیگه ای بخوتم استفاده کنم خوب واسه اونها ادرس دهیش چه جوری میشه ؟
                      و همچنین می خواستم ببینم این ها بر چه اساسی هست ؟

                      I2cstart ' Generate start code
                      I2cwbyte Ds1307w ' send address
                      I2cwbyte 0 ' start address in 1307
                      I2cstart ' Generate start code
                      I2cwbyte Ds1307r ' send address
                      I2crbyte Seco , Ack 'sec
                      I2crbyte Mine , Ack ' MINUTES
                      I2crbyte Hour , Nack ' Hours
                      I2cstop

                      و این خطوط به چه صورت هستند و ترتیت نحوه کار هر کدوم شه جوریه ؟ بر چه اساسی باید بنویسیم این برنامه ها رو
                      دمت گرم مرسی
                      یک سوال دیگم داشتم که در ادامه پرسیدم در مورد اون دستورات که بالا نوشتم
                      اونها بر چه اساسی هستش ؟

                      دیدگاه


                        پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

                        به help بیسکام یا کتاب علی کاهه مراجعه کنید

                        دیدگاه


                          پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

                          دیدم
                          ولی همچین قابل فهم بیان نکردن
                          ممنون میششدم شما یک توضیحی می دادید .

                          دیدگاه


                            پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

                            نوشته اصلی توسط dani222
                            سلام
                            کسی میتونه به من در مورد راه اندازی ds1307 کمک کنه
                            راستیتش یک برنامه دیدم در این مورد و به زبان بسکام . می خواستم این قسمت رو کمکم کنید و نحوه ادرسی که داده شده بر چه اساس هست که این ادرس ها رو چه جوری و ار کجا آورده شده و نوشته شده :

                            این دو آئرسی که نوشته شده چه جوری نوشته شده کمک دقیق از کجا اورده شده بر چه اساس نوشته شده :

                            Const Ds1307w = &HD0
                            Const Ds1307r = &HD1
                            و اگه از روی دیتاشیت هستش کجای دیتا شیتش نوشته و یا از روی دیتاشیت چه جوی باید این ادرس رو استخراج کرد .
                            اگه دیتاشید ds1307 رو بخونی متوجه میشی که این آدرسها رو از کجا آورده

                            دیدگاه


                              پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

                              نوشته اصلی توسط dani222
                              خوب میخوام بدونم
                              یاد بگیرم اگه از آی سی دیگه ای بخوتم استفاده کنم خوب واسه اونها ادرس دهیش چه جوری میشه ؟
                              و همچنین می خواستم ببینم این ها بر چه اساسی هست ؟

                              I2cstart ' Generate start code
                              I2cwbyte Ds1307w ' send address
                              I2cwbyte 0 ' start address in 1307
                              I2cstart ' Generate start code
                              I2cwbyte Ds1307r ' send address
                              I2crbyte Seco , Ack 'sec
                              I2crbyte Mine , Ack ' MINUTES
                              I2crbyte Hour , Nack ' Hours
                              I2cstop

                              و این خطوط به چه صورت هستند و ترتیت نحوه کار هر کدوم شه جوریه ؟ بر چه اساسی باید بنویسیم این برنامه ها رو


                              منم یه سوال بپرسم این ack و nack چیه ؟
                              [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

                              دیدگاه


                                پاسخ : rtc ds1307 ساعت ارزان ولی بدون مشتری

                                نوشته اصلی توسط حامد رحیمی


                                این ack و nack چیه ؟
                                وقتی مینویسیم nach فقط بایت آخر رو از باس میخونیم(در حقیقت برای متغیر هایی هست که نهایتن تو 1باست جا میشن مثل ساعت)
                                اما زمانی که بیشتر از یک بایت رو میخواهیم بخونیم باید از ach استفاده کنیم.
                                انقدر احمق نیستم که فکر کنم کارم تموم شده

                                دیدگاه

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