اطلاعیه

Collapse
No announcement yet.

ساعت دقیق با AVR

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

    ساعت دقیق با AVR

    با سلام
    من به جراعت میتونم بگم که تمام 272 تایپیک AVR رو مرور کردم ولی اون مداری که میخام توش نبود. مدار ساعت با سون سگمنت که دارای ثانیه شمار هم باشه و از آیسی DS1307 استفاده شده باشه برای اطمینان از اینکه در زمان قطع برق ساعت ریست نشه
    آیا شما سراغ دارید؟

    #2
    پاسخ : ساعت دقیق با AVR

    سلام دادا.
    ساختش که کاری نداره. این آیسی خودش باتری backup میخوره. برنامش هم با lcd توی نت فراونه. کافیه منتقل کنی روی seven segment که اونم راحته.
    شما شروع کن ما هم کمک میکنیم.
    بهتره اول توی پروتئوس شبیه سازیش کنی.
    موفق باشی.
    تشکر لازم نیست!

    دیدگاه


      #3
      پاسخ : ساعت دقیق با AVR

      یه برنامه دارم که باlcd هستش حالا چطور باید تبدیل به سگمنتش کنم


      عکس مدارشو هم پلود کردم
      http://up.iranblog.com/images/5uhhk8vpy2yjx5bnuz6p.jpg


      $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
      '-----------------------------
      Cls
      Locate 1 , 6
      Lcd "Hello"
      Locate 2 , 1
      Lcd "WWW.******"
      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
      '-------------------------------------

      دیدگاه


        #4
        پاسخ : ساعت دقیق با AVR

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

        دیدگاه


          #5
          پاسخ : ساعت دقیق با AVR

          درود
          از 7447 برای درایو کردن سون سگمنت استفاده کن
          در روزگاری که لبخند آدم ها بخاطر شکست توست برخیز تا بگریزند. کورش کبیر
          شاد بودن، تنها انتقامی است که میتوان از زندگی گرفت. ارنستو چه گوارا

          دیدگاه


            #6
            پاسخ : ساعت دقیق با AVR

            سلام
            شما می توانید از سون سگمنت های ماتریسی استفاده کنید و پایه های Com سون سگمنت را با یک ترانزیستور سویچ کنید و برنامه را به صورت رفرشی بنویسید اینطوری فکر می کنم به صرفه تر باشه.
            موفق باشید

            دیدگاه


              #7
              پاسخ : ساعت دقیق با AVR

              من مشکلم کار با سگمنت و راه اندازیش نیست مشکل تبدیل برنامه ای lcd به سگمنت است اکه کسی میتونه راهنمایی کنه ممنون میشم چون هرچی سعی کردم نشد چون آماتورم

              دیدگاه


                #8
                پاسخ : ساعت دقیق با AVR

                نوشته اصلی توسط rezanews
                من مشکلم کار با سگمنت و راه اندازیش نیست مشکل تبدیل برنامه ای lcd به سگمنت است اکه کسی میتونه راهنمایی کنه ممنون میشم چون هرچی سعی کردم نشد چون آماتورم
                اگر منظور شما اصلاح برنامه است و گذاشتن سورس آماده برای نمایش ساعت روی سون سگمنت است باشه چشم و...
                من برنامه را برای شما می نویسم و فردا شب در سایت میزارم.
                موفق باشید

                دیدگاه


                  #9
                  پاسخ : ساعت دقیق با AVR

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

                  دیدگاه


                    #10
                    پاسخ : ساعت دقیق با AVR

                    سلام
                    اگر کسی لطفی کنه در باره خط های زیر توضیح بده ممنون میشم
                    توی یک برنامه ساعت که با آی سی ds 1307 ساخته شدا بود مطالب زیر بود اگر بشه توضیح بدید ممنون میشم
                    Const Ds1307w = &HD0
                    Const Ds1307r = &HD1
                    این دوخط بالا چرا برابر با اون کدها شده و علتش ؟ :eek:
                    "lib "ds1307clock.lib$ این خط رو هم توضیح بدید
                    خط های زیر رو هم یک توضیحی بدید ممنون
                    یک توضیحی کامل می خوام که خوب بفهمم
                    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
                    اگر میشه توضیحات کاملتر از توضیحات خودش باشه
                    و ایا کلاکی که ما از آی سی میگیریم دارای چه فرکانسی می باشد ؟ :eek: :wow:
                    آیا یعنی در هر یک ثانیه یک پالس می فرسته ؟
                    ازهمگی ممنون
                    مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

                    دیدگاه


                      #11
                      پاسخ : ساعت دقیق با AVR

                      اون 2تا ثابت که میبینی وفتی میخوای به ds کد بفرستی اولش باید این کد رو بفرستی اگه میخوای بخونی Ds1307r = &HD1 و واسه نوشتن اون یکی

                      اونا هم که خیلی سادست


                      I2cstart ' شروع رابطه
                      I2cwbyte Ds1307r ' درخواست خواندن

                      ack & nack رو هم وقتی که بازم میخوای بخونی ack میزاری و اسه اخرین دریلفت nack میزاری
                      علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

                      دیدگاه


                        #12
                        پاسخ : ساعت دقیق با AVR

                        منم خیلی دنبال این برنامه میگشتم که برا پروژه ازش استفاده کنم ولی چه کنیم که بلد نبودم
                        اگه درستش کردین برا من هم بفرستین ممنون

                        دیدگاه


                          #13
                          پاسخ : ساعت دقیق با AVR

                          نوشته اصلی توسط اٌمید حبیبی
                          اون 2تا ثابت که میبینی وفتی میخوای به ds کد بفرستی اولش باید این کد رو بفرستی اگه میخوای بخونی Ds1307r = &HD1 و واسه نوشتن اون یکی

                          اونا هم که خیلی سادست


                          I2cstart ' شروع رابطه
                          I2cwbyte Ds1307r ' درخواست خواندن

                          ack & nack رو هم وقتی که بازم میخوای بخونی ack میزاری و اسه اخرین دریلفت nack میزاری
                          سلام ایا فقط این ای سی تاریخ میلادی میده ؟ نمیشه تاریخ شمسی هم گرفت یا نه ؟ آیا ای سی ای بهتر از ds 1307 نیست تو بازار ؟ تشکر
                          مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

                          دیدگاه


                            #14
                            پاسخ : ساعت دقیق با AVR

                            من با DS1307 کار کردم و هر کاری کردم جواب نگرفتم . علت کار کردن من هم با این ای سی این بود که باطری بک اپ میخواستم استفاده کنم .
                            تا بالا خره یکی از دوستان گفت که از تایمر 2 استفاده کنم و باطری بک اپ رو هم برای میکرو بزارم /
                            دوستم میگفت قبلا باطری بک اپ برای میکرو گذاشته و براحتی جواب گرفته
                            اینم پروژه
                            http://www.picpars.com/downloads/file/109/
                            الکترونیک همه کاره دنیا

                            دیدگاه


                              #15
                              پاسخ : ساعت دقیق با AVR

                              نوشته اصلی توسط alielec
                              من با DS1307 کار کردم و هر کاری کردم جواب نگرفتم . علت کار کردن من هم با این ای سی این بود که باطری بک اپ میخواستم استفاده کنم .
                              تا بالا خره یکی از دوستان گفت که از تایمر 2 استفاده کنم و باطری بک اپ رو هم برای میکرو بزارم /
                              دوستم میگفت قبلا باطری بک اپ برای میکرو گذاشته و براحتی جواب گرفته
                              اینم پروژه
                              http://www.picpars.com/downloads/file/109/
                              سلام .

                              پسورد فایل چیه ؟ توی این پروژه طرز بستن باطری بک آب هس ؟

                              دیدگاه

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