اطلاعیه

Collapse
No announcement yet.

مشکل با ds1307

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

    مشکل با ds1307

    سلام
    من با این ds1307 به یه مشکل خیلی نادر برخورد کردم همه جارو زیرو رو کردم اما مثل اینکه فقط من این مشکلو دارم
    مشکلم ام اینه که وقتی زمانو برای ای سی میفرستم جلو نمیره ثابت میمونه اینم برنامه
    در ضمن تو پروتیوس بدون مشکل کار میکنه ای سی رو هم عوض کردم درست نشد آیا باید خازنی چیزی برای کریستالش بزارم؟ به نظر شما ممکنه اشکال از کریستال باشه


    $regfile = "m32def.dat"
    $crystal = 8000000
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Rs = Pinb.0 , E = Pinb.2 , Db4 = Pinb.4 , Db5 = Pinb.5 , Db6 = Pinb.6 , Db7 = Pinb.7
    'Config Lcdpin = Pin , Rs = Pind.0 , E = Pind.1 , Db4 = Pind.2 , Db5 = Pind.3 , Db6 = Pind.4 , Db7 = Pind.5

    Config Sda = Portc.1
    Config Scl = Portc.0
    'address of ds1307
    Const Ds1307w = &HD0 ' Addresses of Ds1307 clock
    Const Ds1307r = &HD1
    '$lib "ds1307clock.lib"

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

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


    Cls
    Locate 1 , 1
    Lcd "salam"
    Wait 2

    Seco = Makebcd(10)
    Mine = Makebcd(30)
    Hour = Makebcd(11)
    I2cstart ' Generate start code
    I2cwbyte Ds1307w ' send address
    I2cwbyte 0 ' starting address in 1307
    I2cwbyte Seco
    I2cwbyte Mine
    I2cwbyte Hour
    I2cstop


    Do
    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)
    Cls
    Lcd Hour ; ":" ; Mine ; ":" ; Seco

    Waitms 500
    Loop

    End

    #2
    پاسخ : مشکل با ds1307

    سلام
    برای اینکه ds1307 شروع به شمارش بکنه باید زمان را درست مخصوصا ثانیه که خیلی مهمه بازم تاکید میکنم حتما ثانیه رو درست یعنی زیر 59 تنظیم کنید
    مشکلتون حل میشه و نیازی به هیچ وسیله و قطعه دیگه ای ندارید
    پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

    دیدگاه


      #3
      پاسخ : مشکل با ds1307

      من براتون تستش کردم، برای من هم کار نکرد. ولی فکر کنم مشکل از نرم افزار بود. اگه می شه فایل هاتون رو برای دانلود بزارید.
      کنکوری 90 دیروز،آ‌دانشجو مهندسی نرم افزار پلی تکنیک امروز!

      دیدگاه


        #4
        پاسخ : مشکل با ds1307

        سلام
        مرسی از جوابتون در مورد زمان دادن وتایین ثانیه من اول برنامه یه زمان برا ای سی فرستادم تو این کد پایین تو برنامه گاذاشتمش

        Seco = Makebcd(10)
        Mine = Makebcd(30)
        Hour = Makebcd(11)
        I2cstart ' Generate start code
        I2cwbyte Ds1307w ' send address
        I2cwbyte 0 ' starting address in 1307
        I2cwbyte Seco
        I2cwbyte Mine
        I2cwbyte Hour
        I2cstop
        که ثانیه رو رو 10 و دقیقه رو 30 و ساعتو رو 11 تنظیم میکنه این قسمت کد مشکل داره؟ یعنی مشکل از اینجاس به نظر شما؟
        البته این زمان تو dc1307 ذخیره میشه و بازیابی هم میشه اما ثابت میمونه
        فایل پروتیوسشم اینجا ندارم اما اگه واجبه فردا پلودش میکنم اما همونطور که گفتم تو پرئتیوس کار میکنه
        راستی یه برنامه از یزد کیت دانلود کردم اونم تست کردم کار نکرد و یعنی اونم با پروتیوس درست کار میکرد اما با برد من مشکل داشت خودم حدسم اینه یه جا مشکل سخت افزاری داشته باشه
        البته سخت افزارشم چند جا چک کردم اونم مشکلی نداشت دیگه عقلم به جایی نمیرسه :cry2:

        دیدگاه


          #5
          پاسخ : مشکل با ds1307

          اگه فایل پروتئوس رو بزارید خیلی خوب می شه. چرا که برنامه ای که نوشتید برای من تو پروتئوس هم جواب نمی ده. حالا شما فایل پروتئوس رو بزارید، مشخص می شه مشکل از کجاست.
          موفق باشید.
          کنکوری 90 دیروز،آ‌دانشجو مهندسی نرم افزار پلی تکنیک امروز!

          دیدگاه


            #6
            پاسخ : مشکل با ds1307

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

            دیدگاه


              #7
              پاسخ : مشکل با ds1307

              سلام ds1307 چطوری ساعت رو میگیره ؟
              تو برنامه میکرو چی باید بنویسیم تا زمان انتقال داده شه ؟

              من با کدویژن کار میکنم .

              مرسی .
              بگو که گل نفرستد کسی به خانه من
              که عطر یاد تو پر کرده آشیانه من

              دیدگاه


                #8
                پاسخ : مشکل با ds1307

                برای آشنایی با نحوه کار با توابع کدویژن و DS1307 حتما به کتاب آقای ره افروز مراجعه کنید

                دیدگاه


                  #9
                  پاسخ : مشکل با ds1307

                  نوشته اصلی توسط amir2401
                  سلام ds1307 چطوری ساعت رو میگیره ؟
                  تو برنامه میکرو چی باید بنویسیم تا زمان انتقال داده شه ؟

                  من با کدویژن کار میکنم .

                  مرسی .
                  شما برای کار با ds1307 باید از پروتکل I2c استفاده کنید.آی سی ds1307 یک کریستال داره که به کریستال ساعت معروف است و فرکانسی که تولید میکنه 1 کیلوهرتز است.
                  اگر سایت یک سرچی بزنید فکر میکنم سورس برنامه رو پیدا کنید.

                  دیدگاه


                    #10
                    پاسخ : مشکل با ds1307

                    آقا شما مقاومت pullup رو به زیر 2 کیلو کاهش بده احتمالا جواب میگیری
                    من هم همین مشکل رو حافظه های سریال داشتم ولی با این کار درست شد.
                    همانطور که مایل نیستم بنده کسی باشم، حاضر نیستم آقای کسی باشم. کسانی که مخالف آزادی دیگرانند، خود لیاقت آزادی را ندارند.((آبراهام لینکن))

                    قدرت شگفت انگیز نیروهای خلاق و استعدادهای نهفته آدمی هنگامی آشکار می شود که نیازی حیاتی، تواناییهای او را به فعالیت وادارد و کشش آرزویی، سراپای وجودش را به جنب و جوش درآورد.((آبراهام لینکن))

                    [img width=343 height=100]http://www.elecdesigner.com/uploads/PRO-DESIGNER-GROUP.jpg[/img]

                    دیدگاه


                      #11
                      پاسخ : مشکل با ds1307

                      http://www.eca.ir/forum2/index.php?topic=38492.0
                      [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

                      دیدگاه


                        #12
                        پاسخ : مشکل با ds1307

                        نوشته اصلی توسط علی حیاتی
                        شما برای کار با ds1307 باید از پروتکل I2c استفاده کنید.آی سی ds1307 یک کریستال داره که به کریستال ساعت معروف است و فرکانسی که تولید میکنه 1 کیلوهرتز است.
                        اگر سایت یک سرچی بزنید فکر میکنم سورس برنامه رو پیدا کنید.
                        البته فرکانس کریستال ساعت 32.768 کیلو هرتزه! :icon_razz:
                        پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

                        دیدگاه


                          #13
                          پاسخ : مشکل با ds1307

                          سلام
                          منم دارم با vs1307(=ds1307)z کار می کنم ولی تا حالا هر چی کار می کنم ، هر 2-3 بار یک بار ، کریستال ساعت می سوزه کسی می تونه کمکی کنه؟

                          دیدگاه


                            #14
                            پاسخ : مشکل با ds1307

                            http://www.eca.ir/forum2/index.php?topic=38492.0
                            داداش ما زحمت کشیدیماا رو این تایپکک
                            فک نکنم کریستال بسوزه چون نه توان زیادی روشه نه هیچی حتما ایسیت خرابه بیا تایپک بالا بگو بچه ها زیادن کمک می کنن
                            [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

                            دیدگاه


                              #15
                              پاسخ : مشکل با ds1307

                              سلام
                              من یک مشکل جدید با این آی سی دارم !!!
                              مدار من یک تایمر است که وظیفه زمانسنجی را DS1307 انجام میده.میکرو زمان 00.00.00 را میده به آی سی و آی سی شروع به کار میکنه . در همین حین میکرو مدام مقدار آی سی را چک میکنه تا به مقدا تنظیم شه برای تایمر برسه وبعد یکی از پایه های میکرو که بعنوان خروجی به یک رله 220 ولت 7 آمپری وصل شده اون را قطع و وصل میکنه.
                              مدار در شرایط عادی و با بارهای کم نویز حتی با موتورهای AC متوسط هم خوب کار میکنه ولی وقتی میبرمش در شرایط واقعیش که خروجیش به یک کنتاکتور وصله وخروجی کنتاکتور هم به یک موتور AC گنده !!!! یکدفعه قاطی میکنه !!!!
                              عدد 80 ثانیه را رویه صفحه نشون میده و ......
                              حاصلظرب توان در ادعا مقداری ثابت است.هرچه توان انسان کمتر باشد ادعای او بیشتر است و هرچه توان انسان بیشتر شود ادعایش کمتر میگردد.(دکتر حسابی)

                              دیدگاه

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