اطلاعیه

Collapse
No announcement yet.

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

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

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

    ببینید در هر صورت اگر میخواهید پایه کمی بگیرد از مولتی پلکس باید استفاده کنید چه در داخل سگمنت چه در مدار خوبی 7447 به اینه که کد BCD رو تبدیل میکنه یعنی شما به جای اینکه هشت تا پایه برای سگمنت لازم داشته باشید در این روش به 4 پایه نیاز دارید و بعد میتوانید با اضافه کردن Latch مدار رو کامل کنید این 7447 مثل اینکه پایه انتخاب داره بعد هم میتونید یه تبدیل 4 به 16 بزارید و 16 تا سگمنت رو با یه پورت کنترل کنید خلاصه اگر بخواهید کمترین پایه مصرف شود مدار بزرگ میشود بهتر از این هم به ذهنم نمیرسه :redface:

    دیدگاه


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

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

      دیدگاه


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

        اگر فقط هدف خواندن ساعت از چیپ باشه و نمایشش روی سگمنت که مشکلی نیست اگه به من میگفتند بابت این کار بهت پول میدیم فرداش تموم کرده بودم نگران نباشید ساده است خوبه تابلو روان نیست که یه عالمه دردسر داشته باشه این Latch هایی که گفتم خوبه بخصوص 74XX573 حالا اینکه به جای این XX چی باید باشه بستگی به طراحی شما داره مسائل جریانو و ... ولی خداییش سادست منم میتونم انجامش بدم :rolleyes:

        دیدگاه


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

          نوشته اصلی توسط حامد رحیمی
          بلاخره من یه بار یکم قیرت خرج میکنم درستش میکنم ولی مشکلم با سون سگمنت های بزرگه :cry2:
          ینی از اول میخواستم بزرگشو بسازم چون کوچیکش رو دارم رو ال سی دی :nice:
          حالا درایو کردن این سون ها یه طرف تغیر برنامش یه طرف oo: جاروبش یه طرف :surprised:
          قیرت=غیرت،ینی=یعنی و ...
          حامد جون، تو رو خدا یه فکری برای املات بکن.دو روز دیگه میآ‌شی مهندس مملکت ...

          دیدگاه


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

            سلام
            اگر جایی نیاز به کریستال کاملا مطمئن و سالم داشتین یه راه داره.
            یک ساعت از دست فروش ها بخرید به قیمت 2000 تومانی و کریستالش رو بردارید.این کریستالها چون برای تولیدات ساعت ساخته میشه خیلی خیلی عالیه
            خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

            دیدگاه


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

              سلام به همه
              من برنامه ی زیر رونوشتم تو پروتیوس خیلی خوب جواب می ده ، اما رو برد بورد که بستم هیچ چیزی روی lcdنشون نمی ده،بدنه کریستال رو هم زمین کردم. :sad: :cry2: :cry2:
              چکار باید بکنم ، خیلی عجله دارم :cry2: :sad:
              ----------------------------------------------------------------------
              [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 Pinb.1 = Input
              Config Pinb.2 = Input
              Config Pinb.3 = Input
              Config Pinb.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 , Detaa As Word
              Dim Day As Byte , Month As Byte , Year As Byte , Weekday As Word

              '----------------------------------------------------------------------------
              Cursor Off
              '-----------------------------
              Cls
              Locate 1 , 6
              Lcd "Hello"


              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 , Ack
              I2crbyte Weekday , Ack
              I2crbyte Day , Ack
              I2crbyte Month , Ack
              I2crbyte Year , Nack


              ' Hours
              I2cstop

              Seco = Makedec(seco) : Mine = Makedec(mine) : Hour = Makedec(hour)
              Weekday = Makedec(weekday)
              Day = Makedec(day) : Month = Makedec(month) : Year = Makedec(year)

              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 "T= " ; Hour ; ":" ; Mine ; ":" ; Seco ; " "
              Locate 1 , 13
              Lcd "(24)"
              Locate 2 , 1
              Lcd "D= " ; Year ; ":" ; Month ; ":" ; Day ; " "
              Locate 2 , 14
              Lcd "(" ; Weekday ; &quot"
              Return

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

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

              Locate 1 , 1
              Lcd "T= " ; Hour ; ":" ; Mine ; ":" ; Seco ; " "
              Locate 1 , 13
              Lcd "(12)"
              Locate 2 , 1
              Lcd "D= " ; Year ; ":" ; Month ; ":" ; Day ; " "
              Locate 2 , 14
              Lcd "(" ; Weekday ; &quot"
              Return
              '-------------------------------------------------------------------------------
              Chekkey:

              Debounce Pinc.1 , 0 , Seco , Sub
              Debounce Pinc.2 , 0 , Mine , Sub
              Debounce Pinc.3 , 0 , Hour , Sub
              Debounce Pinb.1 , 0 , Day , Sub
              Debounce Pinb.2 , 0 , Month , Sub
              Debounce Pinb.3 , 0 , Year , Sub
              Debounce Pinb.4 , 0 , Weekday , 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
              '-------------------------------------
              Weekday:
              Incr Weekday
              If Weekday > 6 Then Weekday = 0
              Weekday = Makebcd(weekday)
              I2cstart ' Generate start code
              I2cwbyte Ds1307w ' send address
              I2cwbyte 3 ' starting address in 1307
              I2cwbyte Weekday
              I2cstop

              Return
              '--------------------------------------------
              Day:
              Incr Day
              If Day > 31 Then Day = 1
              Day = Makebcd(day)
              I2cstart ' Generate start code
              I2cwbyte Ds1307w ' send address
              I2cwbyte 4 ' starting address in 1307
              I2cwbyte Day
              I2cstop

              Return
              '--------------------------------------------
              Month:
              Incr Month
              If Month > 12 Then Month = 1
              Month = Makebcd(month)
              I2cstart ' Generate start code
              I2cwbyte Ds1307w ' send address
              I2cwbyte 5 ' starting address in 1307
              I2cwbyte Month
              I2cstop

              Return
              Year:
              Incr Year
              If Year > 30 Then Year = 10
              Year = Makebcd(year)
              I2cstart ' Generate start code
              I2cwbyte Ds1307w ' send address
              I2cwbyte 6 ' starting address in 1307
              I2cwbyte Year
              I2cstop

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

              End[/code]
              زندگی تاس خوب آوردن نیست ، تاس بد را خوب بازی کردن است

              دیدگاه


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

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

                دیدگاه


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

                  نوشته اصلی توسط حامد رحیمی
                  ببین تو مدار سخت افزاری یدونه کلمه مثلا علی انگلیسی تایپ کن کل برنامرو موقتی پاک کن ببین اصلا از سخت افزارت خواب میگیری در مورد اینکه ال سی دی هیچی نشون نمیده ایا دوتا مقا ومت پول اپ رو وصل کردی یا نه اگه وصل نکنی اولین سطر هنگ میکنه ال سی دی خط اولش سیاههه یا کلا سفید نشون میده ؟
                  سلام مقاومت پول پ برای ال سی دی؟رو کدوم پایه؟من هیچ وقت برای ال سی دی پول پ نمی ذاشتم ،بهم جواب می داد،برنامه مشکل نداره؟درسته؟همون برنامه یزد کیته فقط تاریخ رو بهش اضافه کزدم کردم، یه جایی تو همین سایت خوندم که برنامه یزد کیت یه گیر کوچولو داره ، نوشته بودن که باید یه مقدار اولیه باید بهش بدیم ]نمی دونستم چه جوری!!!!!!!!
                  کسی میدونه؟!!!!!!!!!!!!!!!
                  زندگی تاس خوب آوردن نیست ، تاس بد را خوب بازی کردن است

                  دیدگاه


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

                    ببین مقدار اولیه مشکل lcd نیست
                    خوب باید حتما ال سی دی کار کنه در غیر این صورت حتما مشکل از برنامه یا ای سی هست
                    اولین مشکل که من داشتم درست نبودن ارتباط بین ای سی 1307 و میکرو بود (باعث روشن نشدن ال سی دی می شد ))
                    1 مقاومت های پول اپ رو باید حتما بزاری روی دوتا پایه 1307 رو میگم
                    2 حتما باطری بک اپ 3 ولتی بزار
                    3 حتما از سالم بودن ای سی 1307 مطمعا شو

                    4 در ضمن من از هر دو تا میکرو یک سالم در میاد :redface: من خودم رسما روز ها الاف شده بودم چون یکی از پایه های میکرو کلا از داخل قطع بود :sad:
                    اگه می خوای مطمعا شی اینو چک کن



                    $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
                    lcd""maral"

                    اضافه شده در تاریخ :
                    دو مشکل دیگه متغیر هفته بین 1 تا 7 است خوب
                    و متغیر سال بین 1 تا 100 است

                    اضافه شده در تاریخ :
                    http://bargiri3.persiangig.com/noname1.bas
                    من برنامه رو اینجا زدم برنامه خودمو ولی به دلیل بلند بودنش باعث قاطی شدن تایپک شد
                    فایلشو گزاشتم واسه دانلود


                    اضافه شده در تاریخ :
                    http://bargiri3.persiangig.com/noname1.bas
                    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

                    دیدگاه


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

                      سلام
                      من از این ای سی خیلی راضی هستم فقط یک اشکال داره تا که مدار رو یه نویز کوچک در بر بگیره خود به خود ثانیه میره روی 80 و دیگه قفل میکنه که باید دستی ساعت ای سی رو به کمتر از 60 اورد

                      در هر صورت من ازش راضی هستم و الان هم خوب کار میکنه
                      انجام پروژه های برنامه نویسی اندروید
                      [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
                      http://cafebazaar.ir/app/?id=com.atxdroid

                      دیدگاه


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

                        سلام
                        من یک ds1307 را به mega32 وصل کردم مقاومت پول پ ds1307 و باطری بک پ و کریستال سالم استفاده کردم برنامه را با codevision نوشتم از نوسان ساز داخلی میکرو استفاده کردم در فرکانس 4mhz میتونم درست با ds1307 کار کنم ولی وقتی فرکانس را به 8mhz تغییر میدم دیگه اصلا کار نمیکنه لطفا کمک کنید

                        دیدگاه


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

                          من فکر کنم سرعت انتقال اطلا عات 1307 به 8 مگا نمیرسونه oo: oo:
                          چه احتیاجی به 8 مگا هست :nerd:
                          در هر صورت تو این تایپک رو بیسکام بحث شده یه دستور واسه پایین اوردن سرعت انتقال داده هست دقیق نمی دونم امید وارم بچه ها کمک کنند

                          SCL Clock Frequency fSCL 100 kHz
                          تو دیتا شیت این جمله اومده oo: :read:
                          انشالا کمک می کنن بچه ها :applause:
                          [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

                          دیدگاه


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

                            سلام
                            در مورد کار با DS1307 در سرعت 8mhz اگر بتونیم تاخیرهای نرم افزاری ایجاد شده در نرم افزار را افزایش دهیم مشکل حل میشود (ds1307 را با رابط نرم افزاری i2c به mega32 وصل کردم) سوالم اینه که چه جوری میشه این کار را انجام داد من همه توابعی که توی کتابخونه codevision بود را باز کردم از جمله i2c.h و ds1307.h ولی چیزی دستگیرم نشد ممنون میشم از دوستان اگه راه حلی دارن کمکم کنن

                            دیدگاه


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

                              سلام به همه
                              من برنامه ی زیر رو نوشتم تا دیشب رو پروتیوس خیلی قشنگ جواب می دادواما امروز صبح دیگه تو پروتیوسم جواب نداد. تو عمل هم بستم فقط ساعت مد 24 شمارش می کرد تو مد 12 ساعت که ساعت اصلا شمارشم نمی کرد.
                              برای تنظیم ساعت و تقویم و روز از 3 کلید استفاده شده که بدون زدن کلیدها خودش تغییر می کنه.حتی مد تنظیم هر کدوم هم همین طور تغییر میکنه بدون زدن کلیدواینم برنامه ممکنه کمک کنین مشکلشو حل کنیم؟؟؟؟؟؟؟؟؟؟؟
                              ممنون از همه
                              [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.0 = Input
                              'Config Pinc.1 = Input
                              'Config Pinc.2 = Input
                              'Config Pinc.3 = Input
                              Config Pinc.4 = Input
                              'Config Pinc.5 = Input
                              'Config Pinb.0 = Input
                              'Config Pinb.1 = Input
                              Config Pinb.4 = Input
                              Config Pinb.5 = Input
                              Config Pinb.6 = Input
                              '------------------------------------------------------------------------------
                              Dim S As Byte
                              Dim M As Byte
                              Dim V As Byte
                              Dim H As Byte
                              V = 0
                              '------------------------------------------------------------------------------
                              Enable Interrupts


                              Ok Alias Pinb.4
                              Up Alias Pinb.5
                              Down Alias Pinb.6
                              '-----------------------------------------------
                              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
                              Dim Weekday As Byte , Day As Byte , Month As Byte , Year As Byte


                              '----------------------------------------------------------------------------
                              Cursor Off
                              '-----------------------------
                              Cls
                              Locate 1 , 6
                              Lcd "Hello"
                              Locate 2 , 1
                              Lcd "Mr khademi"
                              Wait 2

                              For A = 1 To 15
                              Shiftlcd Left
                              Waitms 100
                              Next

                              Cls
                              '-------------------------------------------------------------------------------
                              Main:
                              Do
                              Gosub Ds1307
                              Gosub 24_12
                              'Gosub Chekkey
                              'If Ok = 0 Then
                              'Waitms 150
                              'Goto Settime
                              Debounce Ok , 0 , Settime , Sub
                              'End If

                              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 , Ack
                              I2crbyte Weekday , Ack
                              I2crbyte Day , Ack
                              I2crbyte Month , Ack
                              I2crbyte Year , Nack
                              ' Hours
                              I2cstop

                              Seco = Makedec(seco) : Mine = Makedec(mine) : Hour = Makedec(hour)
                              Weekday = Makedec(weekday)
                              Day = Makedec(day) : Month = Makedec(month) : Year = Makedec(year)

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


                              ' Gosub Seco
                              End If
                              If Weekday > 6 Then Day = 0
                              If Day > 31 Then Day = 1
                              If Month > 12 Then Month = 1
                              If Year > 100 Then
                              Year = 10
                              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 "T=" ; Hour ; ":" ; Mine ; ":" ; Seco ; " "
                              Locate 1 , 13
                              Lcd "(24)"
                              Locate 2 , 1
                              Lcd "D=" ; Year ; ":" ; Month ; ":" ; Day ; " "
                              Locate 2 , 13
                              'Lcd "(" ; Day ; &quot"
                              If Weekday = 0 Then
                              Lcd "SAT"
                              End If
                              If Weekday = 1 Then
                              Lcd "SUN"
                              End If
                              If Weekday = 2 Then
                              Lcd "MON"
                              End If
                              If Weekday = 3 Then
                              Lcd "TUE"
                              End If
                              If Weekday = 4 Then
                              Lcd "WED"
                              End If
                              If Weekday = 5 Then
                              Lcd "THU"
                              End If
                              If Weekday = 6 Then
                              Lcd "FRI"
                              End If

                              Return

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

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

                              Locate 1 , 1
                              Lcd "T=" ; Hour ; ":" ; Mine ; ":" ; Seco ; " "
                              Locate 1 , 13
                              Lcd "(12)"
                              Locate 2 , 1
                              Lcd "D=" ; Year ; ":" ; Month ; ":" ; Day ; " "
                              Locate 2 , 13
                              'Lcd "(" ; Day ; &quot"
                              If Weekday = 0 Then
                              Lcd "SAT"
                              End If
                              If Weekday = 1 Then
                              Lcd "SUN"
                              End If
                              If Weekday = 2 Then
                              Lcd "MON"
                              End If
                              If Weekday = 3 Then
                              Lcd "TUE"
                              End If
                              If Weekday = 4 Then
                              Lcd "WED"
                              End If
                              If Weekday = 5 Then
                              Lcd "THU"
                              End If
                              If Weekday = 6 Then
                              Lcd "FRI"
                              End If

                              Return
                              '-------------------------------------------------------------------------------
                              'Chekkey:
                              ' Debounce Pinc.0 , 0 , Day1 , Sub
                              ' Debounce Pinc.1 , 0 , Seco , Sub
                              ' Debounce Pinc.2 , 0 , Mine , Sub
                              ' Debounce Pinc.3 , 0 , Hour , Sub
                              ' Debounce Pinc.5 , 0 , Month1 , Sub
                              ' Debounce Pinb.0 , 0 , Year , Sub
                              ' Debounce Pinb.1 , 0 , Weekday , 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
                              '-------------------------------------
                              'Day1:
                              ' Incr Day
                              ' If Day > 31 Then Day = 1
                              ' Day = Makebcd(day)
                              ' I2cstart ' Generate start code
                              ' I2cwbyte Ds1307w ' send address
                              ' I2cwbyte 4 ' starting address in 1307
                              'I2cwbyte Day
                              ' I2cstop
                              'Return
                              '---------------------------------------
                              'Month1:
                              ' Incr Month
                              ' If Month > 12 Then Month = 1
                              ' Month = Makebcd(month)
                              ' I2cstart ' Generate start code
                              ' I2cwbyte Ds1307w ' send address
                              ' I2cwbyte 5 ' starting address in 1307
                              ' I2cwbyte Month
                              ' I2cstop
                              'Return
                              '----------------------------------------
                              'Year:
                              ' Incr Year
                              ' If Year > 100 Then Year = 10
                              ' Year = Makebcd(year)
                              ' I2cstart ' Generate start code
                              ' I2cwbyte Ds1307w ' send address
                              ' I2cwbyte 6 ' starting address in 1307
                              ' I2cwbyte Year
                              ' I2cstop
                              'Return
                              '-----------------------------------------
                              'Weekday:
                              ' Incr Weekday
                              ' If Weekday > 6 Then Weekday = 0
                              ' Weekday = Makebcd(weekday)
                              ' I2cstart ' Generate start code
                              ' I2cwbyte Ds1307w ' send address
                              ' I2cwbyte 3 ' starting address in 1307
                              ' I2cwbyte Weekday
                              ' I2cstop
                              'Return
                              '------------------------------------------

                              Settime:


                              Cls
                              Waitms 200

                              Do

                              If V = 0 Then

                              Home

                              Lcd " >time date"
                              Lowerline
                              Lcd " weekday exit "

                              End If

                              '**************************************

                              If V = 1 Then

                              Home
                              Lcd " time >date"
                              Lowerline
                              Lcd " weekday exit "

                              End If

                              '**************************************

                              If V = 2 Then

                              Home
                              Lcd " time date"
                              Lowerline
                              Lcd ">weekday exit "

                              End If

                              '**************************************
                              If V = 3 Then
                              Home
                              Lcd " time date"
                              Lowerline
                              Lcd " weekday >exit "

                              End If

                              '***************************************

                              If Up = 0 Then

                              Waitms 200
                              Incr V

                              If V = 4 Then V = 0

                              End If
                              '**************************************

                              If Down = 0 Then
                              Waitms 200



                              If V = 0 Then
                              V = 3
                              Else
                              Decr V
                              End If

                              End If

                              '*************************************

                              If Ok = 0 Then
                              Waitms 200
                              If V = 0 Then Gosub Tim
                              If V = 1 Then Gosub Setdate
                              If V = 2 Then Gosub Setweekday
                              If V = 3 Then Gosub Main
                              End If

                              Loop
                              '-----------------------------------------------------
                              Tim:

                              Cls

                              S = Seco
                              M = Mine ' MINUTES
                              H = Hour ' MINUTES

                              Do

                              Home
                              Lcd "(H) M S"
                              Lowerline
                              Lcd H ; " " ; M ; " " ; S ; " "

                              If Down = 0 Then

                              Waitms 200

                              Decr H


                              End If

                              If Up = 0 Then

                              Waitms 200

                              Incr H


                              End If

                              If Ok = 0 Then

                              Waitms 200

                              Gosub Timm

                              End If


                              If H = 25 Then H = 0
                              If H = 255 Then H = 24

                              Loop
                              '---------------------------------------
                              Timm:

                              'I2cwbyte _min


                              Cls
                              Do

                              Home
                              Lcd " H (M) S"
                              Lowerline
                              Lcd H ; " " ; M ; " " ; S ; " "

                              If Down = 0 Then

                              Waitms 200

                              Decr M


                              End If

                              If Up = 0 Then

                              Waitms 200

                              Incr M


                              End If

                              If Ok = 0 Then

                              Waitms 200

                              Gosub Tims

                              End If


                              If M = 60 Then M = 0
                              If M = 255 Then M = 59

                              Loop
                              '-----------------------------------------------
                              Tims:

                              ' I2cwbyte _sec

                              Cls
                              Do

                              Home
                              Lcd " H M (S)"
                              Lowerline
                              Lcd H ; " " ; M ; " " ; S ; " "

                              If Down = 0 Then

                              Waitms 200

                              Decr S


                              End If

                              If Up = 0 Then

                              Waitms 200

                              Incr S


                              End If

                              If Ok = 0 Then

                              Waitms 200

                              Seco = S
                              Mine = M
                              Hour = H

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

                              I2cstart ' Generate start code
                              I2cwbyte Ds1307w ' send address
                              I2cwbyte 0
                              I2cwbyte Seco ' Send Data to SECONDS
                              I2cwbyte Mine ' MINUTES
                              I2cwbyte Hour ' starting address in 1307 ' Hours
                              I2cstop

                              ' _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)

                              Goto Main

                              End If

                              If S = 60 Then S = 0
                              If S = 255 Then S = 59

                              Loop
                              '--------------------------------------
                              Setdate:


                              Cls

                              S = Year
                              M = Month
                              H = Day


                              Do

                              Home
                              Lcd "(d) M y"
                              Lowerline
                              Lcd H ; " " ; M ; " " ; S ; " "

                              If Down = 0 Then

                              Waitms 200
                              Decr H

                              End If

                              If Up = 0 Then

                              Waitms 200
                              Incr H

                              End If

                              If Ok = 0 Then

                              Waitms 200
                              Gosub Month

                              End If
                              If H = 32 Then H = 1
                              If H = 255 Then H = 31
                              Loop
                              '-------------------------------
                              Month:

                              Cls
                              Do

                              Home
                              Lcd " d (M) y"
                              Lowerline
                              Lcd H ; " " ; M ; " " ; S ; " "

                              If Down = 0 Then

                              Waitms 200
                              Decr M

                              End If


                              If Up = 0 Then

                              Waitms 200
                              Incr M

                              End If

                              If Ok = 0 Then

                              Waitms 200
                              Gosub Day

                              End If

                              If M = 13 Then M = 1
                              If M = 255 Then M = 12

                              Loop
                              '--------------------------------------


                              Day:

                              Cls
                              Do

                              Home
                              Lcd " d M (y)"
                              Lowerline
                              Lcd H ; " " ; M ; " " ; S ; " "

                              If Down = 0 Then

                              Waitms 200
                              Decr S

                              End If

                              If Up = 0 Then

                              Waitms 200
                              Incr S

                              End If

                              If Ok = 0 Then

                              Waitms 200

                              Day = H
                              Month = M
                              Year = S

                              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

                              Gosub Main

                              End If

                              If S = 31 Then S = 10
                              If S = 255 Then S = 30

                              Loop
                              '--------------------------------------------------
                              Setweekday:
                              Cls

                              Do
                              Home
                              Lcd "weekday"
                              Lowerline
                              If Weekday = 0 Then
                              Lcd "SAT"
                              End If
                              If Weekday = 1 Then
                              Lcd "SUN"
                              End If
                              If Weekday = 2 Then
                              Lcd "MON"
                              End If
                              If Weekday = 3 Then
                              Lcd "TUE"
                              End If
                              If Weekday = 4 Then
                              Lcd "WED"
                              End If
                              If Weekday = 5 Then
                              Lcd "THU"
                              End If
                              If Weekday = 6 Then
                              Lcd "FRI"
                              End If

                              If Down = 0 Then
                              Waitms 200
                              Decr Weekday

                              End If

                              If Up = 0 Then

                              Waitms 200
                              Incr Weekday

                              End If

                              If Ok = 0 Then

                              Waitms 200
                              Weekday = Makebcd(weekday)
                              I2cstart ' Generate start code
                              I2cwbyte Ds1307w ' send address
                              I2cwbyte 3 ' starting address in 1307
                              I2cwbyte Weekday
                              I2cstop

                              Goto Main

                              End If
                              If Weekday = 7 Then Weekday = 0
                              If Weekday = 255 Then Weekday = 6
                              Loop

                              End[/code]
                              زندگی تاس خوب آوردن نیست ، تاس بد را خوب بازی کردن است

                              دیدگاه


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

                                سلام
                                من با زبان سی نوشتمش اگه میخای بزارم ؟؟
                                انجام پروژه های برنامه نویسی اندروید
                                [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
                                http://cafebazaar.ir/app/?id=com.atxdroid

                                دیدگاه

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